pg_helper 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.3.0 (2012.01.29)
2
+ * added multiple values output as hash and array of array.
3
+ * CSV output
4
+
1
5
  ## 0.2.1 (2011.03.31)
2
6
  * yard documentation added
3
7
 
@@ -5,4 +9,4 @@
5
9
  * changed Jeweler to Bundler
6
10
 
7
11
  ## 0.1.0 (2011.03.21)
8
- * Hello World!
12
+ * Hello World!
@@ -56,6 +56,46 @@ class QueryHelper
56
56
  end
57
57
  end
58
58
 
59
+ # @param [String] query SQL select that should return one row, may include $1, $2 etc to be replaced by arguments
60
+ # @param [Array<String>] params query arguments to be passed on to PostgreSql
61
+ # @return [Hash] Hash of column_name => row_value for resulting row
62
+ def get_hash(query, params = [])
63
+ exec(query, params) do |pg_result|
64
+ require_single_row!(pg_result)
65
+ pg_result.res[0]
66
+ end
67
+ end
68
+
69
+ # @param [String] query SQL select, may include $1, $2 etc to be replaced by arguments
70
+ # @param [Array<String>] params query arguments to be passed on to PostgreSql
71
+ # @return [Array<Array>] Array containing Array of values for each row
72
+ def get_all(query, params = [])
73
+ exec(query, params) do |pg_result|
74
+ pg_result.values
75
+ end
76
+ end
77
+
78
+ # @param [String] query SQL select, may include $1, $2 etc to be replaced by arguments
79
+ # @param [Array<String>] params query arguments to be passed on to PostgreSql
80
+ # @return [Array<Hash>] Array containing hash of column_name => row_value for each row
81
+ def get_all_hashes(query, params = [])
82
+ exec(query, params) do |pg_result|
83
+ pg_result.to_a
84
+ end
85
+ end
86
+
87
+ # @param [String] query SQL select, may include $1, $2 etc to be replaced by arguments
88
+ # @param [Array<String>] params query arguments to be passed on to PostgreSql
89
+ # @return String csv representation of query result with csv header
90
+ def csv(query)
91
+ csv_query = "COPY (#{query}) TO STDOUT with CSV HEADER"
92
+ exec(csv_query, params = []) do
93
+ csv_data = ""
94
+ csv_data += buf while buf = @pg_connection.get_copy_data(true)
95
+ csv_data
96
+ end
97
+ end
98
+
59
99
  # @param [String] query SQL update, may include $1, $2 etc to be replaced by arguments
60
100
  # @param [Array<String>] params query arguments to be passed on to PostgreSql
61
101
  # @return [Integer] Number of rows changed
@@ -1,5 +1,5 @@
1
1
  #Main module of PgHelper gem/plugin
2
2
  module PgHelper
3
3
  # @return [String] gem version
4
- VERSION = "0.2.1"
4
+ VERSION = "0.3.0"
5
5
  end
data/pg_helper.gemspec CHANGED
@@ -28,5 +28,4 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'ZenTest'
29
29
  s.add_development_dependency 'yard'
30
30
  s.add_development_dependency 'bluecloth' #yard hidden dependency
31
-
32
31
  end
@@ -8,7 +8,7 @@ describe QueryHelper do
8
8
  :port => 1234,
9
9
  :username => 'my user',
10
10
  :password => 'my password',
11
- :database => 'my base'
11
+ :dbname => 'my base'
12
12
  }
13
13
  }
14
14
 
@@ -44,7 +44,7 @@ describe QueryHelper do
44
44
  end
45
45
  end
46
46
 
47
- let(:pg_helper) { QueryHelper.new({:database => 'postgres'})}
47
+ let(:pg_helper) { QueryHelper.new({:dbname => 'postgres', :host => 'localhost'})}
48
48
 
49
49
  describe 'single value' do
50
50
  it 'is returned as string' do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_helper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ervin
@@ -15,12 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-31 00:00:00 +03:00
19
- default_executable:
18
+ date: 2012-01-29 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
21
+ name: pg
22
22
  prerelease: false
23
- type: :runtime
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
@@ -30,11 +29,11 @@ dependencies:
30
29
  segments:
31
30
  - 0
32
31
  version: "0"
32
+ type: :runtime
33
33
  version_requirements: *id001
34
- name: pg
35
34
  - !ruby/object:Gem::Dependency
35
+ name: rake
36
36
  prerelease: false
37
- type: :development
38
37
  requirement: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
@@ -44,11 +43,11 @@ dependencies:
44
43
  segments:
45
44
  - 0
46
45
  version: "0"
46
+ type: :development
47
47
  version_requirements: *id002
48
- name: rake
49
48
  - !ruby/object:Gem::Dependency
49
+ name: rspec
50
50
  prerelease: false
51
- type: :development
52
51
  requirement: &id003 !ruby/object:Gem::Requirement
53
52
  none: false
54
53
  requirements:
@@ -58,11 +57,11 @@ dependencies:
58
57
  segments:
59
58
  - 0
60
59
  version: "0"
60
+ type: :development
61
61
  version_requirements: *id003
62
- name: rspec
63
62
  - !ruby/object:Gem::Dependency
63
+ name: wirble
64
64
  prerelease: false
65
- type: :development
66
65
  requirement: &id004 !ruby/object:Gem::Requirement
67
66
  none: false
68
67
  requirements:
@@ -72,11 +71,11 @@ dependencies:
72
71
  segments:
73
72
  - 0
74
73
  version: "0"
74
+ type: :development
75
75
  version_requirements: *id004
76
- name: wirble
77
76
  - !ruby/object:Gem::Dependency
77
+ name: metric_fu
78
78
  prerelease: false
79
- type: :development
80
79
  requirement: &id005 !ruby/object:Gem::Requirement
81
80
  none: false
82
81
  requirements:
@@ -86,11 +85,11 @@ dependencies:
86
85
  segments:
87
86
  - 0
88
87
  version: "0"
88
+ type: :development
89
89
  version_requirements: *id005
90
- name: metric_fu
91
90
  - !ruby/object:Gem::Dependency
91
+ name: ZenTest
92
92
  prerelease: false
93
- type: :development
94
93
  requirement: &id006 !ruby/object:Gem::Requirement
95
94
  none: false
96
95
  requirements:
@@ -100,11 +99,11 @@ dependencies:
100
99
  segments:
101
100
  - 0
102
101
  version: "0"
102
+ type: :development
103
103
  version_requirements: *id006
104
- name: ZenTest
105
104
  - !ruby/object:Gem::Dependency
105
+ name: yard
106
106
  prerelease: false
107
- type: :development
108
107
  requirement: &id007 !ruby/object:Gem::Requirement
109
108
  none: false
110
109
  requirements:
@@ -114,11 +113,11 @@ dependencies:
114
113
  segments:
115
114
  - 0
116
115
  version: "0"
116
+ type: :development
117
117
  version_requirements: *id007
118
- name: yard
119
118
  - !ruby/object:Gem::Dependency
119
+ name: bluecloth
120
120
  prerelease: false
121
- type: :development
122
121
  requirement: &id008 !ruby/object:Gem::Requirement
123
122
  none: false
124
123
  requirements:
@@ -128,8 +127,8 @@ dependencies:
128
127
  segments:
129
128
  - 0
130
129
  version: "0"
130
+ type: :development
131
131
  version_requirements: *id008
132
- name: bluecloth
133
132
  description: Makes even easier to use postgresql without activerecord
134
133
  email: webervin@gmail.com
135
134
  executables: []
@@ -152,7 +151,6 @@ files:
152
151
  - pg_helper.gemspec
153
152
  - spec/lib/pg_helper_spec.rb
154
153
  - spec/spec_helper.rb
155
- has_rdoc: yard
156
154
  homepage: http://github.com/webervin/pg_helper
157
155
  licenses: []
158
156
 
@@ -182,9 +180,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
180
  requirements: []
183
181
 
184
182
  rubyforge_project: pg_helper
185
- rubygems_version: 1.5.2
183
+ rubygems_version: 1.8.15
186
184
  signing_key:
187
185
  specification_version: 3
188
186
  summary: Tiny wraper for 'pg' gem
189
- test_files: []
190
-
187
+ test_files:
188
+ - spec/lib/pg_helper_spec.rb
189
+ - spec/spec_helper.rb