Skip to content

Commit

Permalink
Make it easier to subclass Query objects
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanoverna committed Apr 18, 2016
1 parent f62ae94 commit 5681da3
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
24 changes: 15 additions & 9 deletions lib/admino/query/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,7 @@ def scope(starting_scope = nil)
raise ArgumentError, 'no starting scope provided'
end

query_builder = Builder.new(self, starting_scope)
scope_augmenters = search_fields + filter_groups
scope_augmenters << sorting if sorting

scope_augmenters.each do |search_field|
query_builder = search_field.augment_scope(query_builder)
end

scope = query_builder.scope
scope = augment_scope(Builder.new(self, starting_scope)).scope

if config.ending_scope_callable
scope.instance_exec(self, &config.ending_scope_callable)
Expand Down Expand Up @@ -84,6 +76,20 @@ def search_field_by_name(name)

private

def augment_scope(query_builder)
scope_augmenters.each do |augmenter|
query_builder = augmenter.augment_scope(query_builder)
end

query_builder
end

def scope_augmenters
scope_augmenters = search_fields + filter_groups
scope_augmenters << sorting if sorting
scope_augmenters
end

def init_filter_groups
@filter_groups = {}
i18n_key = self.class.model_name.i18n_key
Expand Down
2 changes: 1 addition & 1 deletion lib/admino/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Admino
VERSION = "0.0.17"
VERSION = "0.0.18"
end

0 comments on commit 5681da3

Please sign in to comment.