Sha256: 18ac3ac7812cc9c2b55708b68f87f6c3651dc56ef80f4c342e15b6745cad613d

Contents?: true

Size: 1.06 KB

Versions: 10

Compression:

Stored size: 1.06 KB

Contents

# Code taken from Mephisto sources (http://mephistoblog.com/)
module Locomotive
  module Wagon
    module Liquid
      module Drops
        class Base < ::Liquid::Drop

          @@forbidden_attributes = %w{_id _version _index}

          def initialize(source)
            @_source = source
          end

          def id
            (@_source.respond_to?(:id) ? @_source.id : nil) || 'new'
          end

          # converts an array of records to an array of liquid drops
          def self.liquify(*records, &block)
            i = -1
            records =
              records.inject [] do |all, r|
                i+=1
                attrs = (block && block.arity == 1) ? [r] : [r, i]
                all << (block ? block.call(*attrs) : r.to_liquid)
                all
              end
            records.compact!
            records
          end

          protected

          def liquify(*records, &block)
            self.class.liquify(*records, &block)
          end

          def _source
            @_source
          end

        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
locomotivecms_wagon-1.5.4 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.5.3 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.5.2 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.5.1 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.5.0 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.5.0.rc1 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.4.0 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.3.3 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.3.2 lib/locomotive/wagon/liquid/drops/base.rb
locomotivecms_wagon-1.3.1 lib/locomotive/wagon/liquid/drops/base.rb