Sha256: cfd8ee9e48c9075ac60c1d308aafa18725279d350b4c6e629d5294486eb0190f

Contents?: true

Size: 1.59 KB

Versions: 35

Compression:

Stored size: 1.59 KB

Contents

# Behaviors are used in CMS to add features to a model. 
# They are very similar to the various "acts_as_*" or "*_fu" plugins/gems 
# that have been created for Rails.  
#
# Generally, each behavior has three modules in it.  They are:
# * MacroMethods
# * ClassMethods
# * InstanceMethods
#
# When the CMS starts up, all of the Behaviors are included into ActiveRecord::Base.
# The MacroMethods module of each Behavior is also included into ActiveRecord::Base.
# The MacroMethods module contains Class methods that you can call within your model
# in order to enable that Behavior for that Class.  For example, if you want to have
# an Article module that is taggable, you would do this:
#
#     class Article < ActiveRecord::Base
#       is_taggable
#     end
#
# So in this case, you are calling the `is_taggable` macro method, which enables the 
# taggable behavior for the Article model.  It enables the behavior by extending the
# ClassMethods module and including the InstanceMethods module into the Article class.
# Each Behavior typically has one macro method which takes an options Hash, which of course
# varies from Behavior to Behavior.  The macro method will also sometimes call other
# macro methods, like before_fitler, named_scope, etc. to modify the model.
# Consult the documentation for each module for specific details as to what
# the Behavior does.
module Cms::Behaviors; end

Dir["#{File.dirname(__FILE__)}/behaviors/*.rb"].each do |b| 
  require File.join("cms", "behaviors", File.basename(b, ".rb"))
  ActiveRecord::Base.send(:include, "Cms::Behaviors::#{File.basename(b, ".rb").camelize}".constantize)
end

Version data entries

35 entries across 35 versions & 11 rubygems

Version Path
SFEley-browsercms-3.0.2 lib/cms/behaviors.rb
buzzware-browsercms-3.0.2 lib/cms/behaviors.rb
coredumplings-browsercms-3.0.0 lib/cms/behaviors.rb
nate-browsercms-3.0.210 lib/cms/behaviors.rb
nate-browsercms-3.0.211 lib/cms/behaviors.rb
we5-browsercms-3.0.1.1 lib/cms/behaviors.rb
webficient-browsercms-3.0.1 lib/cms/behaviors.rb
webficient-browsercms-3.0.2 lib/cms/behaviors.rb
webficient-browsercms-3.0.3 lib/cms/behaviors.rb
webficient-browsercms-3.0.4 lib/cms/behaviors.rb
browsercms-3.1.5 lib/cms/behaviors.rb
browsercms-3.1.4 lib/cms/behaviors.rb
browsercms-3.1.3 lib/cms/behaviors.rb
bf4-browsercms-3.1.0 lib/cms/behaviors.rb
drujensen-browsercms-3.2.0 lib/cms/behaviors.rb
browsercmsi-3.1.2 lib/cms/behaviors.rb
browsercms-3.1.2 lib/cms/behaviors.rb
browsercms-3.1.1 lib/cms/behaviors.rb
browsercmsi-3.1.1 lib/cms/behaviors.rb
browsercmsi-3.1.0 lib/cms/behaviors.rb