erb_sql_templates 0.1 → 0.2
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/lib/erb_sql_templates.rb +18 -6
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0589cf7eb368addd16a828db3b427aa8189fd69
|
4
|
+
data.tar.gz: dccb2e6b97950b6adf1029a07118fb28c928c62e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8fc54fc2b28fd4ee124bf06a65c7f5561d9191fdaab861d60e255eeef7911045b4f445a5507bbdfa9d4ce73d63a8b0c3e04f40b3c5b283f13cf29ea7e1c08d8
|
7
|
+
data.tar.gz: 13ee4e90bd75e20c05a50f42ea0c92a28c92fbf95479933688b3834c79ef5db87e33ad5e2bd8c484912a340713992dd291c265ca02610ba608fefad420983cda
|
data/lib/erb_sql_templates.rb
CHANGED
@@ -7,6 +7,7 @@ require 'ostruct'
|
|
7
7
|
# sql = est.render(:some_sql, :my_var => 'Foo!')
|
8
8
|
|
9
9
|
class ErbSqlTemplates
|
10
|
+
attr_reader :connection
|
10
11
|
|
11
12
|
def initialize(dir, connection)
|
12
13
|
@directory = dir
|
@@ -20,7 +21,7 @@ class ErbSqlTemplates
|
|
20
21
|
|
21
22
|
# Returns built sql
|
22
23
|
def render(template_name, **data)
|
23
|
-
scope = TemplateScope.new(
|
24
|
+
scope = TemplateScope.new(self, data)
|
24
25
|
erb_string = load_template(template_name)
|
25
26
|
renderer = ERB.new(erb_string, 0, '>') # thread level zero, and '>' means no new lines for <%= %>
|
26
27
|
return renderer.result(scope.get_binding)
|
@@ -28,12 +29,18 @@ class ErbSqlTemplates
|
|
28
29
|
|
29
30
|
# Returns string of the filename
|
30
31
|
def locate_template(name)
|
31
|
-
results = Dir.glob(@directory + "/#{name}.{sql.erb
|
32
|
+
results = Dir.glob(@directory + "/#{name}.{erb.sql,sql.erb}")
|
32
33
|
if results.length > 1
|
33
34
|
raise Exception.new("Too many templates have the name '#{name}'. ")
|
34
35
|
elsif results.length == 0
|
35
|
-
raise Exception.new("Cannot find template '#{name}.erb
|
36
|
+
raise Exception.new("Cannot find template '#{name}.erb.sql' in the directory '#{@directory}'.")
|
36
37
|
else
|
38
|
+
# Check if they are using old file extensions. Only do it once though.
|
39
|
+
if @@did_send_deprecation_notice != true && results.first.match(/\.sql\.erb$/)
|
40
|
+
@@did_send_deprecation_notice = true
|
41
|
+
puts "Deprecation Notice: .sql.erb extensions for ERB SQL templates has been deprecated in favor of .erb.sql extensions."
|
42
|
+
end
|
43
|
+
|
37
44
|
return results.first
|
38
45
|
end
|
39
46
|
end
|
@@ -46,14 +53,18 @@ class ErbSqlTemplates
|
|
46
53
|
|
47
54
|
|
48
55
|
class TemplateScope < OpenStruct
|
49
|
-
def initialize(
|
50
|
-
@
|
56
|
+
def initialize(builder, hash)
|
57
|
+
@builder = builder
|
51
58
|
super hash
|
52
59
|
end
|
53
60
|
|
61
|
+
def render(template_name, **args)
|
62
|
+
return @builder.render(template_name, **args)
|
63
|
+
end
|
64
|
+
|
54
65
|
# helper for sanitizing sql inputs
|
55
66
|
def h(value)
|
56
|
-
return @connection.quote(value)
|
67
|
+
return @builder.connection.quote(value)
|
57
68
|
end
|
58
69
|
|
59
70
|
# Expose private binding() method.
|
@@ -72,6 +83,7 @@ class ErbSqlTemplates
|
|
72
83
|
|
73
84
|
end
|
74
85
|
|
86
|
+
@@did_send_deprecation_notice=false
|
75
87
|
end
|
76
88
|
|
77
89
|
|
metadata
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erb_sql_templates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: Utility to render and execute `.sql
|
13
|
+
description: Utility to render and execute `.erb.sql` templates that have been customized
|
14
14
|
with ERB.
|
15
|
-
email:
|
15
|
+
email: code@polar-concepts.com
|
16
16
|
executables: []
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
20
|
- lib/erb_sql_templates.rb
|
21
|
-
homepage:
|
21
|
+
homepage: https://github.com/bdevel/erb_sql_templates
|
22
22
|
licenses:
|
23
23
|
- MIT
|
24
24
|
metadata: {}
|
@@ -28,12 +28,12 @@ require_paths:
|
|
28
28
|
- lib
|
29
29
|
required_ruby_version: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
35
|
requirements:
|
36
|
-
- -
|
36
|
+
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: '0'
|
39
39
|
requirements: []
|