Module: Viewable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Block, Form, Image, Link, Page, Select, Text
- Defined in:
- app/models/viewable.rb,
app/models/viewable/form.rb,
app/models/viewable/link.rb,
app/models/viewable/page.rb,
app/models/viewable/text.rb,
app/models/viewable/block.rb,
app/models/viewable/image.rb,
app/models/viewable/select.rb,
app/models/viewable/field/url.rb,
app/models/viewable/field/uuid.rb,
app/presenters/viewable/form_presenter.rb,
app/presenters/viewable/link_presenter.rb,
app/presenters/viewable/page_presenter.rb,
app/presenters/viewable/text_presenter.rb,
app/presenters/viewable/view_presenter.rb,
app/presenters/viewable/block_presenter.rb,
app/presenters/viewable/image_presenter.rb,
app/presenters/viewable/select_presenter.rb,
app/presenters/viewable/link_list_presenter.rb,
app/presenters/viewable/select_list_presenter.rb
Defined Under Namespace
Modules: Field
Classes: Block, BlockPresenter, Form, FormPresenter, Image, ImagePresenter, Link, LinkListPresenter, LinkPresenter, Page, PagePresenter, Select, SelectListPresenter, SelectPresenter, Text, TextPresenter, ViewPresenter
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.models ⇒ Object
79
80
81
|
# File 'app/models/viewable.rb', line 79
def models
@_models ||= names.map{ |name| "Viewable::#{name.camelize}" }
end
|
.names ⇒ Object
83
84
85
|
# File 'app/models/viewable.rb', line 83
def names
@_names ||= CMS.rb_all_names 'app/models/viewable'
end
|
Instance Method Details
#list(locale = nil) ⇒ Object
59
60
61
62
63
|
# File 'app/models/viewable.rb', line 59
def list(locale = nil)
self.class.includes(:unique_key)
.where(unique_keys: { viewable_type: viewable_type, view_path: view_path, name: unique_key_name })
.where(unique_keys: { locale: locale || self.locale })
end
|
#other_locales(position = nil) ⇒ Object
65
66
67
68
69
70
|
# File 'app/models/viewable.rb', line 65
def other_locales(position = nil)
self.class.includes(:unique_key)
.where(unique_keys: { viewable_type: viewable_type, view_path: view_path, name: unique_key_name })
.where(unique_keys: { position: position || self.position })
.where.not(unique_keys: { locale: locale })
end
|
#short_type ⇒ Object
55
56
57
|
# File 'app/models/viewable.rb', line 55
def short_type
viewable_type.demodulize.underscore
end
|
#unique_key_hash(locale = nil) ⇒ Object
72
73
74
75
76
|
# File 'app/models/viewable.rb', line 72
def unique_key_hash(locale = nil)
unique_key
.slice(:viewable_type, :view_path, :name, :position)
.merge(locale: locale || self.locale)
end
|