pg_helper 0.2.1 → 0.3.0

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/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