[#604] Add base drop
This commit is contained in:
parent
4289559b5f
commit
7261622196
|
@ -0,0 +1,23 @@
|
|||
class BaseDrop < Liquid::Drop
|
||||
def initialize(object)
|
||||
@object = object unless object.respond_to?(:visible?) && !object.visible?
|
||||
end
|
||||
|
||||
# Defines a Liquid method on the drop that is allowed to call the
|
||||
# Ruby method directly. Best used for attributes.
|
||||
#
|
||||
# Based on Module#liquid_methods
|
||||
def self.allowed_methods(*allowed_methods)
|
||||
class_eval do
|
||||
allowed_methods.each do |sym|
|
||||
define_method sym do
|
||||
if @object.respond_to?(:public_send)
|
||||
@object.public_send(sym) rescue nil
|
||||
else
|
||||
@object.send(sym) rescue nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -49,6 +49,9 @@ Rails::Initializer.run do |config|
|
|||
# (by default production uses :info, the others :debug)
|
||||
# config.log_level = :debug
|
||||
|
||||
# Liquid drops
|
||||
config.autoload_paths += %W( #{RAILS_ROOT}/app/drops )
|
||||
|
||||
# Enable page/fragment caching by setting a file-based store
|
||||
# (remember to create the caching directory and make it readable to the application)
|
||||
# config.action_controller.cache_store = :file_store, "#{RAILS_ROOT}/tmp/cache"
|
||||
|
|
Loading…
Reference in New Issue