Sha256: 62be0600ba8a138a1f532dee7e85ee8e916637c473c4e3e546352220c2e0af23

Contents?: true

Size: 667 Bytes

Versions: 39

Compression:

Stored size: 667 Bytes

Contents

module Polyblock
  module HasPolyblock
    extend ActiveSupport::Concern

    included do
    end

    module ClassMethods
      def has_polyblock(name, options={})
        defaults = {:class_name => "Polyblock::Block", :as => :contentable}
        has_one name, -> { where(:name => name) }, defaults.merge(options)
        accepts_nested_attributes_for name
        include Polyblock::HasPolyblock::LocalInstanceMethods
      end
    end

    module LocalInstanceMethods
      def has_polyblock_content_for?(name)
        !self.send(name).nil? and !self.send(name).content.blank?
      end
    end
  end
end

ActiveRecord::Base.send :include, Polyblock::HasPolyblock

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
polyblock-0.6.5 lib/polyblock/has_polyblock.rb
polyblock-0.6.4 lib/polyblock/has_polyblock.rb
polyblock-0.6.3 lib/polyblock/has_polyblock.rb
polyblock-0.6.2 lib/polyblock/has_polyblock.rb
polyblock-0.6.1 lib/polyblock/has_polyblock.rb
polyblock-0.6.0 lib/polyblock/has_polyblock.rb
polyblock-0.5.9 lib/polyblock/has_polyblock.rb
polyblock-0.5.8 lib/polyblock/has_polyblock.rb
polyblock-0.5.7 lib/polyblock/has_polyblock.rb
polyblock-0.5.6 lib/polyblock/has_polyblock.rb
polyblock-0.5.5 lib/polyblock/has_polyblock.rb
polyblock-0.5.4 lib/polyblock/has_polyblock.rb
polyblock-0.5.3 lib/polyblock/has_polyblock.rb
polyblock-0.5.2 lib/polyblock/has_polyblock.rb
polyblock-0.5.1 lib/polyblock/has_polyblock.rb
polyblock-0.5.0 lib/polyblock/has_polyblock.rb
polyblock-0.4.9 lib/polyblock/has_polyblock.rb
polyblock-0.4.8 lib/polyblock/has_polyblock.rb
polyblock-0.4.7 lib/polyblock/has_polyblock.rb
polyblock-0.4.6 lib/polyblock/has_polyblock.rb