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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/erb_sql_templates.rb +18 -6
  3. metadata +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8aa544ee1e549c64ddefaefb5f956036ebd5af2e
4
- data.tar.gz: 70ae407e9b50cc6397cee8b8d881426596e319c7
3
+ metadata.gz: d0589cf7eb368addd16a828db3b427aa8189fd69
4
+ data.tar.gz: dccb2e6b97950b6adf1029a07118fb28c928c62e
5
5
  SHA512:
6
- metadata.gz: 2f781347ca13c2ff6c6633310a145bf9b6a9e96531d76bf7fcfd5b78b39bbafc4d9b1d979f879eff65ae332559fbd01a96d891e176b64d9c49e310d467ca3fc0
7
- data.tar.gz: 03bb3043452f052d5f70a17db6d19abbb1f1714f38bb00fe2f85320b4f55773c28934d79460f6d8711cc9a7e20b64adfce79f24e541c2412a44d44a08827a7e2
6
+ metadata.gz: b8fc54fc2b28fd4ee124bf06a65c7f5561d9191fdaab861d60e255eeef7911045b4f445a5507bbdfa9d4ce73d63a8b0c3e04f40b3c5b283f13cf29ea7e1c08d8
7
+ data.tar.gz: 13ee4e90bd75e20c05a50f42ea0c92a28c92fbf95479933688b3834c79ef5db87e33ad5e2bd8c484912a340713992dd291c265ca02610ba608fefad420983cda
@@ -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(@connection, data)
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,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' or '#{name}.sql.erb' in the directory '#{@directory}'.")
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(connection, hash)
50
- @connection = connection
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.1'
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: 2014-12-25 00:00:00.000000000 Z
11
+ date: 2015-04-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Utility to render and execute `.sql.erb` templates that have been customized
13
+ description: Utility to render and execute `.erb.sql` templates that have been customized
14
14
  with ERB.
15
- email: tyler@westernleap.com
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: http://github.com/bdevel/erb_sql_templates
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: []