sdbcli 1.4.3 → 1.4.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 (3) hide show
  1. data/bin/sdbcli +1 -1
  2. data/lib/sdbcli/sdb-runner.rb +91 -35
  3. metadata +3 -3
data/bin/sdbcli CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
3
3
 
4
- Version = '1.4.3'
4
+ Version = '1.4.4'
5
5
  HISTORY_FILE = File.join((ENV['HOME'] || ENV['USERPROFILE'] || '.'), '.sdbcli_history')
6
6
  HISTSIZE = 500
7
7
  SELECT_LIMIT = 2500
@@ -22,6 +22,92 @@ class Array
22
22
  def avg
23
23
  self.sum / self.length
24
24
  end
25
+
26
+ def as_row
27
+ row = self.dup
28
+
29
+ def row.method_missing(method_name)
30
+ case method_name.to_s
31
+ when /itemName/i
32
+ self[0]
33
+ else
34
+ self[1][method_name.to_s]
35
+ end
36
+ end
37
+
38
+ return row
39
+ end
40
+
41
+ def as_row!
42
+ row = self
43
+
44
+ def row.method_missing(method_name)
45
+ case method_name.to_s
46
+ when /itemName/i
47
+ self[0]
48
+ else
49
+ self[1][method_name.to_s]
50
+ end
51
+ end
52
+
53
+ return row
54
+ end
55
+
56
+ def as_rows
57
+ rows = self.dup
58
+
59
+ def rows.method_missing(method_name)
60
+ case method_name.to_s
61
+ when /itemName/i
62
+ self.map {|i| i[0] }
63
+ else
64
+ self.map {|i| i[1][method_name.to_s] }
65
+ end
66
+ end
67
+
68
+ return rows
69
+ end
70
+
71
+ def as_rows!
72
+ rows = self
73
+
74
+ def rows.method_missing(method_name)
75
+ case method_name.to_s
76
+ when /itemName/i
77
+ self.map {|i| i[0] }
78
+ else
79
+ self.map {|i| i[1][method_name.to_s] }
80
+ end
81
+ end
82
+
83
+ return rows
84
+ end
85
+
86
+ def inline
87
+ obj = self.dup
88
+ def obj.to_yaml_style; :inline; end
89
+ return obj
90
+ end
91
+
92
+ def inline!
93
+ obj = self
94
+ def obj.to_yaml_style; :inline; end
95
+ return obj
96
+ end
97
+ end
98
+
99
+ class Hash
100
+ def inline
101
+ obj = self.dup
102
+ def obj.to_yaml_style; :inline; end
103
+ return obj
104
+ end
105
+
106
+ def inline!
107
+ obj = self
108
+ def obj.to_yaml_style; :inline; end
109
+ return obj
110
+ end
25
111
  end
26
112
 
27
113
  module SimpleDB
@@ -92,11 +178,7 @@ module SimpleDB
92
178
  case command
93
179
  when :GET
94
180
  item = @driver.get(parsed.domain, parsed.item_name, parsed.attr_names, consistent)
95
-
96
- if inline
97
- def item.to_yaml_style; :inline; end
98
- end
99
-
181
+ item.inline! if inline
100
182
  item
101
183
  when :INSERT
102
184
  rownum = parsed.items.length
@@ -149,24 +231,10 @@ module SimpleDB
149
231
  end
150
232
 
151
233
  unless items.kind_of?(Integer)
152
- def items.method_missing(method_name)
153
- case method_name.to_s
154
- when /itemName/i
155
- self.map {|i| i[0] }
156
- else
157
- self.map {|i| i[1][method_name.to_s] }
158
- end
159
- end
234
+ items.as_rows!
160
235
 
161
236
  items.each do |item|
162
- def item.method_missing(method_name)
163
- case method_name.to_s
164
- when /itemName/i
165
- self[0]
166
- else
167
- self[1][method_name.to_s]
168
- end
169
- end
237
+ item.as_row!
170
238
  end
171
239
 
172
240
  def items.group_by(name, &block)
@@ -176,17 +244,7 @@ module SimpleDB
176
244
  key = item[1][name.to_s]
177
245
 
178
246
  unless item_h[key]
179
- item_list = []
180
-
181
- def item_list.method_missing(method_name)
182
- case method_name.to_s
183
- when /itemName/i
184
- self.map {|i| i[0] }
185
- else
186
- self.map {|i| i[1][method_name.to_s] }
187
- end
188
- end
189
-
247
+ item_list = [].as_rows
190
248
  item_h[key] = item_list
191
249
  end
192
250
 
@@ -222,9 +280,7 @@ module SimpleDB
222
280
 
223
281
  if inline and items.kind_of?(Array)
224
282
  items.each do |item|
225
- if item.kind_of?(Array)
226
- def item.to_yaml_style; :inline; end
227
- end
283
+ item.inline! if item.kind_of?(Array)
228
284
  end
229
285
  end
230
286
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sdbcli
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 4
9
- - 3
10
- version: 1.4.3
9
+ - 4
10
+ version: 1.4.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - winebarrel