dynamic_controller 0.0.10 → 0.0.11
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/.travis.yml +5 -0
- data/README.md +2 -0
- data/dynamic_controller.gemspec +7 -7
- data/lib/dynamic_controller/helper_methods.rb +0 -29
- data/lib/dynamic_controller/instance_methods.rb +6 -13
- data/lib/dynamic_controller/version.rb +1 -1
- data/spec/dummy/.gitignore +0 -3
- data/spec/dummy/db/test.sqlite3 +0 -0
- metadata +34 -32
data/.travis.yml
ADDED
data/README.md
CHANGED
data/dynamic_controller.gemspec
CHANGED
@@ -16,12 +16,12 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
|
-
s.add_dependency 'ransack'
|
20
|
-
s.add_dependency 'kaminari'
|
21
|
-
s.add_dependency 'nql', '0.
|
19
|
+
s.add_dependency 'ransack', '~> 0.7'
|
20
|
+
s.add_dependency 'kaminari', '~> 0.13'
|
21
|
+
s.add_dependency 'nql', '~> 0.1'
|
22
22
|
|
23
|
-
s.add_development_dependency 'rails'
|
24
|
-
s.add_development_dependency 'sqlite3'
|
25
|
-
s.add_development_dependency 'rspec-rails'
|
26
|
-
s.add_development_dependency 'factory_girl_rails'
|
23
|
+
s.add_development_dependency 'rails', '~> 3.2'
|
24
|
+
s.add_development_dependency 'sqlite3', '~> 1.3'
|
25
|
+
s.add_development_dependency 'rspec-rails', '~> 2.12'
|
26
|
+
s.add_development_dependency 'factory_girl_rails', '~> 3.4'
|
27
27
|
end
|
@@ -72,34 +72,5 @@ module DynamicController
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
-
def ransack_query
|
76
|
-
search_query.is_a?(String) ? NQL.to_ransack(search_query) : search_query
|
77
|
-
end
|
78
|
-
|
79
|
-
def search_query_valid?
|
80
|
-
begin
|
81
|
-
search_node_valid? ransack_query, model_extended_attributes
|
82
|
-
rescue NQL::InvalidExpressionError => ex
|
83
|
-
Rails.logger.debug "Invalid search query: #{params[:q]} | Error: #{ex.message}"
|
84
|
-
false
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def search_node_valid?(node, valid_attributes)
|
89
|
-
return true unless node
|
90
|
-
node.deep_symbolize_keys.each do |k, v|
|
91
|
-
if k == :a
|
92
|
-
return false unless valid_attributes.include?(v['0'.to_sym][:name])
|
93
|
-
else
|
94
|
-
if v.is_a?(Hash)
|
95
|
-
return false unless search_node_valid?(v, valid_attributes)
|
96
|
-
elsif v.is_a?(Array)
|
97
|
-
v.select { |e| e.is_a?(Hash) }.each { |e| return false unless search_node_valid?(e, valid_attributes) }
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
true
|
102
|
-
end
|
103
|
-
|
104
75
|
end
|
105
76
|
end
|
@@ -12,19 +12,12 @@ module DynamicController
|
|
12
12
|
model = resource_class
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
rescue ActiveRecord::StatementInvalid => ex
|
22
|
-
Rails.logger.debug "Invalid search query: #{params[:q]} | Error: #{ex.message}"
|
23
|
-
self.collection = empty_collection
|
24
|
-
end
|
25
|
-
else
|
26
|
-
self.collection = empty_collection
|
27
|
-
end
|
15
|
+
self.collection =
|
16
|
+
if search_query.is_a? String
|
17
|
+
model.nql(search_query, distinct: true).page(params[:page])
|
18
|
+
else
|
19
|
+
model.search(search_query).result(distinct: true).page(params[:page])
|
20
|
+
end
|
28
21
|
|
29
22
|
Responder.new(self).index
|
30
23
|
end
|
data/spec/dummy/.gitignore
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamic_controller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,120 +9,120 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ransack
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
21
|
+
version: '0.7'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
29
|
+
version: '0.7'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: kaminari
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
37
|
+
version: '0.13'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
45
|
+
version: '0.13'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: nql
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.
|
53
|
+
version: '0.1'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: '0.1'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: rails
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '3.2'
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '3.2'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: sqlite3
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
85
|
+
version: '1.3'
|
86
86
|
type: :development
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
|
-
- -
|
91
|
+
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
93
|
+
version: '1.3'
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: rspec-rails
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
|
-
- -
|
99
|
+
- - ~>
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
101
|
+
version: '2.12'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
109
|
+
version: '2.12'
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
111
|
name: factory_girl_rails
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '3.4'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
125
|
+
version: '3.4'
|
126
126
|
description: Simple way to add CRUD actions into Rails controllers
|
127
127
|
email:
|
128
128
|
- gabynaiman@gmail.com
|
@@ -131,6 +131,7 @@ extensions: []
|
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
133
|
- .gitignore
|
134
|
+
- .travis.yml
|
134
135
|
- Gemfile
|
135
136
|
- README.md
|
136
137
|
- Rakefile
|
@@ -217,6 +218,7 @@ files:
|
|
217
218
|
- spec/dummy/db/migrate/20120929185302_create_streets.rb
|
218
219
|
- spec/dummy/db/schema.rb
|
219
220
|
- spec/dummy/db/seeds.rb
|
221
|
+
- spec/dummy/db/test.sqlite3
|
220
222
|
- spec/dummy/doc/README_FOR_APP
|
221
223
|
- spec/dummy/lib/assets/.gitkeep
|
222
224
|
- spec/dummy/lib/tasks/.gitkeep
|
@@ -248,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
248
250
|
version: '0'
|
249
251
|
segments:
|
250
252
|
- 0
|
251
|
-
hash:
|
253
|
+
hash: -3382296632707607217
|
252
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
253
255
|
none: false
|
254
256
|
requirements:
|
@@ -257,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
259
|
version: '0'
|
258
260
|
segments:
|
259
261
|
- 0
|
260
|
-
hash:
|
262
|
+
hash: -3382296632707607217
|
261
263
|
requirements: []
|
262
264
|
rubyforge_project:
|
263
265
|
rubygems_version: 1.8.24
|