Class: Jabara::ParseCom::Schema::Variants
- Inherits:
-
Object
- Object
- Jabara::ParseCom::Schema::Variants
- Defined in:
- lib/jabara/parse_com/schema.rb
Instance Method Summary collapse
-
#initialize(&block) ⇒ Variants
constructor
A new instance of Variants.
- #parse(data) ⇒ Object
-
#variant(key:, schema:) ⇒ Object
following methods are for DSL.
Constructor Details
#initialize(&block) ⇒ Variants
Returns a new instance of Variants.
177 178 179 180 |
# File 'lib/jabara/parse_com/schema.rb', line 177 def initialize(&block) @variants = {} instance_eval(&block) end |
Instance Method Details
#parse(data) ⇒ Object
181 182 183 184 185 186 187 188 189 |
# File 'lib/jabara/parse_com/schema.rb', line 181 def parse(data) return ::Jabara.null if data.nil? raise ArgumentError, 'data must be hash' unless data.is_a? ::Hash reprs = @variants.map { |key, schema| if not data[key].nil? then schema.decode(data[key]) else nil end }.compact ::Jabara.set(reprs) end |