dynamic_query 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -21,6 +21,9 @@ rails g dynamic_query:helper
21
21
  ``` ruby
22
22
  ## controller of Rails 3
23
23
  dq = dynamic_query(:list, :entry) # list models you wish to be queried. e.g. List => :list, AbcDef => :abc_def
24
+ # Since version 0.4.0, you can use model's names directly.
25
+ dq = dynamic_query(List, Entry)
26
+
24
27
  @panel = dq.panel(params[:query])
25
28
  @lists = List.includes(:entries).where(dq.statement(params[:query])).all
26
29
 
@@ -34,10 +37,14 @@ dq = dynamic_query(:list, :entry) # list models you wish to be queried. e.g. Lis
34
37
  # columns with name 'id' or name ended with '_id' are hided by default
35
38
  # :reveal_keys => true reveals those columns in the query panel
36
39
  dq = dynamic_query(:list, :entry, :reveal_keys => true)
40
+ # Works for version >= 0.4.0
41
+ dq = dynamic_query(List, Entry, :reveal_keys => true)
37
42
 
38
43
  # a white list or a black list can be defined by following options
39
44
  dq = dynamic_query(:list, :entry, :accept => { :list => [:name], :entry => [:title, :priority] }, :reject => { :entry => [:title] })
40
45
  # only lists.name and entries.priority can be seen on the query panel because the white list gets higher precedence than the black list
46
+ # Works for version >= 0.4.0
47
+ dq = dynamic_query(List, Entry, :accept => { List => [:name], Entry => [:title, :priority] }, :reject => { Entry => [:title] })
41
48
 
42
49
  # column display names can be defined by following options
43
50
  dq = dynamic_query(:list, :entry, :alias => { 'lists.name' => 'Full Name' })
data/Rakefile CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'rubygems'
4
4
  require 'bundler'
5
- require './lib/dynamic_query/version.rb'
6
-
7
5
  begin
8
6
  Bundler.setup(:default, :development)
9
7
  rescue Bundler::BundlerError => e
@@ -14,12 +12,13 @@ end
14
12
  require 'rake'
15
13
 
16
14
  require 'jeweler'
15
+ require './lib/dynamic_query/version.rb'
17
16
  Jeweler::Tasks.new do |gem|
18
17
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
19
- gem.version = DynamicQuery::Version::STRING
20
18
  gem.name = "dynamic_query"
21
19
  gem.homepage = "http://github.com/wnameless/dynamic_query"
22
20
  gem.license = "Apache License, Version 2.0"
21
+ gem.version = DynamicQuery::Version::STRING
23
22
  gem.summary = "dynamic_query-#{gem.version}"
24
23
  gem.description = %Q{A dynamic query gui for ActiveRecord}
25
24
  gem.email = "wnameless@gmail.com"
@@ -36,14 +35,6 @@ Rake::TestTask.new(:test) do |test|
36
35
  test.verbose = true
37
36
  end
38
37
 
39
- require 'rcov/rcovtask'
40
- Rcov::RcovTask.new do |test|
41
- test.libs << 'test'
42
- test.pattern = 'test/**/test_*.rb'
43
- test.verbose = true
44
- test.rcov_opts << '--exclude "gems/*"'
45
- end
46
-
47
38
  task :default => :test
48
39
 
49
40
  require 'rdoc/task'
@@ -1,8 +1,8 @@
1
1
  class DynamicQuery
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 3
5
- PATCH = 2
4
+ MINOR = 4
5
+ PATCH = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
data/lib/dynamic_query.rb CHANGED
@@ -27,13 +27,21 @@ module DynamicQuery
27
27
  opt = {}
28
28
  end
29
29
 
30
+ models.map! do |m|
31
+ if [String, Symbol].include? m.class
32
+ m.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
33
+ else
34
+ m
35
+ end
36
+ end
37
+
30
38
  opt.each do |key, val|
31
39
  @reveal_keys = true if key == :reveal_keys && val
32
40
 
33
41
  if key == :accept
34
42
  val.each do |model, columns|
35
43
  if models.include? model
36
- model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
44
+ # model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
37
45
  columns.each { |col| @white_list << "#{model.table_name}.#{col}" }
38
46
  end
39
47
  end
@@ -42,7 +50,7 @@ module DynamicQuery
42
50
  if key == :reject
43
51
  val.each do |model, columns|
44
52
  if models.include? model
45
- model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
53
+ # model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
46
54
  columns.each { |col| @black_list << "#{model.table_name}.#{col}" }
47
55
  end
48
56
  end
@@ -55,14 +63,14 @@ module DynamicQuery
55
63
 
56
64
  @columns = {}
57
65
  models.each do |model|
58
- model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
66
+ # model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
59
67
  model = Hash[model.columns.map { |col| ["#{model.table_name}.#{col.name}"] * 2 }]
60
68
  @columns.merge! model
61
69
  end
62
70
 
63
71
  @column_types = {}
64
72
  models.each do |model|
65
- model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
73
+ # model = model.to_s.split(/_/).map { |word| word.capitalize }.join.constantize
66
74
  model = Hash[model.columns.map { |col| ["#{model.table_name}.#{col.name}", col.type] }]
67
75
  @column_types.merge! model
68
76
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,46 +9,62 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-24 00:00:00.000000000 Z
12
+ date: 2013-01-29 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: jquery-rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: 2.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 2.2.0
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: rails
16
32
  requirement: !ruby/object:Gem::Requirement
17
33
  none: false
18
34
  requirements:
19
- - - ! '>='
35
+ - - "~>"
20
36
  - !ruby/object:Gem::Version
21
- version: '0'
37
+ version: 3.2.0
22
38
  type: :runtime
23
39
  prerelease: false
24
40
  version_requirements: !ruby/object:Gem::Requirement
25
41
  none: false
26
42
  requirements:
27
- - - ! '>='
43
+ - - "~>"
28
44
  - !ruby/object:Gem::Version
29
- version: '0'
45
+ version: 3.2.0
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: shoulda
32
48
  requirement: !ruby/object:Gem::Requirement
33
49
  none: false
34
50
  requirements:
35
- - - ! '>='
51
+ - - "~>"
36
52
  - !ruby/object:Gem::Version
37
- version: '0'
53
+ version: 3.3.2
38
54
  type: :development
39
55
  prerelease: false
40
56
  version_requirements: !ruby/object:Gem::Requirement
41
57
  none: false
42
58
  requirements:
43
- - - ! '>='
59
+ - - "~>"
44
60
  - !ruby/object:Gem::Version
45
- version: '0'
61
+ version: 3.3.2
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: rdoc
48
64
  requirement: !ruby/object:Gem::Requirement
49
65
  none: false
50
66
  requirements:
51
- - - ~>
67
+ - - "~>"
52
68
  - !ruby/object:Gem::Version
53
69
  version: '3.12'
54
70
  type: :development
@@ -56,7 +72,7 @@ dependencies:
56
72
  version_requirements: !ruby/object:Gem::Requirement
57
73
  none: false
58
74
  requirements:
59
- - - ~>
75
+ - - "~>"
60
76
  - !ruby/object:Gem::Version
61
77
  version: '3.12'
62
78
  - !ruby/object:Gem::Dependency
@@ -64,23 +80,23 @@ dependencies:
64
80
  requirement: !ruby/object:Gem::Requirement
65
81
  none: false
66
82
  requirements:
67
- - - ! '>='
83
+ - - "~>"
68
84
  - !ruby/object:Gem::Version
69
- version: 1.0.0
85
+ version: 1.2.3
70
86
  type: :development
71
87
  prerelease: false
72
88
  version_requirements: !ruby/object:Gem::Requirement
73
89
  none: false
74
90
  requirements:
75
- - - ! '>='
91
+ - - "~>"
76
92
  - !ruby/object:Gem::Version
77
- version: 1.0.0
93
+ version: 1.2.3
78
94
  - !ruby/object:Gem::Dependency
79
95
  name: jeweler
80
96
  requirement: !ruby/object:Gem::Requirement
81
97
  none: false
82
98
  requirements:
83
- - - ~>
99
+ - - "~>"
84
100
  - !ruby/object:Gem::Version
85
101
  version: 1.8.4
86
102
  type: :development
@@ -88,25 +104,25 @@ dependencies:
88
104
  version_requirements: !ruby/object:Gem::Requirement
89
105
  none: false
90
106
  requirements:
91
- - - ~>
107
+ - - "~>"
92
108
  - !ruby/object:Gem::Version
93
109
  version: 1.8.4
94
110
  - !ruby/object:Gem::Dependency
95
- name: rcov
111
+ name: sqlite3
96
112
  requirement: !ruby/object:Gem::Requirement
97
113
  none: false
98
114
  requirements:
99
- - - ~>
115
+ - - "~>"
100
116
  - !ruby/object:Gem::Version
101
- version: 0.9.11
117
+ version: 1.3.7
102
118
  type: :development
103
119
  prerelease: false
104
120
  version_requirements: !ruby/object:Gem::Requirement
105
121
  none: false
106
122
  requirements:
107
- - - ~>
123
+ - - "~>"
108
124
  - !ruby/object:Gem::Version
109
- version: 0.9.11
125
+ version: 1.3.7
110
126
  description: A dynamic query gui for ActiveRecord
111
127
  email: wnameless@gmail.com
112
128
  executables: []
@@ -137,16 +153,16 @@ require_paths:
137
153
  required_ruby_version: !ruby/object:Gem::Requirement
138
154
  none: false
139
155
  requirements:
140
- - - ! '>='
156
+ - - ">="
141
157
  - !ruby/object:Gem::Version
142
158
  version: '0'
143
159
  segments:
144
160
  - 0
145
- hash: 608810096619642963
161
+ hash: 974901957563084135
146
162
  required_rubygems_version: !ruby/object:Gem::Requirement
147
163
  none: false
148
164
  requirements:
149
- - - ! '>='
165
+ - - ">="
150
166
  - !ruby/object:Gem::Version
151
167
  version: '0'
152
168
  requirements: []
@@ -154,5 +170,5 @@ rubyforge_project:
154
170
  rubygems_version: 1.8.24
155
171
  signing_key:
156
172
  specification_version: 3
157
- summary: dynamic_query-0.3.2
173
+ summary: dynamic_query-0.4.0
158
174
  test_files: []