Sha256: 03576a9a80f234088c0336fa68c982dbc1201aeee147d1fa9dc48b320b0b9d65

Contents?: true

Size: 1008 Bytes

Versions: 15

Compression:

Stored size: 1008 Bytes

Contents

require 'rails'
require 'active_record'

module Cable
    module ActsAsCable
      def self.included( base )
        base.send :extend, ClassMethods

      end

      module ClassMethods
        
        def acts_as_cable( reflection_options = {} )
          
          with_modules = []
          with_modules << reflection_options.delete(:with) if reflection_options.has_key?(:with)
          with_modules.flatten!
          
          has_one :menu, reflection_options.merge( :as => :cable_menuable )
          has_many :blocks, :as => :resource if with_modules.include? :blocks
          accepts_nested_attributes_for :menu
          
          self.cattr_accessor :default_template
          self.default_template = "default"
          
          yield self if block_given?
        end
        
        def template( template_name )
          self.default_template = (Cable.templates.include?( template_name.to_s )) ? template_name.to_s : :default.to_s
        end
        
      end
      
    end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
cable-0.9.13 lib/cable/acts_as_cable.rb
cable-0.9.12 lib/cable/acts_as_cable.rb
cable-0.9.11 lib/cable/acts_as_cable.rb
cable-0.9.10 lib/cable/acts_as_cable.rb
cable-0.9.9 lib/cable/acts_as_cable.rb
cable-0.9.8 lib/cable/acts_as_cable.rb
cable-0.9.6 lib/cable/acts_as_cable.rb
cable-0.9.5 lib/cable/acts_as_cable.rb
cable-0.9.4 lib/cable/acts_as_cable.rb
cable-0.9.3 lib/cable/acts_as_cable.rb
cable-0.9.1 lib/cable/acts_as_cable.rb
cable-0.9.0 lib/cable/acts_as_cable.rb
cable-0.8.6 lib/cable/acts_as_cable.rb
cable-0.8.5 lib/cable/acts_as_cable.rb
cable-0.8.4 lib/cable/acts_as_cable.rb