class Blueprinter::View
Attributes
definition_order[R]
excluded_field_names[R]
fields[R]
included_view_names[R]
name[R]
view_transformers[R]
Public Class Methods
new(name, fields: {}, included_view_names: [], excluded_view_names: [], transformers: [])
click to toggle source
# File lib/blueprinter/view.rb, line 7 def initialize(name, fields: {}, included_view_names: [], excluded_view_names: [], transformers: []) @name = name @fields = fields @included_view_names = included_view_names @excluded_field_names = excluded_view_names @view_transformers = transformers @definition_order = [] @sort_by_definition = Blueprinter.configuration.sort_fields_by.eql?(:definition) end
Public Instance Methods
<<(field)
click to toggle source
# File lib/blueprinter/view.rb, line 71 def <<(field) track_definition_order(field.name,false) fields[field.name] = field end
add_transformer(custom_transformer)
click to toggle source
# File lib/blueprinter/view.rb, line 67 def add_transformer(custom_transformer) view_transformers << custom_transformer end
exclude_field(field_name)
click to toggle source
# File lib/blueprinter/view.rb, line 57 def exclude_field(field_name) excluded_field_names << field_name end
exclude_fields(field_names)
click to toggle source
# File lib/blueprinter/view.rb, line 61 def exclude_fields(field_names) field_names.each do |field_name| excluded_field_names << field_name end end
include_view(view_name)
click to toggle source
# File lib/blueprinter/view.rb, line 45 def include_view(view_name) track_definition_order(view_name) included_view_names << view_name end
include_views(view_names)
click to toggle source
# File lib/blueprinter/view.rb, line 50 def include_views(view_names) view_names.each do |view_name| track_definition_order(view_name) included_view_names << view_name end end
inherit(view)
click to toggle source
# File lib/blueprinter/view.rb, line 27 def inherit(view) view.fields.values.each do |field| self << field end view.included_view_names.each do |view_name| include_view(view_name) end view.excluded_field_names.each do |field_name| exclude_field(field_name) end view.view_transformers.each do |transformer| add_transformer(transformer) end end
track_definition_order(method, is_view = true)
click to toggle source
# File lib/blueprinter/view.rb, line 21 def track_definition_order(method, is_view = true) if @sort_by_definition @definition_order << DefinitionPlaceholder.new(method, is_view) end end
transformers()
click to toggle source
# File lib/blueprinter/view.rb, line 17 def transformers view_transformers.empty? ? Blueprinter.configuration.default_transformers : view_transformers end