Sha256: 5ff48c94ff11d4b6e83e56e55bde9bc292f6896416fd6f2353776c3c61052e13

Contents?: true

Size: 583 Bytes

Versions: 1

Compression:

Stored size: 583 Bytes

Contents

class Transcriber::Resource
  module Parser
    def parse(input, options = {})
      entries(input, options).collect {|item| parse_one(item)}
    end

    private

    def entries(input, options)
      start_key = options[:start_key]
      entries = input
      if entries.kind_of?(Hash)
        entries = entries[start_key.to_s.upcase] if start_key
        entries = [entries]
      end
      entries
    end

    def parse_one(item)
      params = keys.inject({}) do |buffer, key|
        buffer.merge key.name => key.parse(item)
      end
      self.new(params)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
transcriber-0.0.1 lib/transcriber/resource/parser.rb