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



5
6
7
8
9
10
11
# File 'lib/blueprinter/view_collection.rb', line 5

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



4
5
6
# File 'lib/blueprinter/view_collection.rb', line 4

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



4
5
6
# File 'lib/blueprinter/view_collection.rb', line 4

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



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

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



23
24
25
26
27
28
29
30
# File 'lib/blueprinter/view_collection.rb', line 23

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).reject { |field| excluded_fields.include?(field.name) }
end

#has_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



19
20
21
# File 'lib/blueprinter/view_collection.rb', line 19

def has_view?(view_name)
  views.has_key? view_name
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



13
14
15
16
17
# File 'lib/blueprinter/view_collection.rb', line 13

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



32
33
34
# File 'lib/blueprinter/view_collection.rb', line 32

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