no_querying_views 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/no_querying_views.rb +18 -16
  3. metadata +15 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f329a6973e413375d79a14cfce6950e7f1b6298c
4
- data.tar.gz: 6a449f146d684d0228a5d87c6ac4de1222f4bdbf
3
+ metadata.gz: dba32b053f4e56d3ffe35ecdf6e15ff8c2ecb0b3
4
+ data.tar.gz: 3eaa0341e2d853e4a7858c8f4d5e2febabba1469
5
5
  SHA512:
6
- metadata.gz: 2554abcb1af080e6f97ece8e3811b0c9f028e4325ec268e6d5036aae9f0fa3082dc22d9ec0a266754e487c09cbc7c644ce30f5dc1c374e636cc3b212529257e6
7
- data.tar.gz: d3db38762bfe3fecdde8f286ee80d3a3c636d1ca386922fb1ca06e8564fdd9e878301de735a8c522727b1c09ef744b290a102b32cb5ec895c54a6af8226eca7c
6
+ metadata.gz: e42c3447c17a3d438f26708c2e37995eabdd630b8e51221d8dce63e6ca51e1af47017a170dda6ff0f23dbc2b2ff61d2bde54ebe3afb98c8fcba106799056956c
7
+ data.tar.gz: 86e2177d69bdb727337d0dc5c0b0f9de39fae45b12f848f664da8f77ca4d35444277682c5c8bb454aa42e3702012a8634ceb1145672a977c7e280b265406c9a3
@@ -2,7 +2,7 @@ def safe_require(path)
2
2
  begin
3
3
  require path
4
4
  rescue Gem::LoadError => e
5
- "Not loading #{path}: #{e.message}"
5
+ puts "Not loading #{path}: #{e.message}"
6
6
  end
7
7
  end
8
8
 
@@ -14,26 +14,28 @@ if !Rails.env.production?
14
14
 
15
15
  NoQueryingViewError = Class.new(Exception)
16
16
 
17
+ module NoQueryingViews
18
+ def exec_query(*args)
19
+ first_view = caller.grep(/app\/views/).first
20
+ first_helper = caller.grep(/app\/helpers/).first
21
+
22
+ # if we're coming from a view, let's analyze the situation
23
+ if first_view && (first_helper.nil? || (caller.index(first_view) < caller.index(first_helper)))
24
+ reason = first_view || first_helper
25
+ file, line, _ = reason.split(':')
26
+ raise NoQueryingViewError, "Latest query located in #{file}, line #{line}"
27
+ else
28
+ super(*args)
29
+ end
30
+ end
31
+ end
32
+
17
33
  module ::ActiveRecord
18
34
  module ConnectionAdapters
19
35
  %w(PostgreSQLAdapter SQLite3Adapter).each do |adapter_name|
20
36
  begin
21
37
  adapter = const_get adapter_name
22
- adapter.class_eval do
23
- def exec_query(*args)
24
- first_view = caller.grep(/app\/views/).first
25
- first_helper = caller.grep(/app\/helpers/).first
26
-
27
- # if we're coming from a view, let's analyze the situation
28
- if !first_view.nil? and (first_helper.nil? or (caller.index(first_view) < caller.index(first_helper)))
29
- reason = first_view || first_helper
30
- file, line, _ = reason.split(':')
31
- raise NoQueryingViewError.new("Latest query located in #{file}, line #{line}")
32
- else
33
- super
34
- end
35
- end
36
- end
38
+ adapter.send(:prepend, NoQueryingViews)
37
39
  rescue Exception => e
38
40
  puts "#{e.class} happened: #{e.message}"
39
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: no_querying_views
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franck Verrot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-24 00:00:00.000000000 Z
11
+ date: 2018-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -56,44 +56,44 @@ dependencies:
56
56
  name: actionpack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 4.0.0
61
+ version: '5.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 4.0.0
68
+ version: '5.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activerecord
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 4.0.0
75
+ version: '5.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 4.0.0
82
+ version: '5.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: railties
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 4.0.0
89
+ version: '5.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 4.0.0
96
+ version: '5.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sqlite3
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -148,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  version: '0'
149
149
  requirements: []
150
150
  rubyforge_project:
151
- rubygems_version: 2.2.0
151
+ rubygems_version: 2.4.5.2
152
152
  signing_key:
153
153
  specification_version: 4
154
154
  summary: No more querying views in your Rails apps