Class: Site

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/site.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.bust_cache!Object



39
40
41
# File 'app/models/site.rb', line 39

def bust_cache!
  all.each(&:touch)
end

.find_by_host!(host) ⇒ Object



34
35
36
37
# File 'app/models/site.rb', line 34

def find_by_host!(host)
  return Site.first if count == 1 && !multi_sites_enabled
  where("? = ANY (hosts)", host).first or raise ActiveRecord::RecordNotFound
end

Instance Method Details

#email_fromObject



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

def email_from
  "#{name} <#{email}>" unless name.blank? || email.blank?
end

#grouped_activitiesObject



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

def grouped_activities
  activities.find_coinciding_grouped_by_dates(Time.zone.now.to_date, 1.day.ago.to_date)
end

#multi_sites_enabled?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'app/models/site.rb', line 44

def multi_sites_enabled?
  self.class.multi_sites_enabled
end

#ownerObject



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

def owner
  nil
end

#ownersObject



48
49
50
# File 'app/models/site.rb', line 48

def owners
  []
end

#perma_hostObject

def tag_counts

Content.tag_counts :conditions => "site_id = #{id}"

end



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

def perma_host
  host.sub(':', '.')  # Needed to create valid directories in ms-win
end

#pluginsObject



73
74
75
76
77
78
79
80
# File 'app/models/site.rb', line 73

def plugins
  @plugins ||= Rails.plugins.values.inject(ActiveSupport::OrderedHash.new) do |plugins, plugin|
    plugin = plugin.clone
    plugin.owner = self
    plugins[plugin.name.to_sym] = plugin
    plugins
  end
end

#section_idsObject



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

def section_ids
  types = Section.types.map { |type| "'#{type}'" }.join(', ')
  self.class.connection.select_values("SELECT id FROM contents WHERE type IN (#{types}) AND site_id = #{id}")
end