module Trailblazer::Finder::Dsl
Attributes
config[R]
Public Instance Methods
adapter(adapter)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 36 def adapter(adapter) config[:adapter] = adapter.to_s end
apply_config(options, **)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 44 def apply_config(options, **) return @config = options unless options.empty? @config = { actions: {}, entity: nil, properties: {}, filters: {}, paging: {}, sorting: {}, adapters: [] } end
entity(&block)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 12 def entity(&block) config[:entity] = block end
filter_by(name, options = {}, &block)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 28 def filter_by(name, options = {}, &block) filter_name = name.to_sym config[:filters][filter_name] = {} config[:filters][filter_name][:name] = name config[:filters][filter_name][:with] = options[:with] if options.include?(:with) config[:filters][filter_name][:block] = block || nil end
inherited(base)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 8 def inherited(base) base.instance_variable_set "@config", apply_config({}) end
paginator(paginator)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 40 def paginator(paginator) config[:paginator] = paginator.to_s end
paging(options, **)
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 16 def paging(options, **) config[:paging][:per_page] = options[:per_page] || 25 config[:paging][:min_per_page] = options[:min_per_page] || 10 config[:paging][:max_per_page] = options[:max_per_page] || 100 end
property(name, options = {})
click to toggle source
# File lib/trailblazer/finder/dsl.rb, line 22 def property(name, options = {}) config[:properties][name] = options config[:properties][name][:type] = options[:type] || Types::String config[:sorting][name] = options[:sort_direction] || :desc if options[:sortable] end