Class: Representable::Binding

Inherits:
Object
  • Object
show all
Extended by:
ClassDeprecatable, Uber::Delegates
Includes:
Deprecatable, Factories
Defined in:
lib/representable/binding.rb

Overview

The Binding provides methods to read/write the fragment for one property.

Actually parsing the fragment from the document happens in Binding#read, everything after that is generic.

Direct Known Subclasses

Hash::Binding, Object::Binding, XML::Binding

Defined Under Namespace

Modules: ClassDeprecatable, Collection, Deprecatable, Deprecation, EvaluateOption, Factories Classes: FragmentNotFound, Map

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ClassDeprecatable

build

Methods included from Factories

#collect_for, #default_parse_fragment_functions, #default_parse_init_functions, #default_post_functions, #default_render_fragment_functions, #default_render_init_functions, #parse_functions, #pipeline_for, #render_functions

Methods included from Deprecatable

#compile_fragment, #uncompile_fragment

Constructor Details

#initialize(definition) ⇒ Binding

Returns a new instance of Binding.



17
18
19
20
21
22
23
24
# File 'lib/representable/binding.rb', line 17

def initialize(definition)
  @definition       = definition
  @name             = @definition.name
  @getter           = @definition.getter
  @setter           = @definition.setter

  setup_exec_context!
end

Instance Attribute Details

#cached_representerObject

Returns the value of attribute cached_representer.



68
69
70
# File 'lib/representable/binding.rb', line 68

def cached_representer
  @cached_representer
end

#getterObject (readonly)

Returns the value of attribute getter.



26
27
28
# File 'lib/representable/binding.rb', line 26

def getter
  @getter
end

#nameObject (readonly)

Returns the value of attribute name.



26
27
28
# File 'lib/representable/binding.rb', line 26

def name
  @name
end

#setterObject (readonly)

Returns the value of attribute setter.



26
27
28
# File 'lib/representable/binding.rb', line 26

def setter
  @setter
end

Instance Method Details

#[](name) ⇒ Object

include EvaluateOption



55
56
57
# File 'lib/representable/binding.rb', line 55

def [](name)
  @definition[name]
end

#default_for(value) ⇒ Object



63
64
65
66
# File 'lib/representable/binding.rb', line 63

def default_for(value)
  return self[:default] if skipable_empty_value?(value)
  value
end

#skipable_empty_value?(value) ⇒ Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/representable/binding.rb', line 59

def skipable_empty_value?(value)
  value.nil? and not self[:render_nil]
end