Class: SimpleAMS::Adapters::AMS::Collection

Inherits:
SimpleAMS::Adapters::AMS show all
Defined in:
lib/simple_ams/adapters/ams.rb

Instance Attribute Summary collapse

Attributes inherited from SimpleAMS::Adapters::AMS

#document

Instance Method Summary collapse

Methods inherited from SimpleAMS::Adapters::AMS

#fields, #forms, #relations

Constructor Details

#initialize(folder, options = {}) ⇒ Collection

Returns a new instance of Collection.



74
75
76
77
78
# File 'lib/simple_ams/adapters/ams.rb', line 74

def initialize(folder, options = {})
  @folder = folder
  @adapter = folder.adapter.value
  @options = options
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



72
73
74
# File 'lib/simple_ams/adapters/ams.rb', line 72

def adapter
  @adapter
end

#folderObject (readonly)

Returns the value of attribute folder.



72
73
74
# File 'lib/simple_ams/adapters/ams.rb', line 72

def folder
  @folder
end

#optionsObject (readonly)

Returns the value of attribute options.



72
73
74
# File 'lib/simple_ams/adapters/ams.rb', line 72

def options
  @options
end

Instance Method Details

#as_jsonObject



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/simple_ams/adapters/ams.rb', line 80

def as_json
  if options[:root]
    {
      folder.name => documents,
      meta: metas,
      links: links
    }
  else
    documents
  end
end

#documentsObject



92
93
94
95
96
# File 'lib/simple_ams/adapters/ams.rb', line 92

def documents
  return folder.map{|document|
    adapter.new(document).as_json
  } || []
end


105
106
107
108
109
110
# File 'lib/simple_ams/adapters/ams.rb', line 105

def links
  @links ||= folder.links.inject({}){ |hash, link|
    hash[link.name] = link.value
    hash
  }
end

#metasObject



98
99
100
101
102
103
# File 'lib/simple_ams/adapters/ams.rb', line 98

def metas
  @metas ||= folder.metas.inject({}){ |hash, meta|
    hash[meta.name] = meta.value
    hash
  }
end