Class: ODM::Parser
- Inherits:
-
Object
- Object
- ODM::Parser
- Defined in:
- lib/odm.rb
Instance Method Summary collapse
-
#initialize(&block) ⇒ Parser
constructor
A new instance of Parser.
- #parse(obj) ⇒ Object
- #parse!(obj) ⇒ Object
- #parse_json(obj) ⇒ Object
- #parse_safe_yaml(obj) ⇒ Object (also: #parse_safe_yml)
- #parse_yaml(obj) ⇒ Object (also: #parse_yml)
Constructor Details
Instance Method Details
#parse(obj) ⇒ Object
96 97 98 |
# File 'lib/odm.rb', line 96 def parse(obj) self.parse!(obj.dup) end |
#parse!(obj) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/odm.rb', line 66 def parse!(obj) case ODM::Helper.class?( obj.class ).to_s.downcase.to_sym when :array var= @class.__send__(ODM::Helper.class?( obj.class ).to_s.downcase)[ *obj.map!{ |e| self.parse!(e) } ] begin; var.__send__( :initialize, obj ) ;rescue ::NoMethodError,::ArgumentError ;end return var when :hash var= @class.__send__(ODM::Helper.class?( obj.class ).to_s.downcase)[ *obj.map{ |k,v| { self.parse!(k) => self.parse!(v) } } ] begin; var.__send__( :initialize, obj ) ;rescue ::NoMethodError,::ArgumentError ;end return var else begin klass= @class.__send__(ODM::Helper.class?( obj.class ).to_s.downcase) return obj if klass.nil? return klass.new(obj) rescue ::NoMethodError, ::ArgumentError return obj end end end |
#parse_json(obj) ⇒ Object
100 101 102 103 |
# File 'lib/odm.rb', line 100 def parse_json(obj) require 'json' self.parse(JSON.parse(obj)) end |
#parse_safe_yaml(obj) ⇒ Object Also known as: parse_safe_yml
112 113 114 115 |
# File 'lib/odm.rb', line 112 def parse_safe_yaml(obj) require 'yaml' self.parse(YAML.safe_load(obj)) end |
#parse_yaml(obj) ⇒ Object Also known as: parse_yml
105 106 107 108 |
# File 'lib/odm.rb', line 105 def parse_yaml(obj) require 'yaml' self.parse(YAML.load(obj)) end |