Class: WebTranslateIt::Safe::Config::Builder
- Inherits:
-
Object
- Object
- WebTranslateIt::Safe::Config::Builder
- Defined in:
- lib/web_translate_it/safe/config/builder.rb
Class Method Summary collapse
- .collection(*names) ⇒ Object
- .hash_value(*names) ⇒ Object
-
.mixed_value(*names) ⇒ Object
rubocop:todo Metrics/MethodLength.
- .multi_value(*names) ⇒ Object
- .simple_value(*names) ⇒ Object
Instance Method Summary collapse
-
#initialize(node, data = {}) ⇒ Builder
constructor
A new instance of Builder.
Constructor Details
#initialize(node, data = {}) ⇒ Builder
Returns a new instance of Builder.
9 10 11 12 |
# File 'lib/web_translate_it/safe/config/builder.rb', line 9 def initialize(node, data = {}) @node = node data.each { |k, v| send k, v } end |
Class Method Details
.collection(*names) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/web_translate_it/safe/config/builder.rb', line 59 def collection(*names) names.each do |m| define_method(m) do |id, data = {}, &block| raise "bad collection id: #{id.inspect}" unless id ensure_hash(m, data) name = "#{m}s" collection = @node.get(name) || @node.set(name, Node.new(@node, {})) collection.set id, Node.new(collection, data, &block) end end end |
.hash_value(*names) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/web_translate_it/safe/config/builder.rb', line 35 def hash_value(*names) names.each do |m| define_method(m) do |data = {}, &block| ensure_uniq(m) ensure_hash(m, data) @node.set m, Node.new(@node, data || {}, &block) end end end |
.mixed_value(*names) ⇒ Object
rubocop:todo Metrics/MethodLength
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/web_translate_it/safe/config/builder.rb', line 45 def mixed_value(*names) # rubocop:todo Metrics/MethodLength names.each do |m| define_method(m) do |data = {}, &block| ensure_uniq(m) if data.is_a?(Hash) || block ensure_hash(m, data) if block @node.set m, Node.new(@node, data, &block) else @node.set m, data end end end end |
.multi_value(*names) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/web_translate_it/safe/config/builder.rb', line 26 def multi_value(*names) names.each do |m| define_method(m) do |value| value = value.map(&:to_s) if value.is_a?(Array) @node.set_multi m, value end end end |
.simple_value(*names) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/web_translate_it/safe/config/builder.rb', line 17 def simple_value(*names) names.each do |m| define_method(m) do |value| ensure_uniq(m) @node.set m, value end end end |