class Moonshine::Filter
Attributes
name[RW]
options[RW]
params[RW]
Public Class Methods
new(name, **options, &block)
click to toggle source
# File lib/moonshine/filter.rb, line 6 def initialize(name, **options, &block) @name = name options[:call] ||= block || name @options = options end
Public Instance Methods
execute(subject)
click to toggle source
# File lib/moonshine/filter.rb, line 12 def execute(subject) return subject unless to_execute? if options[:as_boolean] subject.send(options[:call]) else if options[:call].is_a? Proc options[:call].call(subject, args) else subject.send(options[:call], args) end end end
to_execute?()
click to toggle source
# File lib/moonshine/filter.rb, line 25 def to_execute? !!default end
Private Instance Methods
args()
click to toggle source
# File lib/moonshine/filter.rb, line 31 def args transform(default) end
default()
click to toggle source
# File lib/moonshine/filter.rb, line 35 def default params[name] || options[:default] end
transform(params)
click to toggle source
# File lib/moonshine/filter.rb, line 39 def transform(params) return params unless options[:transform] options[:transform_class].send(options[:transform], params) end