Module: Conglomerate::Serializer::ClassMethods

Defined in:
lib/conglomerate/serializer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#_attributesObject



331
332
333
# File 'lib/conglomerate/serializer.rb', line 331

def _attributes
  @_attributes || []
end

#_commandsObject



327
328
329
# File 'lib/conglomerate/serializer.rb', line 327

def _commands
  @_commands || []
end

#_hrefObject



315
316
317
# File 'lib/conglomerate/serializer.rb', line 315

def _href
  @_href || nil
end

#_item_hrefObject



319
320
321
# File 'lib/conglomerate/serializer.rb', line 319

def _item_href
  @_item_href || nil
end


339
340
341
# File 'lib/conglomerate/serializer.rb', line 339

def _item_links
  @_item_links || []
end


335
336
337
# File 'lib/conglomerate/serializer.rb', line 335

def _links
  @_links || []
end

#_queriesObject



323
324
325
# File 'lib/conglomerate/serializer.rb', line 323

def _queries
  @_queries || []
end

#_templatesObject



343
344
345
# File 'lib/conglomerate/serializer.rb', line 343

def _templates
  @_templates || []
end

Instance Method Details

#attribute(name, options = {}, &block) ⇒ Object



279
280
281
282
283
284
285
286
287
288
289
# File 'lib/conglomerate/serializer.rb', line 279

def attribute(name, options = {}, &block)
  template = options.fetch(:template, false)
  rel = options.fetch(:rel, nil)
  type = options.fetch(:type, :value)
  prompt = options.fetch(:prompt, nil)

  self._attributes = self._attributes << {
    :name => name, :template => template, :rel => rel, :type => type,
    :prompt => prompt, :block => block
  }
end

#command(rel, options = {}, &block) ⇒ Object



268
269
270
271
272
273
274
275
276
277
# File 'lib/conglomerate/serializer.rb', line 268

def command(rel, options = {}, &block)
  data = options.fetch(:data, [])
  prompt = options.fetch(:prompt, nil)

  data = [*data]
  data = data.map { |datum| {:name => datum} }
  self._commands = self._commands << {
    :rel => rel, :data => data, :prompt => prompt, :block => block
  }
end

#href(&block) ⇒ Object



250
251
252
# File 'lib/conglomerate/serializer.rb', line 250

def href(&block)
  self._href = block
end

#item_href(&block) ⇒ Object



254
255
256
# File 'lib/conglomerate/serializer.rb', line 254

def item_href(&block)
  self._item_href = block
end


297
298
299
300
301
# File 'lib/conglomerate/serializer.rb', line 297

def item_link(rel, &block)
  self._item_links = self._item_links << {
    :rel => rel, :block => block
  }
end


291
292
293
294
295
# File 'lib/conglomerate/serializer.rb', line 291

def link(rel, &block)
  self._links = self._links << {
    :rel => rel, :block => block
  }
end

#query(rel, options = {}, &block) ⇒ Object



258
259
260
261
262
263
264
265
266
# File 'lib/conglomerate/serializer.rb', line 258

def query(rel, options = {}, &block)
  data = options.fetch(:data, [])

  data = [*data]
  data = data.map { |datum| {:name => datum} }
  self._queries = self._queries << {
    :rel => rel, :data => data, :block => block
  }
end

#template(name, options = {}) ⇒ Object



303
304
305
306
307
308
309
310
# File 'lib/conglomerate/serializer.rb', line 303

def template(name, options = {})
  type = options.fetch(:type, :value)
  prompt = options.fetch(:prompt, nil)

  self._templates = self._templates << {
    :name => name, :type => type, :prompt => prompt, :template => true
  }
end