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.



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

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

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



67
68
69
# File 'lib/simple_ams/adapters/ams.rb', line 67

def adapter
  @adapter
end

#folderObject (readonly)

Returns the value of attribute folder.



67
68
69
# File 'lib/simple_ams/adapters/ams.rb', line 67

def folder
  @folder
end

#optionsObject (readonly)

Returns the value of attribute options.



67
68
69
# File 'lib/simple_ams/adapters/ams.rb', line 67

def options
  @options
end

Instance Method Details

#as_jsonObject



76
77
78
79
80
81
82
83
84
85
86
# File 'lib/simple_ams/adapters/ams.rb', line 76

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

#documentsObject



88
89
90
91
92
# File 'lib/simple_ams/adapters/ams.rb', line 88

def documents
  folder.map do |document|
    adapter.new(document).as_json
  end || []
end


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

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

#metasObject



94
95
96
97
98
# File 'lib/simple_ams/adapters/ams.rb', line 94

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