erb_sql_templates 0.1 → 0.2

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/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: []