jdbc-helper 0.2.0 → 0.2.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.
data/README.rdoc CHANGED
@@ -29,21 +29,25 @@ Add JDBC driver of the DBMS you're willing to use to your CLASSPATH
29
29
  :user => 'mysql',
30
30
  :password => '')
31
31
  conn.close
32
-
33
-
32
+
33
+
34
34
  # MySQL shortcut connector
35
35
  conn = JDBCHelper::MySQLConnector.connect('localhost', 'mysql', '', 'test')
36
36
  conn.close
37
-
37
+
38
38
  == Querying database table
39
39
 
40
40
  conn.query("SELECT a, b, c FROM T") do | row |
41
- p row.labels
42
- p row.rownum
41
+ row.labels
42
+ row.rownum
43
+
44
+ row.a, row.b, row.c # Dot-notation
45
+ row[0], row[1], row[2] # Numeric index
46
+ row['a'], row['b'], row['c'] # String index. Case-insensitive.
47
+ row[:a], row[:b], row[:c] # Symbol index. Case-insensitive.
43
48
 
44
- puts row.a, row.b, row.c
45
- puts row[0], row[1], row[2]
46
- puts row['a'], row['b'], row['c']
49
+ row[0..-1] # Range index. Returns an array of values.
50
+ row[0, 3] # Offset and length. Returns an array of values.
47
51
  end
48
52
 
49
53
  # Returns an array of rows when block is not given
@@ -62,9 +66,9 @@ Add JDBC driver of the DBMS you're willing to use to your CLASSPATH
62
66
  # chain enumerators, `enumerate' is much preferred over `query'. (which returns the
63
67
  # array of the entire rows)
64
68
  conn.enumerate("SELECT * FROM LARGE_T").each_slice(1000) do | slice |
65
- slice.each do | row |
66
- # ...
67
- end
69
+ slice.each do | row |
70
+ # ...
71
+ end
68
72
  end
69
73
 
70
74
  == Updating database table
@@ -75,7 +79,7 @@ Add JDBC driver of the DBMS you're willing to use to your CLASSPATH
75
79
  # ...
76
80
  # Transaction logic here
77
81
  # ...
78
-
82
+
79
83
  if success
80
84
  tx.commit
81
85
  else
@@ -88,7 +92,7 @@ Add JDBC driver of the DBMS you're willing to use to your CLASSPATH
88
92
  conn.execute_batch
89
93
  conn.add_batch("DELETE FROM T");
90
94
  conn.clear_batch
91
-
95
+
92
96
  == Using prepared statements
93
97
  p_sel = conn.prepare("SELECT * FROM T WHERE b = ? and c = ?")
94
98
  p_sel.query(100, 200) do | row |
@@ -110,7 +114,7 @@ Add JDBC driver of the DBMS you're willing to use to your CLASSPATH
110
114
 
111
115
  == Using table wrappers (since 0.2.0)
112
116
  # For more complex examples, refer to test/test_object_wrapper.rb
113
-
117
+
114
118
  conn.table('test.data').count
115
119
  conn.table('test.data').empty?
116
120
  conn.table('test.data').select(:c => 3) do |row|
@@ -125,7 +129,7 @@ Add JDBC driver of the DBMS you're willing to use to your CLASSPATH
125
129
  conn.table('test.data').drop_table!
126
130
 
127
131
  == Contributing to jdbc-helper
128
-
132
+
129
133
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
130
134
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
131
135
  * Fork the project
@@ -12,6 +12,7 @@ class Connection
12
12
  # puts row.a
13
13
  # puts row[1]
14
14
  # puts row['c']
15
+ # puts row[:a]
15
16
  #
16
17
  # row.each do | value |
17
18
  # # ...
@@ -33,16 +34,24 @@ class Row
33
34
 
34
35
  include Enumerable
35
36
 
36
- # @param [Fixnum/String] idx
37
- # @return [Object]
38
- def [](idx)
37
+ # @overload [](idx)
38
+ # @param [Fixnum/String/Symbol/Range] idx Access index
39
+ # @return [Object]
40
+ # @overload [](offset, len)
41
+ # @param [Fixnum] offset Start offset
42
+ # @param [Fixnum] len Length of Array
43
+ # @return [Array]
44
+ def [](*idx)
45
+ return @values[*idx] if idx.length > 1
46
+
47
+ idx = idx.first
39
48
  case idx
40
49
  when Fixnum
41
50
  raise RangeError.new("Index out of bound") if idx >= @values.length
42
51
  @values[idx]
43
- when String
52
+ when String, Symbol
44
53
  # case-insensitive, assuming no duplicate labels
45
- vidx = @labels_d.index(idx.downcase) or
54
+ vidx = @labels_d.index(idx.to_s.downcase) or
46
55
  raise NameError.new("Unknown column label: #{idx}")
47
56
  @values[vidx]
48
57
  else
@@ -25,10 +25,19 @@ class TestConnection < Test::Unit::TestCase
25
25
  assert_equal 1, rec.one
26
26
  assert_equal 1, rec[0]
27
27
  assert_equal 1, rec['one']
28
+ assert_equal 1, rec[:one]
29
+ assert_equal [1], rec[0...1]
30
+ assert_equal [1], rec[0, 1]
28
31
 
29
32
  assert_equal 'two', rec.two
30
33
  assert_equal 'two', rec[1]
31
34
  assert_equal 'two', rec['two']
35
+ assert_equal ['two'], rec[1..-1]
36
+ assert_equal ['two'], rec[1, 1]
37
+
38
+ assert_equal [1, 'two'], rec[0..1]
39
+ assert_equal [1, 'two'], rec[0..-1]
40
+ assert_equal [1, 'two'], rec[0, 2]
32
41
 
33
42
  assert_raise(NoMethodError) { rec.three }
34
43
  assert_raise(NameError) { rec['three'] }
metadata CHANGED
@@ -1,113 +1,118 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jdbc-helper
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.2.1
6
6
  platform: ruby
7
- authors:
8
- - Junegunn Choi
7
+ authors:
8
+ - Junegunn Choi
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-05-19 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: bundler
16
- requirement: &2156345260 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 1.0.0
22
- type: :development
23
- prerelease: false
24
- version_requirements: *2156345260
25
- - !ruby/object:Gem::Dependency
26
- name: jeweler
27
- requirement: &2156344780 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ~>
31
- - !ruby/object:Gem::Version
32
- version: 1.5.2
33
- type: :development
34
- prerelease: false
35
- version_requirements: *2156344780
36
- - !ruby/object:Gem::Dependency
37
- name: rcov
38
- requirement: &2156344300 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :development
45
- prerelease: false
46
- version_requirements: *2156344300
47
- description: JDBCHelper::Connection object wraps around a JDBC connection and provides
48
- much nicer interface to crucial database operations from primitive selects and updates
49
- to more complex ones involving batch updates, prepared statements and transactions.
12
+
13
+ date: 2011-05-19 00:00:00 +09:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: bundler
18
+ version_requirements: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.0
24
+ requirement: *id001
25
+ prerelease: false
26
+ type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: jeweler
29
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 1.5.2
35
+ requirement: *id002
36
+ prerelease: false
37
+ type: :development
38
+ - !ruby/object:Gem::Dependency
39
+ name: rcov
40
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ requirement: *id003
47
+ prerelease: false
48
+ type: :development
49
+ description: A JDBC helper for JRuby/Database developers.
50
50
  email: junegunn.c@gmail.com
51
51
  executables: []
52
+
52
53
  extensions: []
53
- extra_rdoc_files:
54
- - LICENSE.txt
55
- - README.rdoc
56
- files:
57
- - lib/jdbc-helper.rb
58
- - lib/jdbc-helper/connection.rb
59
- - lib/jdbc-helper/connection/prepared_statement.rb
60
- - lib/jdbc-helper/connection/result_set_enumerator.rb
61
- - lib/jdbc-helper/connection/row.rb
62
- - lib/jdbc-helper/connection/statement_pool.rb
63
- - lib/jdbc-helper/connector.rb
64
- - lib/jdbc-helper/connector/mysql_connector.rb
65
- - lib/jdbc-helper/connector/oracle_connector.rb
66
- - lib/jdbc-helper/constants.rb
67
- - lib/jdbc-helper/object_wrapper.rb
68
- - lib/jdbc-helper/sql.rb
69
- - LICENSE.txt
70
- - README.rdoc
71
- - test/database.yml
72
- - test/helper.rb
73
- - test/test_connection.rb
74
- - test/test_connectors.rb
75
- - test/test_object_wrapper.rb
76
- - test/test_performance.rb
77
- - test/test_sql.rb
54
+
55
+ extra_rdoc_files:
56
+ - LICENSE.txt
57
+ - README.rdoc
58
+ files:
59
+ - lib/jdbc-helper.rb
60
+ - lib/jdbc-helper/connection.rb
61
+ - lib/jdbc-helper/connection/prepared_statement.rb
62
+ - lib/jdbc-helper/connection/result_set_enumerator.rb
63
+ - lib/jdbc-helper/connection/row.rb
64
+ - lib/jdbc-helper/connection/statement_pool.rb
65
+ - lib/jdbc-helper/connector.rb
66
+ - lib/jdbc-helper/connector/mysql_connector.rb
67
+ - lib/jdbc-helper/connector/oracle_connector.rb
68
+ - lib/jdbc-helper/constants.rb
69
+ - lib/jdbc-helper/object_wrapper.rb
70
+ - lib/jdbc-helper/sql.rb
71
+ - LICENSE.txt
72
+ - README.rdoc
73
+ - test/database.yml
74
+ - test/helper.rb
75
+ - test/test_connection.rb
76
+ - test/test_connectors.rb
77
+ - test/test_object_wrapper.rb
78
+ - test/test_performance.rb
79
+ - test/test_sql.rb
80
+ has_rdoc: true
78
81
  homepage: http://github.com/junegunn/jdbc-helper
79
- licenses:
80
- - MIT
82
+ licenses:
83
+ - MIT
81
84
  post_install_message:
82
85
  rdoc_options: []
83
- require_paths:
84
- - lib
85
- required_ruby_version: !ruby/object:Gem::Requirement
86
+
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
86
90
  none: false
87
- requirements:
88
- - - ! '>='
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- segments:
92
- - 0
93
- hash: -1455612613663735519
94
- required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ hash: 2
95
+ segments:
96
+ - 0
97
+ version: "0"
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
99
  none: false
96
- requirements:
97
- - - ! '>='
98
- - !ruby/object:Gem::Version
99
- version: '0'
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
100
104
  requirements: []
105
+
101
106
  rubyforge_project:
102
- rubygems_version: 1.7.2
107
+ rubygems_version: 1.5.1
103
108
  signing_key:
104
109
  specification_version: 3
105
- summary: A JDBC helper for Ruby/Database developers
106
- test_files:
107
- - test/database.yml
108
- - test/helper.rb
109
- - test/test_connection.rb
110
- - test/test_connectors.rb
111
- - test/test_object_wrapper.rb
112
- - test/test_performance.rb
113
- - test/test_sql.rb
110
+ summary: A JDBC helper for JRuby/Database developers.
111
+ test_files:
112
+ - test/database.yml
113
+ - test/helper.rb
114
+ - test/test_connection.rb
115
+ - test/test_connectors.rb
116
+ - test/test_object_wrapper.rb
117
+ - test/test_performance.rb
118
+ - test/test_sql.rb