Module: Decanter::Parser::Core::ClassMethods
- Defined in:
- lib/decanter/parser/core.rb
Instance Method Summary collapse
-
#allow(*args) ⇒ Object
Set allowed classes.
-
#allowed?(values) ⇒ Boolean
Check for allowed classes.
- #empty_values?(values) ⇒ Boolean
-
#parse(name, values, options = {}) ⇒ Object
Check if allowed, parse if not.
-
#parser(&block) ⇒ Object
Define parser.
-
#pre(*parsers) ⇒ Object
Set preparsers.
-
#preparsers ⇒ Object
Get prepareer.
Instance Method Details
#allow(*args) ⇒ Object
Set allowed classes
29 30 31 |
# File 'lib/decanter/parser/core.rb', line 29 def allow(*args) @allowed = args end |
#allowed?(values) ⇒ Boolean
Check for allowed classes
44 45 46 47 48 |
# File 'lib/decanter/parser/core.rb', line 44 def allowed?(values) @allowed && Array.wrap(values).all? do |value| @allowed.any? { |allowed| value.is_a? allowed } end end |
#empty_values?(values) ⇒ Boolean
50 51 52 |
# File 'lib/decanter/parser/core.rb', line 50 def empty_values?(values) return true if Array.wrap(values).all? { |value| value.nil? || value == "" } end |
#parse(name, values, options = {}) ⇒ Object
Check if allowed, parse if not
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/decanter/parser/core.rb', line 12 def parse(name, values, ={}) case when empty_values?(values) { name => nil } when allowed?(values) { name => values } else _parse(name, values, ) end end |
#parser(&block) ⇒ Object
Define parser
24 25 26 |
# File 'lib/decanter/parser/core.rb', line 24 def parser(&block) @parser = block end |
#pre(*parsers) ⇒ Object
Set preparsers
34 35 36 |
# File 'lib/decanter/parser/core.rb', line 34 def pre(*parsers) @pre = parsers end |
#preparsers ⇒ Object
Get prepareer
39 40 41 |
# File 'lib/decanter/parser/core.rb', line 39 def preparsers @pre || [] end |