Module: Gluttonberg::Content

Defined in:
lib/gluttonberg/content.rb,
lib/gluttonberg/content/block.rb,
lib/gluttonberg/content/workflow.rb,
lib/gluttonberg/content/clean_html.rb,
lib/gluttonberg/content/versioning.rb,
lib/gluttonberg/content/page_finder.rb,
lib/gluttonberg/content/publishable.rb,
lib/gluttonberg/content/validations.rb,
lib/gluttonberg/content/despamilator.rb,
lib/gluttonberg/content/localization.rb,
lib/gluttonberg/content/page_children.rb,
lib/gluttonberg/content/home_page_info.rb,
lib/gluttonberg/content/page_components.rb,
lib/gluttonberg/content/slug_management.rb,
lib/gluttonberg/content/import_export_csv.rb,
lib/gluttonberg/content/block_localization.rb,
lib/gluttonberg/content/despamilator/filter.rb,
lib/gluttonberg/content/despamilator/subject.rb,
lib/gluttonberg/content/despamilator/version.rb,
lib/gluttonberg/content/default_template_file.rb,
lib/gluttonberg/content/page_description_info.rb,
lib/gluttonberg/content/page_localization_slug.rb,
lib/gluttonberg/content/despamilator/filter/urls.rb,
lib/gluttonberg/content/despamilator/subject/text.rb,
lib/gluttonberg/content/despamilator/filter/emails.rb,
lib/gluttonberg/content/despamilator/filter/prices.rb,
lib/gluttonberg/content/despamilator/filter/shouting.rb,
lib/gluttonberg/content/despamilator/filter/html_tags.rb,
lib/gluttonberg/content/despamilator/filter/no_vowels.rb,
lib/gluttonberg/content/despamilator/filter/long_words.rb,
lib/gluttonberg/content/despamilator/filter/mixed_case.rb,
lib/gluttonberg/content/despamilator/filter/script_tag.rb,
lib/gluttonberg/content/despamilator/filter/spammy_tlds.rb,
lib/gluttonberg/content/despamilator/filter/naughty_words.rb,
lib/gluttonberg/content/despamilator/filter/ip_address_url.rb,
lib/gluttonberg/content/despamilator/filter/obfuscated_urls.rb,
lib/gluttonberg/content/despamilator/filter/square_brackets.rb,
lib/gluttonberg/content/despamilator/filter/trailing_number.rb,
lib/gluttonberg/content/despamilator/filter/gtubs_test_filter.rb,
lib/gluttonberg/content/despamilator/filter/numbers_and_words.rb,
lib/gluttonberg/content/despamilator/filter/weird_punctuation.rb,
lib/gluttonberg/content/despamilator/filter/unusual_characters.rb,
lib/gluttonberg/content/despamilator/filter/very_long_domain_name.rb

Overview

The content module contains a whole bunch classes and mixins related to the pages, localizations, content models and helpers for rendering content inside of views.

Defined Under Namespace

Modules: Block, BlockLocalization, CleanHtml, DefaultTemplateFile, DespamilatorFilter, HomePageInfo, ImportExportCSV, Localization, PageChildren, PageComponents, PageDescriptionInfo, PageFinder, PageLocalizationSlug, Publishable, SlugManagement, Validations, Versioning, Workflow Classes: Despamilator

Constant Summary collapse

@@content_associations =
nil
@@non_localized_associations =
nil
@@localizations =
{}
@@localization_associations =
nil
@@localization_classes =
nil

Class Method Summary collapse

Class Method Details

.actual_content_classesObject



77
78
79
80
# File 'lib/gluttonberg/content.rb', line 77

def self.actual_content_classes
  Gluttonberg::Content::Block.classes
  @@localization_classes + Block.classes.select {|c| !c.localized? }   
end

.content_associationsObject

Return the collection of content association names.



56
57
58
# File 'lib/gluttonberg/content.rb', line 56

def self.content_associations
  @@content_associations
end

.localization_associationsObject

Returns an array of the localization association names.



73
74
75
# File 'lib/gluttonberg/content.rb', line 73

def self.localization_associations
  @@localization_associations
end

.localizationsObject

Returns a hash of content classes that are localized, keyed to the association name.



68
69
70
# File 'lib/gluttonberg/content.rb', line 68

def self.localizations
  @@localizations
end

.non_localized_associationsObject

For each content class that is registered, a corresponding association is declared against the Page model. We need to keep track of these, which is what this method does. It just returns an array of the association names.



48
49
50
51
52
53
# File 'lib/gluttonberg/content.rb', line 48

def self.non_localized_associations
  @@non_localized_associations ||= begin
    non_localized = Block.classes.select {|c| !c.localized? }
    non_localized.collect {|c| c.association_name }
  end
end

.register_localization(assoc_name, klass) ⇒ Object

If a content class has the is_localized declaration, this method is used to register it so we can keep track of all localized content.



62
63
64
# File 'lib/gluttonberg/content.rb', line 62

def self.register_localization(assoc_name, klass)
  @@localizations[assoc_name] = klass
end

.setupObject

This is called after the application loads so that we can define any extra associations or do house-keeping once everything is required and running



37
38
39
40
41
42
# File 'lib/gluttonberg/content.rb', line 37

def self.setup
  # Store the names of the associations in their own array for convenience
  @@localization_associations = @@localizations.keys
  @@localization_classes = @@localizations.values
  @@content_associations = Block.classes.collect { |k| k.association_name }
end