Class: DataBindings::Adapters::Native::NativeAdapter

Inherits:
Object
  • Object
show all
Includes:
Unbound
Defined in:
lib/data_bindings/adapters/native.rb

Instance Attribute Summary

Attributes included from Unbound

#binding, #binding_name

Instance Method Summary collapse

Methods included from Unbound

#array?, #bind, #bind!, #bind_array, #binding_class, #convert_target, #hash?, #to_native, #update_binding

Constructor Details

#initialize(generator, object) ⇒ NativeAdapter

Returns a new instance of NativeAdapter.



15
16
17
# File 'lib/data_bindings/adapters/native.rb', line 15

def initialize(generator, object)
  @generator, @object = generator, object
end

Instance Method Details

#[](idx) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/data_bindings/adapters/native.rb', line 27

def [](idx)
  val = @object.respond_to?(:[]) ? @object[idx] : @object.send(idx)
  if DataBindings.primitive_value?(val)
    val
  else
    binding_class(NativeAdapter).new(@generator, val)
  end
end

#[]=(idx, value) ⇒ Object



36
37
38
# File 'lib/data_bindings/adapters/native.rb', line 36

def []=(idx, value)
  @object.respond_to?(:[]=) ? @object[idx] = value : @object.send("#{idx}=", value)
end

#key?(name) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/data_bindings/adapters/native.rb', line 40

def key?(name)
  @object.respond_to?(name)
end

#pre_convertObject



19
20
21
# File 'lib/data_bindings/adapters/native.rb', line 19

def pre_convert
  raise DataBindings::UnboundError unless @name
end

#to_hashObject

Raises:



44
45
46
# File 'lib/data_bindings/adapters/native.rb', line 44

def to_hash
  raise UnboundError
end

#typeObject



23
24
25
# File 'lib/data_bindings/adapters/native.rb', line 23

def type
  @object.is_a?(Array) ? :array : :hash
end