Class: AzaharaSchema::ModelSchema

Inherits:
Schema
  • Object
show all
Defined in:
lib/azahara_schema/model_schema.rb

Instance Attribute Summary

Attributes inherited from Schema

#association, #default_scope, #enabled_outputs, #limit, #offset, #parent_schema, #search_query

Instance Method Summary collapse

Methods inherited from Schema

#add_filter, #add_short_filter, #add_sort, #as_json, #association_path, attribute, #attribute, #attribute_for_column, attribute_for_column, attribute_type, #available_associations, #available_attributes, #available_attributes_hash, #available_columns, #available_filters, #build_json_options!, #column_names, #column_names=, #columns, #default_columns, #default_outputs, #default_sort, #disabled_filters, #enabled_filter_names, #enabled_filters, enabled_filters, #entities, #entity_as_json, #entity_count, #entity_scope, filter_operators, #filtered_scope, #filters, #from_params, #include_associated_attributes?, #initialize_available_attributes, #main_attribute_name, #nested_relations_depth, #operator_for, #operators_for, operators_for_filters, #outputs, schema_class_for, schema_for, #searchable_attributes, #sort, #to_param, #tokenize_search_query, #user_available_filters, #value_for

Constructor Details

#initialize(*attrs) ⇒ ModelSchema

Returns a new instance of ModelSchema.



4
5
6
7
# File 'lib/azahara_schema/model_schema.rb', line 4

def initialize(*attrs)
  attributes = attrs.last.is_a?(Hash) ? attrs.pop : {}
  super(attrs.first || model, attributes)
end

Instance Method Details

#always_visible_filtersObject



17
18
19
# File 'lib/azahara_schema/model_schema.rb', line 17

def always_visible_filters
  []
end

#base_scopeObject



29
30
31
# File 'lib/azahara_schema/model_schema.rb', line 29

def base_scope
  @base_scope || super
end

#collapsable_filtersObject



38
39
40
# File 'lib/azahara_schema/model_schema.rb', line 38

def collapsable_filters
  user_available_filters.select{|name, filter| !always_visible_filters.include?(name) }
end

#csv_templateObject



13
14
15
# File 'lib/azahara_schema/model_schema.rb', line 13

def csv_template
  export_template
end

#export_templateObject



9
10
11
# File 'lib/azahara_schema/model_schema.rb', line 9

def export_template
  'azahara_schema/exports/common'
end

#modelObject



21
22
23
# File 'lib/azahara_schema/model_schema.rb', line 21

def model
  @model ||= self.class.name.sub(/Schema/, '').constantize
end

#to_partial_pathObject

rendering



43
44
45
# File 'lib/azahara_schema/model_schema.rb', line 43

def to_partial_path
  'azahara_schema/schema'
end

#uncollapsable_filtersObject

dummy implementations for rewrite



34
35
36
# File 'lib/azahara_schema/model_schema.rb', line 34

def uncollapsable_filters
  user_available_filters.select{|name, filter| always_visible_filters.include?(name) }
end

#visibility_scope!(ability, authorization_action = :index) ⇒ Object



25
26
27
# File 'lib/azahara_schema/model_schema.rb', line 25

def visibility_scope!(ability, authorization_action=:index)
  @base_scope = base_scope.accessible_by(ability, authorization_action)
end