Class: AwesomeXmlDsl::DataSource

Inherits:
Object
  • Object
show all
Defined in:
lib/awesome_xml_dsl/data_source.rb

Instance Method Summary collapse

Constructor Details

#initialize(object:) ⇒ DataSource

Returns a new instance of DataSource.



5
6
7
# File 'lib/awesome_xml_dsl/data_source.rb', line 5

def initialize(object:)
  @object = object
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args, &block) ⇒ Object



21
22
23
24
25
# File 'lib/awesome_xml_dsl/data_source.rb', line 21

def method_missing(m, *args, &block)
  return @data_source[m] if @data_source.is_a? Hash

  @data_source.send(m, *args, &block)
end

Instance Method Details

#can_read?(object, key) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
# File 'lib/awesome_xml_dsl/data_source.rb', line 9

def can_read?(object, key)
  return object.key?(key) if object.respond_to?(:key?)

  object.respond_to?(key)
end

#read(object, key) ⇒ Object



15
16
17
18
19
# File 'lib/awesome_xml_dsl/data_source.rb', line 15

def read(object, key)
  return object[key] if object.is_a? Hash

  object.send key
end