module PMP::Parser

Public Instance Methods

as_json(options={}) click to toggle source
# File lib/pmp/parser.rb, line 7
def as_json(options={})
  result = {}
  result['version']    = self.version
  result['links']      = extract_links
  result['attributes'] = extract_attributes

  result
end
extract_attributes(obj=self) click to toggle source
# File lib/pmp/parser.rb, line 16
def extract_attributes(obj=self)
  obj.attributes_map.inject({}) do |result, pair|
    value = pair.last
    name = to_json_key_name(pair.first)
    result[name] = value
    result
  end
end
parse(doc) click to toggle source
# File lib/pmp/parser.rb, line 44
def parse(doc)
  return if (!doc)
  parse_href(doc['href'])
  parse_version(doc['version'])
  parse_attributes(doc['attributes'])
  parse_links(doc['links'])
  parse_items(doc['items'])
  # parse_error(doc)
end
parse_attributes(document) click to toggle source
# File lib/pmp/parser.rb, line 62
def parse_attributes(document)
  Array(document).each do |k,v|
    self.send("#{to_ruby_safe_name(k)}=", v)
  end
end
parse_href(document) click to toggle source
# File lib/pmp/parser.rb, line 54
def parse_href(document)
  self.href = document
end
parse_items(document) click to toggle source
# File lib/pmp/parser.rb, line 95
def parse_items(document)
  self.items = Array(document).compact.collect{|i| PMP::CollectionDocument.new(options.merge(document:i)) }
end
parse_version(document) click to toggle source
# File lib/pmp/parser.rb, line 58
def parse_version(document)
  self.version = document || '1.0'
end