Class: Mediator::Renderer
- Defined in:
- lib/mediator/renderer.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#mediator ⇒ Object
readonly
Returns the value of attribute mediator.
Instance Method Summary collapse
- #get(name, options = {}) ⇒ Object
- #has?(name, options = {}) ⇒ Boolean
- #id(name, options = {}, &block) ⇒ Object
- #ids(name, options = {}, &block) ⇒ Object
-
#initialize(mediator, data = nil) ⇒ Renderer
constructor
A new instance of Renderer.
- #key(name, options = {}, &block) ⇒ Object
- #many(name, options = {}, &block) ⇒ Object
- #one(name, options = {}, &block) ⇒ Object
- #union(name, options = {}, &block) ⇒ Object
Methods inherited from Processor
Constructor Details
#initialize(mediator, data = nil) ⇒ Renderer
Returns a new instance of Renderer.
8 9 10 11 |
# File 'lib/mediator/renderer.rb', line 8 def initialize mediator, data = nil @data = data || {} @mediator = mediator end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
5 6 7 |
# File 'lib/mediator/renderer.rb', line 5 def data @data end |
#mediator ⇒ Object (readonly)
Returns the value of attribute mediator.
6 7 8 |
# File 'lib/mediator/renderer.rb', line 6 def mediator @mediator end |
Instance Method Details
#get(name, options = {}) ⇒ Object
13 14 15 16 17 |
# File 'lib/mediator/renderer.rb', line 13 def get name, = {} = {construct: false}.merge selector = [:from] || name [:value] || mediator.get(selector, ) end |
#has?(name, options = {}) ⇒ Boolean
19 20 21 22 |
# File 'lib/mediator/renderer.rb', line 19 def has? name, = {} selector = [:from] || name .has_key?(:value) || mediator.subject_has?(selector) end |
#id(name, options = {}, &block) ⇒ Object
24 25 26 |
# File 'lib/mediator/renderer.rb', line 24 def id name, = {}, &block key name, .merge(from: "#{name}_id"), &block end |
#ids(name, options = {}, &block) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/mediator/renderer.rb', line 28 def ids name, = {}, &block unless [:from] if name[-1] == "s" = .merge(from: "#{name[0..-2]}_ids") else = .merge(from: "#{name}_ids") end end key name, , &block end |
#key(name, options = {}, &block) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/mediator/renderer.rb', line 40 def key name, = {}, &block if name[-1] == "?" [:from] = name name = name[0..-2].intern end value = get name, return if empty? value, value = block ? block[value] : value data[name] = value unless empty? value, end |
#many(name, options = {}, &block) ⇒ Object
54 55 56 57 58 |
# File 'lib/mediator/renderer.rb', line 54 def many name, = {}, &block value = get name, data[name] = value.map { |v| sub v, , &block }. reject { |v| empty? v, } end |
#one(name, options = {}, &block) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/mediator/renderer.rb', line 60 def one name, = {}, &block value = get name, return if empty? value, value = sub value, , &block return if empty? value, [:merge] ? data.merge!(value) : data[name] = value end |
#union(name, options = {}, &block) ⇒ Object
70 71 72 73 |
# File 'lib/mediator/renderer.rb', line 70 def union name, = {}, &block .merge! merge: true one name, , &block end |