lib/locomotive/liquid/drops/contents.rb in locomotive_cms-0.0.3.3 vs lib/locomotive/liquid/drops/contents.rb in locomotive_cms-0.0.4.beta1
- old
+ new
@@ -1,42 +1,37 @@
module Locomotive
module Liquid
module Drops
class Contents < ::Liquid::Drop
-
- def initialize(site)
- @site = site
- end
-
+
def before_method(meth)
- type = @site.content_types.where(:slug => meth.to_s).first
- ProxyCollection.new(@site, type)
+ type = @context.registers[:site].content_types.where(:slug => meth.to_s).first
+ ProxyCollection.new(type)
end
-
+
end
-
+
class ProxyCollection < ::Liquid::Drop
-
- def initialize(site, content_type)
- @site = site
+
+ def initialize(content_type)
@content_type = content_type
@collection = nil
end
-
+
def first
content = @content_type.ordered_contents(@context['with_scope']).first
end
-
+
def last
content = @content_type.ordered_contents(@context['with_scope']).last
end
-
+
def each(&block)
@collection ||= @content_type.ordered_contents(@context['with_scope'])
@collection.each(&block)
end
-
+
def paginate(options = {})
@collection ||= @content_type.ordered_contents(@context['with_scope']).paginate(options)
{
:collection => @collection,
:current_page => @collection.current_page,
@@ -45,22 +40,22 @@
:total_entries => @collection.total_entries,
:total_pages => @collection.total_pages,
:per_page => @collection.per_page
}
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
end
- end
+ end
end
-end
\ No newline at end of file
+end