Class: Locomotive::Site

Instance Method Summary collapse

Methods included from Concerns::Site::Metafields

#any_localized_metafield?, #find_metafield, #has_metafields?, #metafields=, #metafields_schema=, #metafields_ui=

Methods included from Concerns::Site::UrlRedirections

#url_redirections=

Methods included from Concerns::Site::Cache

#last_modified_at

Methods included from Concerns::Site::Timezone

#timezone

Methods included from Concerns::Site::Locales

#default_locale, #default_locale_was, #each_locale, #is_default_locale?, #locale_fallbacks, #locales=, #localized?, #localized_page_fullpath, #prefix_default_locale?, #with_default_locale

Methods included from Concerns::Site::AccessPoints

#domains=, #handle=, #main_domain, #to_param

Instance Method Details

#accountsObject



60
61
62
# File 'app/models/locomotive/site.rb', line 60

def accounts
  Account.criteria.in(_id: self.memberships.map(&:account_id))
end

#admin_membershipsObject



68
69
70
# File 'app/models/locomotive/site.rb', line 68

def admin_memberships
  self.memberships.find_all { |m| m.admin? }
end

#created_byObject

associations ##



23
# File 'app/models/locomotive/site.rb', line 23

belongs_to  :created_by,      class_name: 'Locomotive::Account'

#is_admin?(account) ⇒ Boolean

Returns:



72
73
74
# File 'app/models/locomotive/site.rb', line 72

def is_admin?()
  self.memberships.detect { |m| m.admin? && m. == ._id }
end

#localized_content_typesObject



56
57
58
# File 'app/models/locomotive/site.rb', line 56

def localized_content_types
  self.content_types.localized
end

#membership_for(account) ⇒ Object



64
65
66
# File 'app/models/locomotive/site.rb', line 64

def membership_for()
  self.memberships.where(account_id: ._id).first
end

#membershipsObject

behaviours ##



42
# File 'app/models/locomotive/site.rb', line 42

accepts_nested_attributes_for :memberships, allow_destroy: true

#nameObject

validations ##



17
# File 'app/models/locomotive/site.rb', line 17

field :name

#ordered_pages(conditions = {}) ⇒ Criteria

Get all the pages in the right order: depth and position, both ASC.

Parameters:

  • conditions (Hash) (defaults to: {})

    Extra conditions passed to the Mongoid criteria

Returns:

  • (Criteria)

    a Mongoid criteria



52
53
54
# File 'app/models/locomotive/site.rb', line 52

def ordered_pages(conditions = {})
  self.pages.unscoped.where(conditions || {}).order_by_depth_and_position
end

#to_liquidObject



81
82
83
# File 'app/models/locomotive/site.rb', line 81

def to_liquid
  to_steam.to_liquid
end

#to_steamObject



76
77
78
79
# File 'app/models/locomotive/site.rb', line 76

def to_steam
  repository = Locomotive::Steam::Services.build_instance.repositories.site
  repository.build(self.attributes.dup)
end