daikon 0.1.1 → 0.2.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.
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{daikon}
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nick Quaranto"]
12
- s.date = %q{2010-11-21}
12
+ s.date = %q{2010-11-23}
13
13
  s.default_executable = %q{daikon}
14
14
  s.description = %q{daikon, a radishapp.com client}
15
15
  s.email = %q{nick@quaran.to}
@@ -1,8 +1,10 @@
1
1
  require 'rubygems'
2
- require 'stringio'
2
+
3
3
  require 'logger'
4
+ require 'pp'
4
5
  require 'shellwords'
5
6
  require 'socket'
7
+ require 'stringio'
6
8
 
7
9
  require 'system_timer'
8
10
  require 'daemons'
@@ -22,5 +24,5 @@ require 'daikon/client'
22
24
  require 'daikon/daemon'
23
25
 
24
26
  module Daikon
25
- VERSION = "0.1.1"
27
+ VERSION = "0.2.0"
26
28
  end
@@ -54,9 +54,11 @@ module Daikon
54
54
 
55
55
  commands.each do |id, command|
56
56
  result = evaluate_redis(command)
57
+ pretty = StringIO.new
58
+ PP.pp(result, pretty)
57
59
 
58
60
  http_request(:put, "api/v1/commands/#{id}.json") do |request|
59
- request.body = result.to_json
61
+ request.body = {"response" => pretty.string.strip}.to_json
60
62
  request.add_field "Content-Length", request.body.size.to_s
61
63
  request.add_field "Content-Type", "application/json"
62
64
  end
@@ -96,16 +98,16 @@ module Daikon
96
98
  rescue Exception => e
97
99
  STDERR.puts e.message
98
100
  e.backtrace.each {|bt| STDERR.puts bt}
99
- return { "response" => e.message }
101
+ return e.message
100
102
  end
101
- return { "response" => "No command received." } unless argv[0]
103
+ return "No command received." unless argv[0]
102
104
 
103
105
  begin
104
- { "response" => execute_redis(argv) }
106
+ execute_redis(argv)
105
107
  rescue Exception => e
106
108
  STDERR.puts e.message
107
109
  e.backtrace.each {|bt| STDERR.puts bt}
108
- { "response" => e.message }
110
+ e.message
109
111
  end
110
112
  end
111
113
 
@@ -70,7 +70,7 @@ describe Daikon::Client, "fetching commands" do
70
70
  let(:body) { {"42" => "INCR foo", "43" => "DECR foo"}.to_json }
71
71
 
72
72
  before do
73
- subject.stubs(:evaluate_redis => {"response" => "9999"})
73
+ subject.stubs(:evaluate_redis => 9999)
74
74
  stub_request(:get, "#{server}/api/v1/commands.json").to_return(:body => body)
75
75
  stub_request(:put, %r{#{server}/api/v1/commands/\d+\.json})
76
76
 
@@ -209,3 +209,24 @@ describe Daikon::Client, "rotate monitor" do
209
209
  it_should_behave_like "a monitor api consumer"
210
210
  end
211
211
  end
212
+
213
+ describe Daikon::Client, "pretty printing results" do
214
+ subject { Daikon::Client.new }
215
+ let(:body) { {"13" => "LRANGE foo 0 -1"}.to_json }
216
+ let(:list) { %w[apples bananas carrots] }
217
+ let(:server) { "https://radishapp.com" }
218
+ let(:config) { Daikon::Configuration.new }
219
+
220
+ before do
221
+ subject.stubs(:evaluate_redis => list)
222
+ stub_request(:get, "#{server}/api/v1/commands.json").to_return(:body => body)
223
+ stub_request(:put, %r{#{server}/api/v1/commands/\d+\.json})
224
+ subject.setup(config)
225
+ subject.fetch_commands
226
+ end
227
+
228
+ it "returns pretty printed results" do
229
+ WebMock.should have_requested(:put, "#{server}/api/v1/commands/13.json").
230
+ with(:body => {"response" => "[\"apples\", \"bananas\", \"carrots\"]"})
231
+ end
232
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daikon
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nick Quaranto
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-21 00:00:00 -05:00
18
+ date: 2010-11-23 00:00:00 -05:00
19
19
  default_executable: daikon
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency