winnie 0.0.2 → 0.0.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.
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