strict_templates 0.1.1 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +16 -0
- data/lib/strict_templates/concern.rb +21 -1
- data/lib/strict_templates/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9c1f18b685f0f9975dcf921d774f192b16f71c2
|
4
|
+
data.tar.gz: b910943adeaa424de58c108e8c2e7bd2cb66b0c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80fa519dffc4e4e109b867a0bd0c30c4d405bfe442f6bc381cdf299a2722b353963b60f349cd1f392021c28e6c51c85be15abfad05baf580e28767904623b4e6
|
7
|
+
data.tar.gz: c34498088245e2d7ea649c7e95d5aa9500207b8503e39628efcbd71bdcadd441b7ed3a596adb95af0be27ee7a683a31eba1b98b6e6dd9c19128ed29d61f90539
|
data/README.md
CHANGED
@@ -34,6 +34,22 @@ end
|
|
34
34
|
|
35
35
|
Errors will be raised whenever a request issues a SQL statement from within a template.
|
36
36
|
|
37
|
+
It's recommended that you do not raise exceptions within your production or production-like environments. Exceptions can be disabled wholesale with the following Rails config flag:
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
Rails.application.configure do
|
41
|
+
config.strict_templates.raise_on_queries = false
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
Alternatively, you can specify a custom error handler to log the errors or do something else interesting with them:
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
Rails.application.configure do
|
49
|
+
config.strict_templates.error_handler = ->(error) { Bugsnag.report(error) }
|
50
|
+
end
|
51
|
+
```
|
52
|
+
|
37
53
|
## Development
|
38
54
|
|
39
55
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -8,9 +8,17 @@ module StrictTemplates
|
|
8
8
|
|
9
9
|
included do
|
10
10
|
def render(*args, &block)
|
11
|
+
if !should_raise_on_queries?
|
12
|
+
return super
|
13
|
+
end
|
14
|
+
|
11
15
|
callback = lambda do |name, start, finish, id, payload|
|
12
16
|
if !should_ignore_sql_statement?(payload[:name])
|
13
|
-
|
17
|
+
if has_custom_error_handler?
|
18
|
+
config.strict_templates.error_handler.call(payload)
|
19
|
+
else
|
20
|
+
raise SQLPerformedWithinTemplateError.new("A SQL request was issued within the template: \n #{payload[:sql]}")
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
16
24
|
|
@@ -24,6 +32,18 @@ module StrictTemplates
|
|
24
32
|
def should_ignore_sql_statement?(name)
|
25
33
|
name == 'SCHEMA' || name == 'ActiveRecord::SchemaMigration Load'
|
26
34
|
end
|
35
|
+
|
36
|
+
def config
|
37
|
+
Rails.configuration if defined?(Rails)
|
38
|
+
end
|
39
|
+
|
40
|
+
def should_raise_on_queries?
|
41
|
+
config&.strict_templates&.raise_on_queries != false
|
42
|
+
end
|
43
|
+
|
44
|
+
def has_custom_error_handler?
|
45
|
+
config&.strict_templates&.error_handler
|
46
|
+
end
|
27
47
|
end
|
28
48
|
end
|
29
49
|
end
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module StrictTemplates
|
2
|
-
VERSION = '0.
|
3
|
-
end
|
2
|
+
VERSION = '0.2.0'
|
3
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strict_templates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelly Sutton
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|