noah 0.2.1-jruby → 0.3-jruby

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,13 +5,13 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
5
5
 
6
6
  describe "GET" do
7
7
  it "all hosts should work" do
8
- get '/h'
8
+ get '/hosts'
9
9
  last_response.should be_ok
10
10
  last_response.should return_json
11
11
  end
12
12
 
13
13
  it "existing host should work" do
14
- get '/h/localhost'
14
+ get '/hosts/localhost'
15
15
  last_response.should be_ok
16
16
  response = last_response.should return_json
17
17
 
@@ -29,7 +29,7 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
29
29
  end
30
30
 
31
31
  it "named service for host should work" do
32
- get '/h/localhost/noah'
32
+ get '/hosts/localhost/noah'
33
33
  last_response.should be_ok
34
34
  response = last_response.should return_json
35
35
 
@@ -42,7 +42,7 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
42
42
  describe "PUT" do
43
43
  it "new host should work" do
44
44
  host_data = {:name => "host99.domain.com", :status => "down"}.to_json
45
- put '/h/host99.domain.com', host_data, "CONTENT_TYPE" => "application/json"
45
+ put '/hosts/host99.domain.com', host_data, "CONTENT_TYPE" => "application/json"
46
46
  last_response.should be_ok
47
47
  response = last_response.should return_json
48
48
 
@@ -56,7 +56,7 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
56
56
  it "existing host should work" do
57
57
  sleep 3
58
58
  host_data = {:name => "host99.domain.com", :status => "pending"}.to_json
59
- put '/h/host99.domain.com', host_data, "CONTENT_TYPE" => "application/json"
59
+ put '/hosts/host99.domain.com', host_data, "CONTENT_TYPE" => "application/json"
60
60
  last_response.should be_ok
61
61
  response = last_response.should return_json
62
62
 
@@ -65,19 +65,19 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
65
65
 
66
66
  it "host missing name parameter should not work" do
67
67
  host_data = {:status => "pending"}.to_json
68
- put '/h/host100.domain.com', host_data, "CONTENT_TYPE" => "application/json"
68
+ put '/hosts/host100.domain.com', host_data, "CONTENT_TYPE" => "application/json"
69
69
  last_response.should be_invalid
70
70
  end
71
71
 
72
72
  it "host missing status parameter should not work" do
73
73
  host_data = {:name => "host100.domain.com"}.to_json
74
- put '/h/host100.domain.com', host_data, "CONTENT_TYPE" => "application/json"
74
+ put '/hosts/host100.domain.com', host_data, "CONTENT_TYPE" => "application/json"
75
75
  last_response.should be_invalid
76
76
  end
77
77
 
78
78
  it "host with invalid status parameter should not work" do
79
79
  host_data = {:name => "host100.domain.com", :status => "fscked"}.to_json
80
- put '/h/host100.domain.com', host_data, "CONTENT_TYPE" => "application/json"
80
+ put '/hosts/host100.domain.com', host_data, "CONTENT_TYPE" => "application/json"
81
81
  last_response.should_not be_ok
82
82
  response = last_response.should return_json
83
83
 
@@ -96,7 +96,7 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
96
96
  end
97
97
  it "existing host should work" do
98
98
  svc_size = @h.services.size
99
- delete "/h/#{@h.name}"
99
+ delete "/hosts/#{@h.name}"
100
100
  last_response.should be_ok
101
101
  response = last_response.should return_json
102
102
 
@@ -107,7 +107,7 @@ describe "Using the Host API", :reset_redis => false, :populate_sample_data => t
107
107
  end
108
108
 
109
109
  it "invalid host should not work" do
110
- delete "/h/#{@h.name}"
110
+ delete "/hosts/#{@h.name}"
111
111
  last_response.should be_missing
112
112
  end
113
113
  end
@@ -13,13 +13,13 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
13
13
 
14
14
  describe "GET" do
15
15
  it "all services should work" do
16
- get '/s'
16
+ get '/services'
17
17
  last_response.should be_ok
18
18
  response = last_response.should return_json
19
19
  response.is_a?(Array).should == true
20
20
  end
21
21
  it "all named services should work" do
22
- get "/s/#{@sample_service[:name]}"
22
+ get "/services/#{@sample_service[:name]}"
23
23
  last_response.should be_ok
24
24
  response = last_response.should return_json
25
25
  response.is_a?(Array).should == true
@@ -30,7 +30,7 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
30
30
  s["host"].should == @h.name
31
31
  end
32
32
  it "named service for host should work" do
33
- get "/s/#{@sample_service[:name]}/#{@sample_host[:name]}"
33
+ get "/services/#{@sample_service[:name]}/#{@sample_host[:name]}"
34
34
  last_response.should be_ok
35
35
  response = last_response.should return_json
36
36
  response["id"].should == @s.id
@@ -39,7 +39,7 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
39
39
  response["host"].should == @h.name
40
40
  end
41
41
  it "missing service for host should not work" do
42
- get '/s/foobar/baz'
42
+ get '/services/foobar/baz'
43
43
  last_response.should be_missing
44
44
  end
45
45
  end
@@ -49,7 +49,7 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
49
49
  @payload = {:name => 'another_rspec_service', :status => 'up', :host => @h.name}
50
50
  end
51
51
  it "new service should work" do
52
- put "/s/#{@payload[:name]}/", @payload.to_json, "CONTENT_TYPE" => "application/json"
52
+ put "/services/#{@payload[:name]}/", @payload.to_json, "CONTENT_TYPE" => "application/json"
53
53
  last_response.should be_ok
54
54
  response = last_response.should return_json
55
55
  response["result"].should == "success"
@@ -61,26 +61,26 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
61
61
  Noah::Service.find(:name => @payload[:name]).first.is_new?.should == true
62
62
  end
63
63
  it "new service without host should not work" do
64
- put "/s/foobar", {:name => "foobar", :status => "up"}.to_json, "CONTENT_TYPE" => "application/json"
64
+ put "/services/foobar", {:name => "foobar", :status => "up"}.to_json, "CONTENT_TYPE" => "application/json"
65
65
  last_response.should be_invalid
66
66
  end
67
67
  it "new service with invalid status should not work" do
68
- put "/s/foobar", {:name => "foobar", :status => "fsck", :host => @h.name}.to_json, "CONTENT_TYPE" => "application/json"
68
+ put "/services/foobar", {:name => "foobar", :status => "fsck", :host => @h.name}.to_json, "CONTENT_TYPE" => "application/json"
69
69
  last_response.should_not be_ok
70
70
  response = last_response.should return_json
71
71
  response["error_message"].should == "Status must be up, down or pending"
72
72
  end
73
73
  it "new service with missing name should not work" do
74
- put "/s/foobar", {:status => "fsck", :host => @h.name}.to_json, "CONTENT_TYPE" => "application/json"
74
+ put "/services/foobar", {:status => "fsck", :host => @h.name}.to_json, "CONTENT_TYPE" => "application/json"
75
75
  last_response.should be_invalid
76
76
  end
77
77
  it "new service with missing status should not work" do
78
- put "/s/foobar", {:name => "foobar", :host => @h.name}.to_json, "CONTENT_TYPE" => "application/json"
78
+ put "/services/foobar", {:name => "foobar", :host => @h.name}.to_json, "CONTENT_TYPE" => "application/json"
79
79
  last_response.should be_invalid
80
80
  end
81
81
  it "existing service should work" do
82
82
  sleep 3
83
- put "/s/#{@payload[:name]}", {:name => @payload[:name], :status => "down", :host => @payload[:host]}.to_json, "CONTENT_TYPE" => "application/json"
83
+ put "/services/#{@payload[:name]}", {:name => @payload[:name], :status => "down", :host => @payload[:host]}.to_json, "CONTENT_TYPE" => "application/json"
84
84
  last_response.should be_ok
85
85
  response = last_response.should return_json
86
86
  response["result"].should == "success"
@@ -101,7 +101,7 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
101
101
  @s = @h.services.first
102
102
  end
103
103
  it "existing host should work" do
104
- delete "/s/#{@s.name}/#{@h.name}"
104
+ delete "/services/#{@s.name}/#{@h.name}"
105
105
  last_response.should be_ok
106
106
  response = last_response.should return_json
107
107
 
@@ -112,7 +112,7 @@ describe "Using the Service API", :reset_redis => false, :populate_sample_data =
112
112
  response["service"].should == @s.name
113
113
  end
114
114
  it "invalid host should not work" do
115
- delete "/s/#{@s.name}/#{@h.name}"
115
+ delete "/services/#{@s.name}/#{@h.name}"
116
116
  last_response.should be_missing
117
117
  end
118
118
  end
@@ -22,7 +22,7 @@ describe "Using the Watcher API", :reset_redis => true do
22
22
 
23
23
  describe "GET" do
24
24
  it "all watches should work" do
25
- get '/w'
25
+ get '/watches'
26
26
  last_response.should be_ok
27
27
  response = last_response.should return_json
28
28
  response.is_a?(Array).should == true
@@ -30,8 +30,8 @@ describe "Using the Watcher API", :reset_redis => true do
30
30
  end
31
31
 
32
32
  it "named watch should work" do
33
- w = Noah::Watcher.create(:pattern => '//noah/application/myapp', :endpoint => 'http://localhost/webhook')
34
- get "/w/#{w.name}"
33
+ w = Noah::Watcher.create(:pattern => '//noah/application/myapp', :endpoint => 'http://localhost/watchersebhook')
34
+ get "/watches/#{w.name}"
35
35
  last_response.should be_ok
36
36
  response = last_response.should return_json
37
37
  response['pattern'].should == w.pattern
@@ -39,15 +39,15 @@ describe "Using the Watcher API", :reset_redis => true do
39
39
  end
40
40
 
41
41
  it "invalid watch should not work" do
42
- get '/w/asdfasdfasdfasdfasdfsdf'
42
+ get '/watches/asdfasdfasdfasdfasdfsdf'
43
43
  last_response.should be_missing
44
44
  end
45
45
  end
46
46
 
47
47
  describe "PUT" do
48
48
  it "new watch should work" do
49
- data = {:pattern => "//noah/application", :endpoint => "http://myendpoint/webhook"}
50
- put '/w', data.to_json, "CONTENT_TYPE" => "application/json"
49
+ data = {:pattern => "//noah/application", :endpoint => "http://myendpoint/watchersebhook"}
50
+ put '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
51
51
  last_response.should be_ok
52
52
  response = last_response.should return_json
53
53
  response['pattern'].should == data[:pattern]
@@ -58,30 +58,30 @@ describe "Using the Watcher API", :reset_redis => true do
58
58
  end
59
59
 
60
60
  it "new watch without pattern should not work" do
61
- data = {:endpoint => "http://myendpoint/webhook"}
62
- put '/w', data.to_json, "CONTENT_TYPE" => "application/json"
61
+ data = {:endpoint => "http://myendpoint/watchersebhook"}
62
+ put '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
63
63
  last_response.should be_invalid
64
64
  end
65
65
 
66
66
  it "new watch without endpoint should not work" do
67
67
  data = {:pattern => "//noah/application"}
68
- put '/w', data.to_json, "CONTENT_TYPE" => "application/json"
68
+ put '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
69
69
  last_response.should be_invalid
70
70
  end
71
71
 
72
72
  it "new watch that supercedes existing should not work" do
73
- Noah::Watcher.create(:endpoint => 'http://myendpoint/webhook', :pattern => '//noah/application/foo')
74
- data = {:endpoint => "http://myendpoint/webhook", :pattern => '//noah/application'}
75
- put '/w', data.to_json, "CONTENT_TYPE" => "application/json"
73
+ Noah::Watcher.create(:endpoint => 'http://myendpoint/watchersebhook', :pattern => '//noah/application/foo')
74
+ data = {:endpoint => "http://myendpoint/watchersebhook", :pattern => '//noah/application'}
75
+ put '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
76
76
  last_response.should_not be_ok
77
77
  response = last_response.should return_json
78
78
  response['error_message'].should == 'Pattern would overwrite existing'
79
79
  end
80
80
 
81
81
  it "new watch that subsets an existing should not work" do
82
- Noah::Watcher.create(:endpoint => 'http://myendpoint/webhook', :pattern => '//noah/application')
83
- data = {:endpoint => "http://myendpoint/webhook", :pattern => '//noah/application/foo'}
84
- put '/w', data.to_json, "CONTENT_TYPE" => "application/json"
82
+ Noah::Watcher.create(:endpoint => 'http://myendpoint/watchersebhook', :pattern => '//noah/application')
83
+ data = {:endpoint => "http://myendpoint/watchersebhook", :pattern => '//noah/application/foo'}
84
+ put '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
85
85
  last_response.should_not be_ok
86
86
  response = last_response.should return_json
87
87
  response['error_message'].should == 'Pattern is already provided'
@@ -90,9 +90,9 @@ describe "Using the Watcher API", :reset_redis => true do
90
90
 
91
91
  describe "DELETE" do
92
92
  it "delete an existing watch should work" do
93
- data = {:endpoint => "http://myendpoint/webhookd", :pattern => '//noah/application/d'}
93
+ data = {:endpoint => "http://myendpoint/watchersebhookd", :pattern => '//noah/application/d'}
94
94
  w = Noah::Watcher.create(data)
95
- delete '/w', data.to_json, "CONTENT_TYPE" => "application/json"
95
+ delete '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
96
96
  last_response.should be_ok
97
97
  response = last_response.should return_json
98
98
  response['pattern'].should == data[:pattern]
@@ -103,19 +103,19 @@ describe "Using the Watcher API", :reset_redis => true do
103
103
 
104
104
  it "delete an invalid watch should not work" do
105
105
  data = {:endpoint => 'missing', :pattern => '//noah/application/dag'}
106
- delete '/w', data.to_json, "CONTENT_TYPE" => "application/json"
106
+ delete '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
107
107
  last_response.should be_missing
108
108
  end
109
109
 
110
110
  it "delete without pattern should not work" do
111
111
  data = {:endpoint => "invalid"}
112
- delete '/w', data.to_json, "CONTENT_TYPE" => "application/json"
112
+ delete '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
113
113
  last_response.should be_invalid
114
114
  end
115
115
 
116
116
  it "delete without endpoint should not work" do
117
117
  data = {:pattern => "//noah/invalid"}
118
- delete '/w', data.to_json, "CONTENT_TYPE" => "application/json"
118
+ delete '/watches', data.to_json, "CONTENT_TYPE" => "application/json"
119
119
  last_response.should be_invalid
120
120
  end
121
121
  end
data/spec/spec_helper.rb CHANGED
@@ -14,6 +14,11 @@ RSpec.configure do |config|
14
14
  config.after(:all, :populate_sample_data => true) {Ohm::redis.flushdb }
15
15
  config.before(:all, :populate_sample_data => true) do
16
16
  Ohm::redis.flushdb
17
+ Noah::Watcher.create :endpoint => "dummy://applications", :pattern => "//noah/applications"
18
+ Noah::Watcher.create :endpoint => "dummy://configurations", :pattern => "//noah/configurations"
19
+ Noah::Watcher.create :endpoint => "dummy://hosts", :pattern => "//noah/hosts"
20
+ Noah::Watcher.create :endpoint => "dummy://services", :pattern => "//noah/services"
21
+ Noah::Watcher.create :endpoint => "dummy://ephemerals", :pattern => "//noah/ephemerals"
17
22
  h = Noah::Host.create(:name => 'localhost', :status => "up")
18
23
  if h.save
19
24
  %w[redis noah].each do |service|
data/views/index.haml CHANGED
@@ -14,42 +14,42 @@
14
14
  %h2 Hosts
15
15
  %ul
16
16
  %li
17
- %a{:href => "h/"} All registered Hosts
17
+ %a{:href => "hosts/"} All registered Hosts
18
18
  %li
19
- %a{:href => "h/localhost"} localhost (this server)
19
+ %a{:href => "hosts/localhost"} localhost (this server)
20
20
  %li
21
- %a{:href => "h/localhost/noah"} localhost noah service
21
+ %a{:href => "hosts/localhost/noah"} localhost noah service
22
22
  #header
23
23
  %h2 Services
24
24
  %ul
25
25
  %li
26
- %a{:href => "s/"} All registered Services
26
+ %a{:href => "services/"} All registered Services
27
27
  %li
28
- %a{:href => "s/http"} All hosts providing 'http'
28
+ %a{:href => "services/http"} All hosts providing 'http'
29
29
  %li
30
- %a{:href => "s/noah/localhost"} localhost noah service
30
+ %a{:href => "services/noah/localhost"} localhost noah service
31
31
  #header
32
32
  %h2 Applications
33
33
  %ul
34
34
  %li
35
- %a{:href => "a/"} All registered Applications
35
+ %a{:href => "applications/"} All registered Applications
36
36
  %li
37
- %a{:href => "a/noah"} Noah Application entry
37
+ %a{:href => "applications/noah"} Noah Application entry
38
38
  %li
39
- %a{:href => "a/noah/redis"} Noah Redis configuration entry
39
+ %a{:href => "applications/noah/redis"} Noah Redis configuration entry
40
40
  #header
41
41
  %h2 Configurations
42
42
  %ul
43
43
  %li
44
- %a{:href => "c/"} All registered Configurations
44
+ %a{:href => "configurations/"} All registered Configurations
45
45
  %li
46
- %a{:href => "c/noah"} Noah Configuration entry
46
+ %a{:href => "configurations/noah"} Noah Configuration entry
47
47
  %li
48
- %a{:href => "c/myrailsapp1"} myrailsapp1 Configuration entry
48
+ %a{:href => "configurations/myrailsapp1"} myrailsapp1 Configuration entry
49
49
  %li
50
- %a{:href => "c/myrestapp1"} myrestapp1 Configuration entry
50
+ %a{:href => "configurations/myrestapp1"} myrestapp1 Configuration entry
51
51
  %li
52
- %a{:href => "c/myrailsapp1/database.yml"} database.yml file for myrailsapp1 (should return the proper content-type)
52
+ %a{:href => "configurations/myrailsapp1/database.yml"} database.yml file for myrailsapp1 (should return the proper content-type)
53
53
  %li
54
- %a{:href => "c/myrestapp1/config.json"} config.json file for myrestapp1
54
+ %a{:href => "configurations/myrestapp1/config.json"} config.json file for myrestapp1
55
55
 
metadata CHANGED
@@ -2,313 +2,318 @@
2
2
  name: noah
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.1
5
+ version: "0.3"
6
6
  platform: jruby
7
7
  authors:
8
- - John E. Vincent
8
+ - John E. Vincent
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-16 00:00:00 -04:00
13
+ date: 2011-03-25 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: eventmachine
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - "="
23
- - !ruby/object:Gem::Version
24
- version: 1.0.0.beta.3
25
- type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: em-http-request
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - "="
34
- - !ruby/object:Gem::Version
35
- version: 1.0.0.beta.3
36
- type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: redis
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - "="
45
- - !ruby/object:Gem::Version
46
- version: 2.1.1
47
- type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: nest
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - "="
56
- - !ruby/object:Gem::Version
57
- version: 1.1.0
58
- type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: rack
62
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - "="
67
- - !ruby/object:Gem::Version
68
- version: 1.2.1
69
- type: :runtime
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: tilt
73
- prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - "="
78
- - !ruby/object:Gem::Version
79
- version: 1.2.2
80
- type: :runtime
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: sinatra
84
- prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - "="
89
- - !ruby/object:Gem::Version
90
- version: 1.1.2
91
- type: :runtime
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: ohm
95
- prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - "="
100
- - !ruby/object:Gem::Version
101
- version: 0.1.3
102
- type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: ohm-contrib
106
- prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - "="
111
- - !ruby/object:Gem::Version
112
- version: 0.1.1
113
- type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: haml
117
- prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
119
- none: false
120
- requirements:
121
- - - "="
122
- - !ruby/object:Gem::Version
123
- version: 3.0.25
124
- type: :runtime
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: vegas
128
- prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - "="
133
- - !ruby/object:Gem::Version
134
- version: 0.1.8
135
- type: :runtime
136
- version_requirements: *id011
137
- - !ruby/object:Gem::Dependency
138
- name: jruby-openssl
139
- prerelease: false
140
- requirement: &id012 !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: "0"
146
- type: :runtime
147
- version_requirements: *id012
148
- - !ruby/object:Gem::Dependency
149
- name: json
150
- prerelease: false
151
- requirement: &id013 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- version: "0"
157
- type: :runtime
158
- version_requirements: *id013
159
- - !ruby/object:Gem::Dependency
160
- name: warbler
161
- prerelease: false
162
- requirement: &id014 !ruby/object:Gem::Requirement
163
- none: false
164
- requirements:
165
- - - "="
166
- - !ruby/object:Gem::Version
167
- version: 1.2.1
168
- type: :development
169
- version_requirements: *id014
170
- - !ruby/object:Gem::Dependency
171
- name: diff-lcs
172
- prerelease: false
173
- requirement: &id015 !ruby/object:Gem::Requirement
174
- none: false
175
- requirements:
176
- - - "="
177
- - !ruby/object:Gem::Version
178
- version: 1.1.2
179
- type: :development
180
- version_requirements: *id015
181
- - !ruby/object:Gem::Dependency
182
- name: sinatra-reloader
183
- prerelease: false
184
- requirement: &id016 !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - "="
188
- - !ruby/object:Gem::Version
189
- version: 0.5.0
190
- type: :development
191
- version_requirements: *id016
192
- - !ruby/object:Gem::Dependency
193
- name: rspec
194
- prerelease: false
195
- requirement: &id017 !ruby/object:Gem::Requirement
196
- none: false
197
- requirements:
198
- - - ~>
199
- - !ruby/object:Gem::Version
200
- version: "2.5"
201
- type: :development
202
- version_requirements: *id017
203
- - !ruby/object:Gem::Dependency
204
- name: rcov
205
- prerelease: false
206
- requirement: &id018 !ruby/object:Gem::Requirement
207
- none: false
208
- requirements:
209
- - - "="
210
- - !ruby/object:Gem::Version
211
- version: 0.9.9
212
- type: :development
213
- version_requirements: *id018
214
- - !ruby/object:Gem::Dependency
215
- name: rack-test
216
- prerelease: false
217
- requirement: &id019 !ruby/object:Gem::Requirement
218
- none: false
219
- requirements:
220
- - - "="
221
- - !ruby/object:Gem::Version
222
- version: 0.5.7
223
- type: :development
224
- version_requirements: *id019
16
+ - !ruby/object:Gem::Dependency
17
+ name: eventmachine
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - "="
23
+ - !ruby/object:Gem::Version
24
+ version: 1.0.0.beta.3
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: em-http-request
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - "="
34
+ - !ruby/object:Gem::Version
35
+ version: 1.0.0.beta.3
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: redis
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - "="
45
+ - !ruby/object:Gem::Version
46
+ version: 2.1.1
47
+ type: :runtime
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: nest
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - "="
56
+ - !ruby/object:Gem::Version
57
+ version: 1.1.0
58
+ type: :runtime
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: rack
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - "="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.2.1
69
+ type: :runtime
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: tilt
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - "="
78
+ - !ruby/object:Gem::Version
79
+ version: 1.2.2
80
+ type: :runtime
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: sinatra
84
+ prerelease: false
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - "="
89
+ - !ruby/object:Gem::Version
90
+ version: 1.2.0
91
+ type: :runtime
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: ohm
95
+ prerelease: false
96
+ requirement: &id008 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - "="
100
+ - !ruby/object:Gem::Version
101
+ version: 0.1.3
102
+ type: :runtime
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: ohm-contrib
106
+ prerelease: false
107
+ requirement: &id009 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - "="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.1.1
113
+ type: :runtime
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: haml
117
+ prerelease: false
118
+ requirement: &id010 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - "="
122
+ - !ruby/object:Gem::Version
123
+ version: 3.0.25
124
+ type: :runtime
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
127
+ name: vegas
128
+ prerelease: false
129
+ requirement: &id011 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - "="
133
+ - !ruby/object:Gem::Version
134
+ version: 0.1.8
135
+ type: :runtime
136
+ version_requirements: *id011
137
+ - !ruby/object:Gem::Dependency
138
+ name: hiredis
139
+ prerelease: false
140
+ requirement: &id012 !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - "="
144
+ - !ruby/object:Gem::Version
145
+ version: 0.3.1
146
+ type: :runtime
147
+ version_requirements: *id012
148
+ - !ruby/object:Gem::Dependency
149
+ name: yajl-ruby
150
+ prerelease: false
151
+ requirement: &id013 !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: "0"
157
+ type: :runtime
158
+ version_requirements: *id013
159
+ - !ruby/object:Gem::Dependency
160
+ name: thin
161
+ prerelease: false
162
+ requirement: &id014 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: "0"
168
+ type: :runtime
169
+ version_requirements: *id014
170
+ - !ruby/object:Gem::Dependency
171
+ name: diff-lcs
172
+ prerelease: false
173
+ requirement: &id015 !ruby/object:Gem::Requirement
174
+ none: false
175
+ requirements:
176
+ - - "="
177
+ - !ruby/object:Gem::Version
178
+ version: 1.1.2
179
+ type: :development
180
+ version_requirements: *id015
181
+ - !ruby/object:Gem::Dependency
182
+ name: sinatra-reloader
183
+ prerelease: false
184
+ requirement: &id016 !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - "="
188
+ - !ruby/object:Gem::Version
189
+ version: 0.5.0
190
+ type: :development
191
+ version_requirements: *id016
192
+ - !ruby/object:Gem::Dependency
193
+ name: rspec
194
+ prerelease: false
195
+ requirement: &id017 !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ~>
199
+ - !ruby/object:Gem::Version
200
+ version: "2.5"
201
+ type: :development
202
+ version_requirements: *id017
203
+ - !ruby/object:Gem::Dependency
204
+ name: rcov
205
+ prerelease: false
206
+ requirement: &id018 !ruby/object:Gem::Requirement
207
+ none: false
208
+ requirements:
209
+ - - "="
210
+ - !ruby/object:Gem::Version
211
+ version: 0.9.9
212
+ type: :development
213
+ version_requirements: *id018
214
+ - !ruby/object:Gem::Dependency
215
+ name: rack-test
216
+ prerelease: false
217
+ requirement: &id019 !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - "="
221
+ - !ruby/object:Gem::Version
222
+ version: 0.5.7
223
+ type: :development
224
+ version_requirements: *id019
225
225
  description: Application registry based on Apache Zookeeper
226
226
  email:
227
- - lusis.org+rubygems.org@gmail.com
227
+ - lusis.org+rubygems.org@gmail.com
228
228
  executables:
229
- - noah
230
- - noah-watcher.rb
229
+ - noah
230
+ - noah-watcher.rb
231
231
  extensions: []
232
232
 
233
233
  extra_rdoc_files: []
234
234
 
235
235
  files:
236
- - .autotest
237
- - .gemtest
238
- - .gitignore
239
- - Gemfile
240
- - LICENSE
241
- - README.md
242
- - Rakefile
243
- - TODO.md
244
- - autotest/discover.rb
245
- - bin/noah
246
- - bin/noah-watcher.rb
247
- - config.ru
248
- - config/warble.rb
249
- - examples/README.md
250
- - examples/cluster.ru
251
- - examples/custom-watcher.rb
252
- - examples/httpclient-server.rb
253
- - examples/httpclient.rb
254
- - examples/httpclient2.rb
255
- - examples/js/FABridge.js
256
- - examples/js/WebSocketMain.swf
257
- - examples/js/swfobject.js
258
- - examples/js/web_socket.js
259
- - examples/logger.rb
260
- - examples/reconfiguring-sinatra-watcher.rb
261
- - examples/reconfiguring-sinatra.rb
262
- - examples/simple-post.rb
263
- - examples/websocket.html
264
- - examples/websocket.rb
265
- - lib/noah.rb
266
- - lib/noah/agent.rb
267
- - lib/noah/agents/base_agent.rb
268
- - lib/noah/agents/dummy_agent.rb
269
- - lib/noah/agents/http_agent.rb
270
- - lib/noah/app.rb
271
- - lib/noah/application_routes.rb
272
- - lib/noah/ark.rb
273
- - lib/noah/configuration_routes.rb
274
- - lib/noah/custom_watcher.rb
275
- - lib/noah/ephemeral_routes.rb
276
- - lib/noah/helpers.rb
277
- - lib/noah/host_routes.rb
278
- - lib/noah/models.rb
279
- - lib/noah/models/applications.rb
280
- - lib/noah/models/configurations.rb
281
- - lib/noah/models/ephemerals.rb
282
- - lib/noah/models/hosts.rb
283
- - lib/noah/models/services.rb
284
- - lib/noah/models/watchers.rb
285
- - lib/noah/passthrough.rb
286
- - lib/noah/service_routes.rb
287
- - lib/noah/validations.rb
288
- - lib/noah/validations/watcher_validations.rb
289
- - lib/noah/version.rb
290
- - lib/noah/watcher_routes.rb
291
- - noah.gemspec
292
- - spec/application_spec.rb
293
- - spec/configuration_spec.rb
294
- - spec/ephemeral_spec.rb
295
- - spec/host_spec.rb
296
- - spec/noahapp_application_spec.rb
297
- - spec/noahapp_configuration_spec.rb
298
- - spec/noahapp_ephemeral_spec.rb
299
- - spec/noahapp_host_spec.rb
300
- - spec/noahapp_service_spec.rb
301
- - spec/noahapp_spec.rb
302
- - spec/noahapp_watcher_spec.rb
303
- - spec/service_spec.rb
304
- - spec/spec_helper.rb
305
- - spec/support/db/.keep
306
- - spec/support/test-redis.conf
307
- - spec/watcher_spec.rb
308
- - views/200.erb
309
- - views/404.erb
310
- - views/500.erb
311
- - views/index.haml
236
+ - .autotest
237
+ - .gemtest
238
+ - .gitignore
239
+ - Gemfile
240
+ - LICENSE
241
+ - README.md
242
+ - Rakefile
243
+ - TODO.md
244
+ - autotest/discover.rb
245
+ - bin/noah
246
+ - bin/noah-watcher.rb
247
+ - config.ru
248
+ - config/warble.rb
249
+ - examples/README.md
250
+ - examples/cluster.ru
251
+ - examples/custom-watcher.rb
252
+ - examples/httpclient-server.rb
253
+ - examples/httpclient.rb
254
+ - examples/httpclient2.rb
255
+ - examples/js/FABridge.js
256
+ - examples/js/WebSocketMain.swf
257
+ - examples/js/swfobject.js
258
+ - examples/js/web_socket.js
259
+ - examples/logger.rb
260
+ - examples/reconfiguring-sinatra-watcher.rb
261
+ - examples/reconfiguring-sinatra.rb
262
+ - examples/simple-post.rb
263
+ - examples/websocket.html
264
+ - examples/websocket.rb
265
+ - lib/noah.rb
266
+ - lib/noah/agent.rb
267
+ - lib/noah/agents/base_agent.rb
268
+ - lib/noah/agents/dummy_agent.rb
269
+ - lib/noah/agents/http_agent.rb
270
+ - lib/noah/app.rb
271
+ - lib/noah/application_routes.rb
272
+ - lib/noah/ark.rb
273
+ - lib/noah/configuration_routes.rb
274
+ - lib/noah/custom_watcher.rb
275
+ - lib/noah/ephemeral_routes.rb
276
+ - lib/noah/helpers.rb
277
+ - lib/noah/host_routes.rb
278
+ - lib/noah/log.rb
279
+ - lib/noah/models.rb
280
+ - lib/noah/models/applications.rb
281
+ - lib/noah/models/configurations.rb
282
+ - lib/noah/models/ephemerals.rb
283
+ - lib/noah/models/hosts.rb
284
+ - lib/noah/models/link.rb
285
+ - lib/noah/models/link_member.rb
286
+ - lib/noah/models/services.rb
287
+ - lib/noah/models/tags.rb
288
+ - lib/noah/models/watchers.rb
289
+ - lib/noah/passthrough.rb
290
+ - lib/noah/service_routes.rb
291
+ - lib/noah/validations.rb
292
+ - lib/noah/validations/ephemeral_validations.rb
293
+ - lib/noah/validations/watcher_validations.rb
294
+ - lib/noah/version.rb
295
+ - lib/noah/watcher_routes.rb
296
+ - noah.gemspec
297
+ - spec/application_spec.rb
298
+ - spec/configuration_spec.rb
299
+ - spec/ephemeral_spec.rb
300
+ - spec/host_spec.rb
301
+ - spec/noahapp_application_spec.rb
302
+ - spec/noahapp_configuration_spec.rb
303
+ - spec/noahapp_ephemeral_spec.rb
304
+ - spec/noahapp_host_spec.rb
305
+ - spec/noahapp_service_spec.rb
306
+ - spec/noahapp_spec.rb
307
+ - spec/noahapp_watcher_spec.rb
308
+ - spec/service_spec.rb
309
+ - spec/spec_helper.rb
310
+ - spec/support/db/.keep
311
+ - spec/support/test-redis.conf
312
+ - spec/watcher_spec.rb
313
+ - views/200.erb
314
+ - views/404.erb
315
+ - views/500.erb
316
+ - views/index.haml
312
317
  has_rdoc: true
313
318
  homepage: https://github.com/lusis/noah
314
319
  licenses: []
@@ -317,40 +322,25 @@ post_install_message:
317
322
  rdoc_options: []
318
323
 
319
324
  require_paths:
320
- - lib
325
+ - lib
321
326
  required_ruby_version: !ruby/object:Gem::Requirement
322
327
  none: false
323
328
  requirements:
324
- - - ">="
325
- - !ruby/object:Gem::Version
326
- version: "0"
329
+ - - ">="
330
+ - !ruby/object:Gem::Version
331
+ version: "0"
327
332
  required_rubygems_version: !ruby/object:Gem::Requirement
328
333
  none: false
329
334
  requirements:
330
- - - ">="
331
- - !ruby/object:Gem::Version
332
- version: "0"
335
+ - - ">="
336
+ - !ruby/object:Gem::Version
337
+ version: "0"
333
338
  requirements: []
334
339
 
335
340
  rubyforge_project: noah
336
- rubygems_version: 1.5.1
341
+ rubygems_version: 1.6.2
337
342
  signing_key:
338
343
  specification_version: 3
339
344
  summary: Application registry based on Apache Zookeeper
340
- test_files:
341
- - spec/application_spec.rb
342
- - spec/configuration_spec.rb
343
- - spec/ephemeral_spec.rb
344
- - spec/host_spec.rb
345
- - spec/noahapp_application_spec.rb
346
- - spec/noahapp_configuration_spec.rb
347
- - spec/noahapp_ephemeral_spec.rb
348
- - spec/noahapp_host_spec.rb
349
- - spec/noahapp_service_spec.rb
350
- - spec/noahapp_spec.rb
351
- - spec/noahapp_watcher_spec.rb
352
- - spec/service_spec.rb
353
- - spec/spec_helper.rb
354
- - spec/support/db/.keep
355
- - spec/support/test-redis.conf
356
- - spec/watcher_spec.rb
345
+ test_files: []
346
+