Class: Blueprinter::ViewCollection Private

Inherits:
Object
  • Object
show all
Defined in:
lib/blueprinter/view_collection.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

API:

  • private

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeViewCollection

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of ViewCollection.

API:

  • private



8
9
10
11
12
13
14
# File 'lib/blueprinter/view_collection.rb', line 8

def initialize
  @views = {
    identifier: View.new(:identifier),
    default: View.new(:default)
  }
  @sort_by_definition = Blueprinter.configuration.sort_fields_by.eql?(:definition)
end

Instance Attribute Details

#sort_by_definitionObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



6
7
8
# File 'lib/blueprinter/view_collection.rb', line 6

def sort_by_definition
  @sort_by_definition
end

#viewsObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



6
7
8
# File 'lib/blueprinter/view_collection.rb', line 6

def views
  @views
end

Instance Method Details

#[](view_name) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



41
42
43
# File 'lib/blueprinter/view_collection.rb', line 41

def [](view_name)
  @views[view_name] ||= View.new(view_name)
end

#fields_for(view_name) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



26
27
28
29
30
31
32
33
34
35
# File 'lib/blueprinter/view_collection.rb', line 26

def fields_for(view_name)
  return identifier_fields if view_name == :identifier

  fields, excluded_fields = sortable_fields(view_name)
  sorted_fields = sort_by_definition ? sort_by_def(view_name, fields) : fields.values.sort_by(&:name)

  (identifier_fields + sorted_fields).tap do |fields_array|
    fields_array.reject! { |field| excluded_fields.include?(field.name) }
  end
end

#inherit(view_collection) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



16
17
18
19
20
# File 'lib/blueprinter/view_collection.rb', line 16

def inherit(view_collection)
  view_collection.views.each do |view_name, view|
    self[view_name].inherit(view)
  end
end

#transformers(view_name) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



37
38
39
# File 'lib/blueprinter/view_collection.rb', line 37

def transformers(view_name)
  views[view_name].transformers
end

#view?(view_name) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

API:

  • private



22
23
24
# File 'lib/blueprinter/view_collection.rb', line 22

def view?(view_name)
  views.key? view_name
end