module TTVDB::Parser
Constants
- MAP
Public Instance Methods
parse()
click to toggle source
# File lib/ttvdb/parser.rb, line 50 def parse raise "no data to parse" unless @data @data.each do |k, v| k = k.downcase v = v[0] unless MAP.include? k next end var = nil if MAP[k][:map].is_a? TrueClass var = k.to_sym else var = MAP[k][:map].to_sym end unless respond_to? var next end k, v = map k, v instance_variable_set("@#{k}", v) end @data = nil end
Private Instance Methods
map(k, v)
click to toggle source
# File lib/ttvdb/parser.rb, line 75 def map k, v case MAP[k][:cast] when :integer v = v.to_i rescue v when :float v = v.to_f rescue v when :array v = v.split("|").compact.reject { |c| c.empty? } rescue v when :time_at v = Time.at(v.to_i) rescue v when :time v = Time.parse(v) rescue v else v = v end if MAP[k][:map].is_a? TrueClass k = k.to_sym else k = MAP[k][:map].to_sym end v = (v.is_a? Hash and v.empty?) ? nil : v [k, v] end
to_s()
click to toggle source
# File lib/ttvdb/parser.rb, line 99 def to_s self.inspect end