Sha256: c63e07028d346ffbc0de718945f871bd6e9c7e6c3e564caa364f46e3646ab9fc

Contents?: true

Size: 1.7 KB

Versions: 8

Compression:

Stored size: 1.7 KB

Contents

module Locomotive
  module Liquid
    module Drops
      class Contents < ::Liquid::Drop

        def before_method(meth)
          type = @context.registers[:site].content_types.where(:slug => meth.to_s).first
          ProxyCollection.new(type)
        end

      end

      class ProxyCollection < ::Liquid::Drop

        def initialize(content_type)
          @content_type = content_type
          @collection = nil
        end

        def first
          self.collection.first
        end

        def last
          self.collection.last
        end

        def each(&block)
          self.collection.each(&block)
        end

        def api
          { 'create' => @context.registers[:controller].send('admin_api_contents_url', @content_type.slug) }
        end

        def before_method(meth)
          klass = @content_type.contents.klass # delegate to the proxy class
          if (meth.to_s =~ /^group_by_.+$/) == 0
            klass.send(meth, :ordered_contents)
          else
            klass.send(meth)
          end
        end

        protected

        def paginate(options = {})
          @collection = self.collection.paginate(options)
          {
            :collection       => @collection,
            :current_page     => @collection.current_page,
            :previous_page    => @collection.previous_page,
            :next_page        => @collection.next_page,
            :total_entries    => @collection.total_entries,
            :total_pages      => @collection.total_pages,
            :per_page         => @collection.per_page
          }
        end

        def collection
          @collection ||= @content_type.ordered_contents(@context['with_scope'])
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
locomotive_cms-1.0.0.beta.2 lib/locomotive/liquid/drops/contents.rb
locomotive_cms-1.0.0.beta lib/locomotive/liquid/drops/contents.rb
locomotive_cms-0.0.4.beta12 lib/locomotive/liquid/drops/contents.rb
locomotive_cms-0.0.4.beta11 lib/locomotive/liquid/drops/contents.rb
locomotive_cms-0.0.4.beta10 lib/locomotive/liquid/drops/contents.rb
locomotive_cms-0.0.4.beta9 lib/locomotive/liquid/drops/contents.rb
locomotive_cms-0.0.4.beta8 lib/locomotive/liquid/drops/contents.rb
locomotive_cms-0.0.4.beta7 lib/locomotive/liquid/drops/contents.rb