querybuilder 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 1.0.1
2
+
3
+ * Minor enhancements
4
+ * Added support for 'all' group in custom queries.
5
+
1
6
  == 1.0.0 2011-05-10
2
7
 
3
8
  * Major enhancements
@@ -1,3 +1,3 @@
1
1
  module QueryBuilder
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -76,7 +76,7 @@ module QueryBuilder
76
76
  def load_custom_queries!
77
77
  return unless list = self.custom_query_files
78
78
  klass = nil
79
- self.custom_queries ||= {}
79
+ self.custom_queries ||= {'all' => {}}
80
80
  Dir.glob(list.flatten).each do |dir|
81
81
  if File.directory?(dir)
82
82
  Dir.foreach(dir) do |file|
@@ -708,19 +708,19 @@ module QueryBuilder
708
708
  def custom_query_without_loading(relation)
709
709
  return false unless first? && last? # current safety net until "from" is correctly implemented and tested
710
710
 
711
- custom_queries = self.class.custom_queries
712
- if custom_queries &&
713
- custom_queries[@opts[:custom_query_group]] &&
714
- custom_query = custom_queries[@opts[:custom_query_group]][relation.singularize]
715
-
716
- custom_query.each do |k,v|
717
- @query.send(:instance_variable_set, "@#{k}", prepare_custom_query_arguments(k.to_sym, v))
711
+ if custom_queries = self.class.custom_queries
712
+ queries = custom_queries[@opts[:custom_query_group]] || {}
713
+ rel = relation.singularize
714
+ if custom_query = queries[rel] || custom_queries['all'][rel]
715
+ custom_query.each do |k,v|
716
+ @query.send(:instance_variable_set, "@#{k}", prepare_custom_query_arguments(k.to_sym, v))
717
+ end
718
+ # rebuild table alias
719
+ @query.rebuild_tables!
720
+ # rebuild 'select' aliases
721
+ @query.rebuild_attributes_hash!
722
+ true
718
723
  end
719
- # rebuild table alias
720
- @query.rebuild_tables!
721
- # rebuild 'select' aliases
722
- @query.rebuild_attributes_hash!
723
- true
724
724
  end
725
725
  end
726
726
 
data/querybuilder.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{querybuilder}
8
- s.version = "1.0.0"
8
+ s.version = "1.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Gaspard Bucher"]
12
- s.date = %q{2011-05-10}
12
+ s.date = %q{2011-07-11}
13
13
  s.description = %q{QueryBuilder is an interpreter for the "pseudo sql" language. This language
14
14
  can be used for two purposes:
15
15
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: querybuilder
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gaspard Bucher
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-10 00:00:00 +02:00
18
+ date: 2011-07-11 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency