Class: GoodData::Bam::DSL::MetadataDSL
- Inherits:
-
Object
- Object
- GoodData::Bam::DSL::MetadataDSL
- Defined in:
- lib/dsl/dsl.rb
Instance Method Summary collapse
- #add(data, &bl) ⇒ Object
-
#initialize(flow_name, &bl) ⇒ MetadataDSL
constructor
A new instance of MetadataDSL.
- #remove(data, &bl) ⇒ Object
- #to_a ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(flow_name, &bl) ⇒ MetadataDSL
Returns a new instance of MetadataDSL.
87 88 89 90 91 |
# File 'lib/dsl/dsl.rb', line 87 def initialize(flow_name, &bl) @name = flow_name @steps = [] instance_eval(&bl) end |
Instance Method Details
#add(data, &bl) ⇒ Object
93 94 95 96 97 98 99 100 |
# File 'lib/dsl/dsl.rb', line 93 def add(data, &bl) fail "Params need to be hash. This means for example remove(:name => \"value\"). " unless data.is_a? Hash fail "Remove field should have at least \"name\" defined. You provided \"#{data}\"." unless data.has_key?(:name) data_copy = data.clone data_copy[:field_type] = data[:type] unless data[:type].nil? data_copy.delete(:type) @steps << {:type => :field_add}.merge(data_copy) end |
#remove(data, &bl) ⇒ Object
102 103 104 105 106 |
# File 'lib/dsl/dsl.rb', line 102 def remove(data, &bl) fail "Params need to be hash. This means for example remove(:name => \"value\"). " unless data.is_a? Hash fail "Remove field should have at least \"name\" defined. You provided \"#{data}\"." unless data.has_key?(:name) @steps << {:type => :field_remove}.merge(data) end |
#to_a ⇒ Object
115 116 117 |
# File 'lib/dsl/dsl.rb', line 115 def to_a @steps end |
#to_hash ⇒ Object
108 109 110 111 112 113 |
# File 'lib/dsl/dsl.rb', line 108 def to_hash { :name => @name, :steps => @steps } end |