epoxy 0.1.0 → 0.1.1

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 (5) hide show
  1. data/Rakefile +4 -2
  2. data/VERSION +1 -1
  3. data/lib/epoxy.rb +2 -0
  4. data/test/test_epoxy.rb +84 -9
  5. metadata +15 -4
data/Rakefile CHANGED
@@ -10,6 +10,7 @@ begin
10
10
  gem.email = "erik@hollensbe.org"
11
11
  gem.homepage = "http://github.com/erikh/epoxy"
12
12
  gem.authors = ["Erik Hollensbe"]
13
+ gem.add_development_dependency 'rdoc'
13
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
15
  end
15
16
  Jeweler::GemcutterTasks.new
@@ -45,12 +46,13 @@ task :to_blog => [:clobber_rdoc, :rdoc] do
45
46
  sh "rm -fr $git/blog/content/docs/epoxy && mv rdoc $git/blog/content/docs/epoxy"
46
47
  end
47
48
 
48
- require 'rake/rdoctask'
49
- Rake::RDocTask.new do |rdoc|
49
+ require 'rdoc/task'
50
+ RDoc::Task.new do |rdoc|
50
51
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
51
52
 
52
53
  rdoc.rdoc_dir = 'rdoc'
53
54
  rdoc.title = "epoxy #{version}"
55
+ rdoc.main = "README.rdoc"
54
56
  rdoc.rdoc_files.include('README*')
55
57
  rdoc.rdoc_files.include('lib/**/*.rb')
56
58
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -35,6 +35,8 @@ class Epoxy
35
35
  |
36
36
  " ( [^"\\] | "" | \\. )* " (?# match strings surrounded by " )
37
37
  |
38
+ ['"] (?# match a loose quote )
39
+ |
38
40
  \?\?? (?# match one or two question marks )
39
41
  |
40
42
  [^-/'"?]+ (?# match all characters except ' " ? - and / )
@@ -9,35 +9,110 @@ class TestEpoxy < Test::Unit::TestCase
9
9
  assert_equal("select * from foo where bar='foo'", ep.quote { |x| "'foo'" })
10
10
  end
11
11
 
12
- def test_02_double_question
12
+ def test_02_literal_question_mark
13
13
  ep = Epoxy.new("select ?? from foo where bar=?")
14
14
  assert_equal("select ? from foo where bar='foo'", ep.quote { |x| "'foo'" })
15
+
16
+ ep = Epoxy.new("select ??? from foo where bar=?")
17
+ assert_equal("select ?'foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
18
+
19
+ ep = Epoxy.new("select ???? from foo where bar=?")
20
+ assert_equal("select ?? from foo where bar='foo'", ep.quote { |x| "'foo'" })
21
+
22
+ ep = Epoxy.new("select ????? from foo where bar=?")
23
+ assert_equal("select ??'foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
24
+
25
+ ep = Epoxy.new("select '?' from foo where bar=?")
26
+ assert_equal("select '?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
27
+
28
+ ep = Epoxy.new("select '?'? from foo where bar=?")
29
+ assert_equal("select '?''foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
30
+
31
+ ep = Epoxy.new("select '?''?' from foo where bar=?")
32
+ assert_equal("select '?''?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
33
+
34
+ ep = Epoxy.new("select ?'?' from foo where bar=?")
35
+ assert_equal("select 'foo''?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
36
+
37
+ ep = Epoxy.new("select ?'?'? from foo where bar=?")
38
+ assert_equal("select 'foo''?''foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
39
+
40
+ ep = Epoxy.new("select '?'?'? from foo where bar=?")
41
+ assert_equal("select '?''foo'''foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
42
+
43
+ ep = Epoxy.new("select '?'?'?' from foo where bar=?")
44
+ assert_equal("select '?''foo''?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
45
+
46
+ ep = Epoxy.new("select '?'?? from foo where bar=?")
47
+ assert_equal("select '?'? from foo where bar='foo'", ep.quote { |x| "'foo'" })
48
+
49
+ ep = Epoxy.new("select '?'??? from foo where bar=?")
50
+ assert_equal("select '?'?'foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
51
+
52
+ ep = Epoxy.new("select ??'?'??? from foo where bar=?")
53
+ assert_equal("select ?'?'?'foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
54
+
55
+ ep = Epoxy.new("select ???'?'??? from foo where bar=?")
56
+ assert_equal("select ?'foo''?'?'foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
57
+
58
+ ep = Epoxy.new("select ''? from foo where bar=?")
59
+ assert_equal("select '''foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
60
+
61
+ ep = Epoxy.new("select '''? from foo where bar=?")
62
+ assert_equal("select ''''foo' from foo where bar='foo'", ep.quote { |x| "'foo'" })
63
+
64
+ ep = Epoxy.new("select ''?' from foo where bar=?")
65
+ assert_equal("select '''foo'' from foo where bar='foo'", ep.quote { |x| "'foo'" })
66
+
67
+ ep = Epoxy.new("select ''?'' from foo where bar=?")
68
+ assert_equal("select '''foo''' from foo where bar='foo'", ep.quote { |x| "'foo'" })
69
+
70
+ ep = Epoxy.new("select ''??' from foo where bar=?")
71
+ assert_equal("select ''?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
72
+
73
+ ep = Epoxy.new("select '?''?' from foo where bar=?")
74
+ assert_equal("select '?''?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
75
+
76
+ ep = Epoxy.new("select '?'''?' from foo where bar=?")
77
+ assert_equal("select '?''''foo'' from foo where bar='foo'", ep.quote { |x| "'foo'" })
78
+
79
+ ep = Epoxy.new("select '?''''?' from foo where bar=?")
80
+ assert_equal("select '?''''?' from foo where bar='foo'", ep.quote { |x| "'foo'" })
81
+
82
+ ep = Epoxy.new("select '??' from foo where bar=?")
83
+ assert_equal("select '??' from foo where bar='foo'", ep.quote { |x| "'foo'" })
84
+
85
+ ep = Epoxy.new("select '???' from foo where bar=?")
86
+ assert_equal("select '???' from foo where bar='foo'", ep.quote { |x| "'foo'" })
87
+
88
+ ep = Epoxy.new("select ''???' from foo where bar=?")
89
+ assert_equal("select ''?'foo'' from foo where bar='foo'", ep.quote { |x| "'foo'" })
15
90
  end
16
91
 
17
92
  def test_03_quotes_already
18
93
  ep = Epoxy.new("select * from \"foo\" where bar=?")
19
94
  assert_equal("select * from \"foo\" where bar='foo'", ep.quote { |x| "'foo'" })
20
-
95
+
21
96
  ep = Epoxy.new("select * from 'foo' where bar=?")
22
97
  assert_equal("select * from 'foo' where bar='foo'", ep.quote { |x| "'foo'" })
23
98
  end
24
-
99
+
25
100
  def test_04_holy_shit
26
101
  ep = Epoxy.new("select * from \"'foo'\" where bar=?")
27
102
  assert_equal("select * from \"'foo'\" where bar='foo'", ep.quote { |x| "'foo'" })
28
-
103
+
29
104
  ep = Epoxy.new("select * from E\"'foo'\" where bar=?")
30
105
  assert_equal("select * from E\"'foo'\" where bar='foo'", ep.quote { |x| "'foo'" })
31
-
106
+
32
107
  ep = Epoxy.new("select * from E\"''foo''\" where bar=?")
33
108
  assert_equal("select * from E\"''foo''\" where bar='foo'", ep.quote { |x| "'foo'" })
34
-
109
+
35
110
  ep = Epoxy.new("select * from E\"\\''foo''\" where bar=?")
36
111
  assert_equal("select * from E\"\\''foo''\" where bar='foo'", ep.quote { |x| "'foo'" })
37
-
112
+
38
113
  ep = Epoxy.new("select * from E\"\\''foo\\''\" where bar=?")
39
114
  assert_equal("select * from E\"\\''foo\\''\" where bar='foo'", ep.quote { |x| "'foo'" })
40
-
115
+
41
116
  ep = Epoxy.new("select * from foo where bar='?'")
42
117
  assert_equal("select * from foo where bar='?'", ep.quote { |x| "'foo'" })
43
118
  end
@@ -47,7 +122,7 @@ class TestEpoxy < Test::Unit::TestCase
47
122
  -- a comment!
48
123
  select * from foo where bar=?
49
124
  }.strip)
50
-
125
+
51
126
  assert_equal(%Q{
52
127
  -- a comment!
53
128
  select * from foo where bar='foo'
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Erik Hollensbe
@@ -16,8 +16,19 @@ cert_chain: []
16
16
 
17
17
  date: 2010-05-27 00:00:00 -04:00
18
18
  default_executable:
19
- dependencies: []
20
-
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rdoc
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :development
31
+ version_requirements: *id001
21
32
  description: Parse binds in SQL or any other data query language, quote, even configure for client-side binding. It all works!
22
33
  email: erik@hollensbe.org
23
34
  executables: []