sdbcli 0.1.2 → 0.1.3

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 (4) hide show
  1. data/README +10 -1
  2. data/bin/sdbcli +10 -2
  3. data/lib/sdbcli/sdb-runner.rb +10 -4
  4. metadata +4 -4
data/README CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == Description
4
4
 
5
- sdbcli is interactive command-line client of Amazon SimpleDB.
5
+ sdbcli is an interactive command-line client of Amazon SimpleDB.
6
6
 
7
7
  == Source Code
8
8
 
@@ -47,6 +47,15 @@ https://bitbucket.org/winebarrel/sdbcli
47
47
  ---
48
48
  - [itemname1, {attr1: val1, attr2: val2}]
49
49
  - [itemname2, {attr1: val1, attr2: val2}]
50
+ ap-northeast-1> select * from test \G
51
+ ---
52
+ - - itemname1
53
+ - attr1: val1
54
+ attr2: val2
55
+ - itemname2
56
+ - attr1: val1
57
+ attr2: val2
58
+
50
59
 
51
60
  shell> echo 'select * from test' | sdbcli
52
61
  ---
data/bin/sdbcli CHANGED
@@ -27,7 +27,15 @@ end
27
27
  $runner = SimpleDB::Runner.new(access_key_id, secret_access_key, sdb_endpoint)
28
28
 
29
29
  def execute(query)
30
- out = $runner.execute(query)
30
+ query = query.strip.sub(/\s*;\Z/, '')
31
+ inline = true
32
+
33
+ if query =~ /\s*\\G\Z/i
34
+ query = query.sub(/\s*\\G\Z/i, '')
35
+ inline = false
36
+ end
37
+
38
+ out = $runner.execute(query, inline)
31
39
  puts YAML.dump(out) if out
32
40
  end
33
41
 
@@ -79,7 +87,7 @@ while buf = Readline.readline("#{region}> ", true)
79
87
  when 'exit', 'quit'
80
88
  exit
81
89
  else
82
- execute(buf.sub(/;\Z/, ''))
90
+ execute(buf)
83
91
  end
84
92
  rescue => e
85
93
  puts e.message.strip
@@ -17,14 +17,18 @@ module SimpleDB
17
17
  @driver.endpoint = v
18
18
  end
19
19
 
20
- def execute(query)
20
+ def execute(query, inline = true)
21
21
  parsed = Parser.parse(query)
22
22
  command = parsed.class.name.split('::').last.to_sym
23
23
 
24
24
  case command
25
25
  when :GET
26
26
  item = @driver.get(parsed.domain, parsed.item_name, parsed.attr_names)
27
- def item.to_yaml_style; :inline; end
27
+
28
+ if inline
29
+ def item.to_yaml_style; :inline; end
30
+ end
31
+
28
32
  item
29
33
  when :INSERT
30
34
  @driver.insert(parsed.domain, parsed.item_name, parsed.attrs)
@@ -38,8 +42,10 @@ module SimpleDB
38
42
  when :SELECT
39
43
  items = @driver.select(parsed.query)
40
44
 
41
- items.each do |item|
42
- def item.to_yaml_style; :inline; end
45
+ if inline
46
+ items.each do |item|
47
+ def item.to_yaml_style; :inline; end
48
+ end
43
49
  end
44
50
 
45
51
  items
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: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - winebarrel
@@ -80,6 +80,6 @@ rubyforge_project:
80
80
  rubygems_version: 1.8.11
81
81
  signing_key:
82
82
  specification_version: 3
83
- summary: sdbcli is interactive command-line client of Amazon SimpleDB.
83
+ summary: sdbcli is an interactive command-line client of Amazon SimpleDB.
84
84
  test_files: []
85
85