winnie 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,19 +1,29 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- winnie (0.0.1)
4
+ winnie (0.0.2)
5
5
  json
6
6
  rest-client
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
+ diff-lcs (1.1.2)
11
12
  fakefs (0.2.1)
12
13
  json (1.4.6)
13
14
  mime-types (1.16)
14
15
  rest-client (1.6.1)
15
16
  mime-types (>= 1.16)
16
- rspec (1.3.1)
17
+ rspec (2.0.1)
18
+ rspec-core (~> 2.0.1)
19
+ rspec-expectations (~> 2.0.1)
20
+ rspec-mocks (~> 2.0.1)
21
+ rspec-core (2.0.1)
22
+ rspec-expectations (2.0.1)
23
+ diff-lcs (>= 1.1.2)
24
+ rspec-mocks (2.0.1)
25
+ rspec-core (~> 2.0.1)
26
+ rspec-expectations (~> 2.0.1)
17
27
 
18
28
  PLATFORMS
19
29
  ruby
@@ -22,5 +32,5 @@ DEPENDENCIES
22
32
  fakefs
23
33
  json
24
34
  rest-client
25
- rspec (>= 1.2.9)
35
+ rspec (~> 2.0.0)
26
36
  winnie!
data/Rakefile CHANGED
@@ -1,10 +1,8 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
3
 
4
- require 'spec/rake/spectask'
5
- Spec::Rake::SpecTask.new(:spec) do |spec|
6
- spec.libs << 'lib' << 'spec'
7
- spec.spec_files = FileList['spec/**/*_spec.rb']
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec) do |t|
8
6
  end
9
7
 
10
8
  task :default => :spec
data/bin/winnie CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require File.join(File.dirname(__FILE__), '../lib/winnie/winnie')
2
+ require File.join(File.dirname(__FILE__), '../lib/winnie')
3
3
 
4
4
  args = ARGV.dup
5
5
  ARGV.clear
data/lib/winnie/client.rb CHANGED
@@ -4,12 +4,8 @@ module Winnie
4
4
  @api_key = api_key
5
5
  end
6
6
 
7
- def host
8
- ENV['WINNIE_HOST'] || 'admin.winniecloud.net'
9
- end
10
-
11
7
  def winnie_url
12
- "http://#{host}"
8
+ ENV['WINNIE_URL'] || 'https://admin.winniecloud.com'
13
9
  end
14
10
 
15
11
  def account
@@ -1,27 +1,27 @@
1
1
  module Winnie
2
2
  class Command
3
3
  extend Helpers
4
-
4
+
5
5
  def self.run(name, *args)
6
6
  begin
7
7
  class_name, command_name = name.split(':')
8
8
  command_name ||= 'run'
9
-
9
+
10
10
  begin
11
11
  command_class = eval("Winnie::Commands::#{class_name.capitalize}")
12
12
  rescue NameError
13
13
  command_class = Winnie::Commands::App
14
14
  command_name = class_name
15
15
  end
16
-
16
+
17
17
  command = command_class.new(args)
18
-
18
+
19
19
  if command.respond_to?(command_name)
20
20
  command.send(command_name)
21
21
  else
22
22
  raise UnknownCommandException.new
23
23
  end
24
-
24
+
25
25
  rescue UnknownCommandException
26
26
  error 'Unknown command'
27
27
  rescue Winnie::Client::UnauthorizedException
@@ -1,3 +1,3 @@
1
1
  module Winnie
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,11 +1,11 @@
1
1
  # TODO: loop here, and load all commands
2
- module Winnie; end
3
2
  require 'rubygems'
4
3
  require 'rest_client'
5
4
  require 'json'
6
5
  require 'optparse'
6
+ require 'winnie/version'
7
7
  require 'winnie/helpers'
8
8
  require 'winnie/client'
9
- require 'winnie/command'
10
9
  require 'winnie/commands/base'
11
- Dir["#{File.dirname(__FILE__)}/commands/*"].each { |c| require c }
10
+ require 'winnie/command'
11
+ Dir["#{File.dirname(__FILE__)}/winnie/commands/*"].each { |c| require c }
data/spec/client_spec.rb CHANGED
@@ -6,7 +6,7 @@ describe Winnie::Client do
6
6
  @client = Winnie::Client.new('secret_one')
7
7
  RestClient::Request.stub!(:execute)
8
8
  end
9
-
9
+
10
10
  describe "request" do
11
11
  it "should make a request to give URL" do
12
12
  RestClient::Request.should_receive(:execute).with(
@@ -14,82 +14,81 @@ describe Winnie::Client do
14
14
  )
15
15
  @client.request('/account', :get)
16
16
  end
17
-
17
+
18
18
  it "should include provided parameters in the request" do
19
19
  RestClient::Request.should_receive(:execute).with(
20
- request_parameters('/account', :post,
20
+ request_parameters('/account', :post,
21
21
  :payload => {:api_key => 'secret_one', :name => 'test'}
22
22
  )
23
23
  )
24
24
  @client.request('/account', :post, :name => 'test')
25
25
  end
26
-
26
+
27
27
  it "should include api_key in the request parameters" do
28
28
  @client = Winnie::Client.new('AABBCC')
29
29
  RestClient::Request.should_receive(:execute).with(
30
- request_parameters('/account', :get,
30
+ request_parameters('/account', :get,
31
31
  :payload => {:api_key => 'AABBCC'}
32
32
  )
33
33
  )
34
34
  @client.request('/account', :get)
35
35
  end
36
-
36
+
37
37
  it "should accept json responses only" do
38
38
  RestClient::Request.should_receive(:execute).with(
39
- request_parameters('/account', :get,
39
+ request_parameters('/account', :get,
40
40
  :headers => {:accept => 'application/json'}
41
41
  )
42
42
  )
43
43
  @client.request('/account', :get)
44
44
  end
45
-
45
+
46
46
  it "should pass response to process_response method" do
47
47
  response = mock(RestClient::Response)
48
48
  request = mock(RestClient::Request)
49
49
  @client.should_receive(:process_response).with(response)
50
50
  RestClient::Request.should_receive(:execute).with(request_parameters('/account', :get)).and_yield(response, request)
51
-
51
+
52
52
  @client.request('/account', :get)
53
53
  end
54
-
55
-
54
+
56
55
  def request_parameters(path, method, params = {})
57
- {:payload => {:api_key => 'secret_one'},
58
- :method => method,
59
- :headers => {:accept => 'application/json'},
60
- :url => "http://admin.winniecloud.net#{path}"
56
+ {:payload => {:api_key => 'secret_one'},
57
+ :method => method,
58
+ :headers => {:accept => 'application/json'},
59
+ :url => "https://admin.winniecloud.com#{path}"
61
60
  }.merge(params)
62
61
  end
63
62
  end
64
-
63
+
65
64
  describe "process_response" do
66
65
  before do
67
66
  @response = mock(RestClient::Response, :code => 200, :body => '{}', :return! => nil)
68
67
  @request = mock(RestClient::Request)
69
68
  RestClient::Request.stub(:execute).and_yield(@response, @request)
70
69
  end
71
-
70
+
72
71
  it "should not follow redirections" do
73
72
  @response.should_receive(:return!)
74
73
  @client.get('/account')
75
74
  end
76
-
75
+
77
76
  it "should raise UnauthorizedException when response has 401 code" do
78
77
  @response.stub(:code).and_return(401)
79
78
  lambda {
80
79
  @client.get('/account')
81
80
  }.should raise_error(Winnie::Client::UnauthorizedException)
82
81
  end
83
-
82
+
84
83
  it "should raise UnauthorizedException when it gets redirected to login page" do
85
84
  @response.stub(:args).and_return({:url => 'user_session'})
86
85
  @response.stub(:code).and_return(302)
87
-
86
+
88
87
  lambda {
89
88
  @client.get('/account')
90
89
  }.should raise_error(Winnie::Client::UnauthorizedException)
91
90
  end
92
-
91
+
93
92
  it "should raise ResourceNotFoundException when response has 404 code" do
94
93
  @response.stub(:code).and_return(404)
95
94
  @response.stub(:body).and_return({'error' => 'App not found'}.to_json)
@@ -98,45 +97,45 @@ describe Winnie::Client do
98
97
  @client.post('/apps/flower/command', :body => 'puts User.count')
99
98
  }.should raise_error(Winnie::Client::ResourceNotFoundException, 'App not found')
100
99
  end
101
-
100
+
102
101
  it "should raise CommandFailedException when response has 500 code" do
103
102
  @response.stub(:code).and_return(500)
104
103
  @response.stub(:body).and_return({'error' => 'random error happened'}.to_json)
105
-
104
+
106
105
  lambda {
107
106
  @client.post('/apps/flower/command', :body => 'puts User.count')
108
107
  }.should raise_error(Winnie::Client::CommandFailedException, 'random error happened')
109
108
  end
110
109
  end
111
-
110
+
112
111
  it "should make GET request to given path" do
113
112
  @client.should_receive(:request).with('/account', :get)
114
113
  @client.get('/account')
115
114
  end
116
-
115
+
117
116
  it "should make POST request to given path with parameters" do
118
117
  @client.should_receive(:request).with('/account', :post, :name => 'pink-one')
119
118
  @client.post('/account', :name => 'pink-one')
120
119
  end
121
-
120
+
122
121
  describe "API methods" do
123
122
  it "should get the list of user applications" do
124
123
  @client.should_receive(:get).with('/apps')
125
124
  @client.apps
126
125
  end
127
-
126
+
128
127
  it "should get account info" do
129
128
  @client.should_receive(:get).with('/account')
130
129
  @client.account
131
130
  end
132
-
131
+
133
132
  it "should send command to winnie" do
134
133
  @client.should_receive(:post).with('/apps/flower-16/command', :body => 'User[:bob].destroy')
135
134
  @client.command('User[:bob].destroy', 'flower-16')
136
135
  end
137
136
  end
138
-
137
+
139
138
  it "should return winnie-app URL" do
140
- @client.winnie_url.should == "http://#{@client.host}"
139
+ @client.winnie_url.should == "https://admin.winniecloud.com"
141
140
  end
142
141
  end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'rubygems'
4
- require 'winnie/winnie'
5
- require 'spec'
6
- require 'spec/autorun'
4
+ require 'winnie'
5
+ require 'rspec'
6
+ require 'rspec/autorun'
7
7
  require 'fakefs'
8
8
  require 'fakefs/spec_helpers'
9
9
 
10
- Spec::Runner.configure do |config|
11
-
10
+ RSpec.configure do |config|
11
+ config.color_enabled = true
12
12
  end
data/winnie.gemspec CHANGED
@@ -8,11 +8,11 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["winnie"]
10
10
  s.email = ["winnie-devs@ragnarson.com"]
11
- s.homepage = "http://rubygems.org/gems/dupa"
11
+ s.homepage = "http://winniecloud.com"
12
12
  s.summary = %Q{Winnie command line tool}
13
13
  s.description = %Q{Command line tool which allows interacting with winnie's API}
14
14
 
15
- s.rubyforge_project = "dupa"
15
+ s.rubyforge_project = "winnie"
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_dependency "json"
23
23
  s.add_dependency "rest-client"
24
- s.add_development_dependency "rspec", ">= 1.2.9"
24
+ s.add_development_dependency "rspec", "~> 2.0.0"
25
25
  s.add_development_dependency "fakefs"
26
26
 
27
27
  # TODO: remove after few releases
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: winnie
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - winnie
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-18 00:00:00 +02:00
18
+ date: 2010-10-26 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -52,14 +52,14 @@ dependencies:
52
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
- - - ">="
55
+ - - ~>
56
56
  - !ruby/object:Gem::Version
57
- hash: 13
57
+ hash: 15
58
58
  segments:
59
- - 1
60
59
  - 2
61
- - 9
62
- version: 1.2.9
60
+ - 0
61
+ - 0
62
+ version: 2.0.0
63
63
  type: :development
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
@@ -93,6 +93,7 @@ files:
93
93
  - README.rdoc
94
94
  - Rakefile
95
95
  - bin/winnie
96
+ - lib/winnie.rb
96
97
  - lib/winnie/client.rb
97
98
  - lib/winnie/command.rb
98
99
  - lib/winnie/commands/app.rb
@@ -101,18 +102,16 @@ files:
101
102
  - lib/winnie/commands/help.rb
102
103
  - lib/winnie/helpers.rb
103
104
  - lib/winnie/version.rb
104
- - lib/winnie/winnie.rb
105
105
  - spec/client_spec.rb
106
106
  - spec/command_spec.rb
107
107
  - spec/commands/app_spec.rb
108
108
  - spec/commands/auth_spec.rb
109
109
  - spec/commands/base_spec.rb
110
- - spec/spec.opts
111
110
  - spec/spec_helper.rb
112
111
  - spec/winnie_spec.rb
113
112
  - winnie.gemspec
114
113
  has_rdoc: true
115
- homepage: http://rubygems.org/gems/dupa
114
+ homepage: http://winniecloud.com
116
115
  licenses: []
117
116
 
118
117
  post_install_message: |
@@ -151,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
150
  version: "0"
152
151
  requirements: []
153
152
 
154
- rubyforge_project: dupa
153
+ rubyforge_project: winnie
155
154
  rubygems_version: 1.3.7
156
155
  signing_key:
157
156
  specification_version: 3
@@ -162,6 +161,5 @@ test_files:
162
161
  - spec/commands/app_spec.rb
163
162
  - spec/commands/auth_spec.rb
164
163
  - spec/commands/base_spec.rb
165
- - spec/spec.opts
166
164
  - spec/spec_helper.rb
167
165
  - spec/winnie_spec.rb
data/spec/spec.opts DELETED
@@ -1 +0,0 @@
1
- --color