sqlpostgres 1.2.4

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 (207) hide show
  1. data/Gemfile +8 -0
  2. data/Gemfile.lock +22 -0
  3. data/LICENSE.md +23 -0
  4. data/README.rdoc +59 -0
  5. data/Rakefile +32 -0
  6. data/VERSION +1 -0
  7. data/doc/BUGS +2 -0
  8. data/doc/examples/README +6 -0
  9. data/doc/examples/connection.rb +16 -0
  10. data/doc/examples/connection_auto.rb +22 -0
  11. data/doc/examples/connection_ctor.rb +18 -0
  12. data/doc/examples/connection_default.rb +15 -0
  13. data/doc/examples/connection_exec.rb +18 -0
  14. data/doc/examples/connection_manual.rb +12 -0
  15. data/doc/examples/connection_wrapped_new.rb +13 -0
  16. data/doc/examples/connection_wrapped_open.rb +13 -0
  17. data/doc/examples/cursor.rb +38 -0
  18. data/doc/examples/include_module.rb +9 -0
  19. data/doc/examples/include_module2.rb +12 -0
  20. data/doc/examples/insert.rb +30 -0
  21. data/doc/examples/insert2.rb +36 -0
  22. data/doc/examples/insert_bytea.rb +16 -0
  23. data/doc/examples/insert_bytea_array.rb +17 -0
  24. data/doc/examples/insert_default_values.rb +16 -0
  25. data/doc/examples/insert_insert.rb +16 -0
  26. data/doc/examples/insert_insert_default.rb +16 -0
  27. data/doc/examples/insert_insert_select.rb +20 -0
  28. data/doc/examples/insert_select.rb +20 -0
  29. data/doc/examples/interval.rb +17 -0
  30. data/doc/examples/savepoint.rb +38 -0
  31. data/doc/examples/select.rb +33 -0
  32. data/doc/examples/select2.rb +36 -0
  33. data/doc/examples/select_cross_join.rb +18 -0
  34. data/doc/examples/select_distinct.rb +18 -0
  35. data/doc/examples/select_distinct_on +19 -0
  36. data/doc/examples/select_for_update.rb +18 -0
  37. data/doc/examples/select_from.rb +17 -0
  38. data/doc/examples/select_from_subselect.rb +20 -0
  39. data/doc/examples/select_group_by.rb +19 -0
  40. data/doc/examples/select_having.rb +20 -0
  41. data/doc/examples/select_join_on.rb +18 -0
  42. data/doc/examples/select_join_using.rb +18 -0
  43. data/doc/examples/select_limit.rb +19 -0
  44. data/doc/examples/select_natural_join.rb +18 -0
  45. data/doc/examples/select_offset.rb +19 -0
  46. data/doc/examples/select_order_by.rb +20 -0
  47. data/doc/examples/select_select.rb +30 -0
  48. data/doc/examples/select_select_alias.rb +30 -0
  49. data/doc/examples/select_select_expression.rb +31 -0
  50. data/doc/examples/select_select_literal.rb +24 -0
  51. data/doc/examples/select_union.rb +21 -0
  52. data/doc/examples/select_where_array.rb +18 -0
  53. data/doc/examples/select_where_in.rb +18 -0
  54. data/doc/examples/select_where_string.rb +18 -0
  55. data/doc/examples/simple.rb +34 -0
  56. data/doc/examples/transaction.rb +30 -0
  57. data/doc/examples/transaction_abort.rb +30 -0
  58. data/doc/examples/transaction_commit.rb +34 -0
  59. data/doc/examples/translate_substitute_values.rb +17 -0
  60. data/doc/examples/update.rb +32 -0
  61. data/doc/examples/update2.rb +44 -0
  62. data/doc/examples/update_only.rb +17 -0
  63. data/doc/examples/update_set.rb +17 -0
  64. data/doc/examples/update_set_array.rb +16 -0
  65. data/doc/examples/update_set_bytea.rb +16 -0
  66. data/doc/examples/update_set_expression.rb +16 -0
  67. data/doc/examples/update_set_subselect.rb +20 -0
  68. data/doc/examples/update_where.rb +17 -0
  69. data/doc/examples/use_prefix.rb +8 -0
  70. data/doc/examples/use_prefix2.rb +11 -0
  71. data/doc/index.html +31 -0
  72. data/doc/insertexamples.rb +9 -0
  73. data/doc/makemanual +4 -0
  74. data/doc/makerdoc +5 -0
  75. data/doc/manual.dbk +622 -0
  76. data/lib/sqlpostgres/Connection.rb +198 -0
  77. data/lib/sqlpostgres/Cursor.rb +157 -0
  78. data/lib/sqlpostgres/Delete.rb +67 -0
  79. data/lib/sqlpostgres/Exceptions.rb +15 -0
  80. data/lib/sqlpostgres/Insert.rb +279 -0
  81. data/lib/sqlpostgres/NullConnection.rb +22 -0
  82. data/lib/sqlpostgres/PgBit.rb +73 -0
  83. data/lib/sqlpostgres/PgBox.rb +37 -0
  84. data/lib/sqlpostgres/PgCidr.rb +21 -0
  85. data/lib/sqlpostgres/PgCircle.rb +75 -0
  86. data/lib/sqlpostgres/PgInet.rb +21 -0
  87. data/lib/sqlpostgres/PgInterval.rb +208 -0
  88. data/lib/sqlpostgres/PgLineSegment.rb +37 -0
  89. data/lib/sqlpostgres/PgMacAddr.rb +21 -0
  90. data/lib/sqlpostgres/PgPath.rb +64 -0
  91. data/lib/sqlpostgres/PgPoint.rb +65 -0
  92. data/lib/sqlpostgres/PgPolygon.rb +56 -0
  93. data/lib/sqlpostgres/PgTime.rb +77 -0
  94. data/lib/sqlpostgres/PgTimeWithTimeZone.rb +98 -0
  95. data/lib/sqlpostgres/PgTimestamp.rb +93 -0
  96. data/lib/sqlpostgres/PgTwoPoints.rb +54 -0
  97. data/lib/sqlpostgres/PgType.rb +34 -0
  98. data/lib/sqlpostgres/PgWrapper.rb +41 -0
  99. data/lib/sqlpostgres/Savepoint.rb +98 -0
  100. data/lib/sqlpostgres/Select.rb +855 -0
  101. data/lib/sqlpostgres/Transaction.rb +120 -0
  102. data/lib/sqlpostgres/Translate.rb +436 -0
  103. data/lib/sqlpostgres/Update.rb +188 -0
  104. data/lib/sqlpostgres.rb +67 -0
  105. data/test/Assert.rb +72 -0
  106. data/test/Connection.test.rb +246 -0
  107. data/test/Cursor.test.rb +190 -0
  108. data/test/Delete.test.rb +68 -0
  109. data/test/Insert.test.rb +123 -0
  110. data/test/MockPGconn.rb +62 -0
  111. data/test/NullConnection.test.rb +32 -0
  112. data/test/PgBit.test.rb +98 -0
  113. data/test/PgBox.test.rb +108 -0
  114. data/test/PgCidr.test.rb +61 -0
  115. data/test/PgCircle.test.rb +107 -0
  116. data/test/PgInet.test.rb +61 -0
  117. data/test/PgInterval.test.rb +180 -0
  118. data/test/PgLineSegment.test.rb +108 -0
  119. data/test/PgMacAddr.test.rb +61 -0
  120. data/test/PgPath.test.rb +106 -0
  121. data/test/PgPoint.test.rb +100 -0
  122. data/test/PgPolygon.test.rb +95 -0
  123. data/test/PgTime.test.rb +120 -0
  124. data/test/PgTimeWithTimeZone.test.rb +117 -0
  125. data/test/PgTimestamp.test.rb +134 -0
  126. data/test/RandomThings.rb +25 -0
  127. data/test/Savepoint.test.rb +286 -0
  128. data/test/Select.test.rb +930 -0
  129. data/test/Test.rb +62 -0
  130. data/test/TestConfig.rb +21 -0
  131. data/test/TestSetup.rb +13 -0
  132. data/test/TestUtil.rb +92 -0
  133. data/test/Transaction.test.rb +275 -0
  134. data/test/Translate.test.rb +354 -0
  135. data/test/Update.test.rb +227 -0
  136. data/test/roundtrip.test.rb +565 -0
  137. data/test/test +34 -0
  138. data/tools/exampleinserter/ExampleInserter.rb +177 -0
  139. data/tools/rdoc/ChangeLog +796 -0
  140. data/tools/rdoc/EXAMPLE.rb +48 -0
  141. data/tools/rdoc/MANIFEST +58 -0
  142. data/tools/rdoc/Makefile +27 -0
  143. data/tools/rdoc/NEW_FEATURES +226 -0
  144. data/tools/rdoc/README +390 -0
  145. data/tools/rdoc/ToDo +6 -0
  146. data/tools/rdoc/contrib/Index +6 -0
  147. data/tools/rdoc/contrib/xslfo/ChangeLog +181 -0
  148. data/tools/rdoc/contrib/xslfo/README +106 -0
  149. data/tools/rdoc/contrib/xslfo/TODO +10 -0
  150. data/tools/rdoc/contrib/xslfo/convert.xsl +151 -0
  151. data/tools/rdoc/contrib/xslfo/demo/README +21 -0
  152. data/tools/rdoc/contrib/xslfo/demo/rdocfo +99 -0
  153. data/tools/rdoc/contrib/xslfo/fcm.xsl +54 -0
  154. data/tools/rdoc/contrib/xslfo/files.xsl +62 -0
  155. data/tools/rdoc/contrib/xslfo/labeled-lists.xsl +66 -0
  156. data/tools/rdoc/contrib/xslfo/lists.xsl +44 -0
  157. data/tools/rdoc/contrib/xslfo/modules.xsl +152 -0
  158. data/tools/rdoc/contrib/xslfo/rdoc.xsl +75 -0
  159. data/tools/rdoc/contrib/xslfo/source.xsl +66 -0
  160. data/tools/rdoc/contrib/xslfo/styles.xsl +69 -0
  161. data/tools/rdoc/contrib/xslfo/tables.xsl +67 -0
  162. data/tools/rdoc/contrib/xslfo/utils.xsl +21 -0
  163. data/tools/rdoc/debian/changelog +33 -0
  164. data/tools/rdoc/debian/compat +1 -0
  165. data/tools/rdoc/debian/control +20 -0
  166. data/tools/rdoc/debian/copyright +10 -0
  167. data/tools/rdoc/debian/dirs +2 -0
  168. data/tools/rdoc/debian/docs +2 -0
  169. data/tools/rdoc/debian/rdoc.1 +252 -0
  170. data/tools/rdoc/debian/rdoc.manpages +1 -0
  171. data/tools/rdoc/debian/rdoc.pod +149 -0
  172. data/tools/rdoc/debian/rules +9 -0
  173. data/tools/rdoc/dot/dot.rb +255 -0
  174. data/tools/rdoc/etc/rdoc.dtd +203 -0
  175. data/tools/rdoc/install.rb +137 -0
  176. data/tools/rdoc/markup/install.rb +43 -0
  177. data/tools/rdoc/markup/sample/sample.rb +42 -0
  178. data/tools/rdoc/markup/simple_markup/fragments.rb +323 -0
  179. data/tools/rdoc/markup/simple_markup/inline.rb +348 -0
  180. data/tools/rdoc/markup/simple_markup/lines.rb +147 -0
  181. data/tools/rdoc/markup/simple_markup/preprocess.rb +68 -0
  182. data/tools/rdoc/markup/simple_markup/to_html.rb +281 -0
  183. data/tools/rdoc/markup/simple_markup.rb +474 -0
  184. data/tools/rdoc/markup/test/AllTests.rb +2 -0
  185. data/tools/rdoc/markup/test/TestInline.rb +151 -0
  186. data/tools/rdoc/markup/test/TestParse.rb +411 -0
  187. data/tools/rdoc/rdoc/code_objects.rb +536 -0
  188. data/tools/rdoc/rdoc/diagram.rb +331 -0
  189. data/tools/rdoc/rdoc/generators/chm_generator.rb +112 -0
  190. data/tools/rdoc/rdoc/generators/html_generator.rb +1268 -0
  191. data/tools/rdoc/rdoc/generators/template/chm/chm.rb +86 -0
  192. data/tools/rdoc/rdoc/generators/template/html/html.rb +705 -0
  193. data/tools/rdoc/rdoc/generators/template/html/kilmer.rb +377 -0
  194. data/tools/rdoc/rdoc/generators/template/xml/rdf.rb +110 -0
  195. data/tools/rdoc/rdoc/generators/template/xml/xml.rb +110 -0
  196. data/tools/rdoc/rdoc/generators/xml_generator.rb +130 -0
  197. data/tools/rdoc/rdoc/options.rb +451 -0
  198. data/tools/rdoc/rdoc/parsers/parse_c.rb +287 -0
  199. data/tools/rdoc/rdoc/parsers/parse_f95.rb +118 -0
  200. data/tools/rdoc/rdoc/parsers/parse_rb.rb +2311 -0
  201. data/tools/rdoc/rdoc/parsers/parse_simple.rb +37 -0
  202. data/tools/rdoc/rdoc/parsers/parserfactory.rb +75 -0
  203. data/tools/rdoc/rdoc/rdoc.rb +219 -0
  204. data/tools/rdoc/rdoc/template.rb +234 -0
  205. data/tools/rdoc/rdoc/tokenstream.rb +25 -0
  206. data/tools/rdoc/rdoc.rb +9 -0
  207. metadata +291 -0
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ Connection.open do |connection|
13
+
14
+ connection.exec("create temporary table foo (i integer)")
15
+
16
+ insert = Insert.new('foo', connection)
17
+ insert.insert('i', 1)
18
+ insert.exec
19
+
20
+ # Example: ../../lib/sqlpostgres/Update.rb
21
+ update = Update.new('foo', connection)
22
+ update.set('i', 2)
23
+ p update.statement # OUTPUT
24
+ update.exec
25
+ # End example
26
+
27
+ select = Select.new(connection)
28
+ select.select('i')
29
+ select.from('foo')
30
+ assertEquals(select.exec, [{'i'=>2}])
31
+
32
+ end
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ Connection.open do |connection|
13
+
14
+ connection.exec("create temporary table person (name text, married boolean)")
15
+
16
+ insert = Insert.new('person', connection)
17
+ insert.insert('name', 'Jones')
18
+ insert.insert('married', false)
19
+ insert.exec
20
+
21
+ insert = Insert.new('person', connection)
22
+ insert.insert('name', 'Smith')
23
+ insert.insert('married', false)
24
+ insert.exec
25
+
26
+ # Example: ../manual.dbk
27
+ update = Update.new('person', connection)
28
+ update.set('married', true)
29
+ update.where(['name = %s', 'Smith'])
30
+ p update.statement # OUTPUT
31
+ update.exec
32
+ # End example
33
+
34
+ select = Select.new(connection)
35
+ select.select('name')
36
+ select.select('married')
37
+ select.from('person')
38
+ select.order_by('name')
39
+ assertEquals(select.exec, [
40
+ {'name'=>'Jones', 'married'=>false},
41
+ {'name'=>'Smith', 'married'=>true},
42
+ ])
43
+
44
+ end
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ update = Update.new('foo')
14
+ update.only
15
+ update.set('i', 0)
16
+ p update.statement # OUTPUT
17
+ # End example
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ update = Update.new('foo')
14
+ update.set('name', 'Fred')
15
+ update.set('hire_date', Time.local(2002, 1, 1))
16
+ p update.statement # OUTPUT
17
+ # End example
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ update = Update.new('foo')
14
+ update.set_array('i', [1, 2, 3])
15
+ p update.statement # OUTPUT
16
+ # End example
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ update = Update.new('foo')
14
+ update.set_bytea('name', "\000\377")
15
+ p update.statement # OUTPUT
16
+ # End example
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ update = Update.new('foo')
14
+ update.set('i', ['i + 1'])
15
+ p update.statement # OUTPUT
16
+ # End example
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ select = Select.new
14
+ select.select('j')
15
+ select.from('bar')
16
+ select.where(["i = foo.i"])
17
+ update = Update.new('foo')
18
+ update.set('i', select)
19
+ p update.statement # OUTPUT
20
+ # End example
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "../../lib"))
4
+ $:.unshift(File.join(File.dirname(__FILE__), "../../test"))
5
+
6
+ require 'Assert'
7
+ require 'sqlpostgres'
8
+
9
+ include SqlPostgres
10
+ include Assert
11
+
12
+ # Example: ../../lib/sqlpostgres/Update.rb
13
+ update = Update.new('foo')
14
+ update.set('i', 1)
15
+ update.where(['t = %s', "bar"])
16
+ p update.statement # OUTPUT
17
+ # End example
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), "../../lib/")
4
+
5
+ # Example: ../../lib/sqlpostgres.rb
6
+ require 'sqlpostgres'
7
+ insert = SqlPostgres::Insert.new('foo')
8
+ # End example
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), "../../lib/")
4
+
5
+ # Example: ../manual.dbk
6
+ require 'sqlpostgres'
7
+
8
+ SqlPostgres::Connection.open do |connection|
9
+ #...
10
+ end
11
+ # End example
data/doc/index.html ADDED
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2
+ "http://www.w3.org/TR/html4/strict.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <title>libsqlpostgres-ruby1.8</title>
7
+ </head>
8
+
9
+ <body>
10
+
11
+ <h1>libsqlpostgres-ruby1.8</h1>
12
+
13
+ <p>sqlpostgres is a wrapper around the venerable Ruby postgres
14
+ library. sqlpostgres builds and executes insert, update and select
15
+ statements. sqlpostgres statements are easier to read and maintain
16
+ than raw SQL. Ruby data types are automatically converted to and from
17
+ SQL data types, and results are returned as an array of hashes rather
18
+ than an array of arrays.</p>
19
+
20
+ <h2>Documentation</h2>
21
+
22
+ <ul>
23
+
24
+ <li><a href="manual.html">Manual</a></li>
25
+
26
+ <li><a href="rdoc/index.html">Class reference</a></li>
27
+
28
+ </ul>
29
+
30
+ </body>
31
+ </html>
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__))
4
+ require '../tools/exampleinserter/ExampleInserter'
5
+
6
+ for example in Dir['examples/*.rb']
7
+ puts "----- #{example}"
8
+ ExampleInserter.new(example).run
9
+ end
data/doc/makemanual ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__))
4
+ system("xmlto html-nochunks manual.dbk")
data/doc/makerdoc ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__))
4
+ system("ruby -I ../tools/rdoc ../tools/rdoc/rdoc.rb -o rdoc ../lib/*.rb "\
5
+ "../lib/sqlpostgres/*.rb")