kensa 1.0.0.beta2 → 1.0.0.beta3

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/Rakefile CHANGED
@@ -10,7 +10,9 @@ end
10
10
  task :default => :test
11
11
 
12
12
  begin
13
+ $: << File.join(File.dirname(__FILE__), 'lib')
13
14
  require 'jeweler'
15
+ require 'heroku/kensa'
14
16
  Jeweler::Tasks.new do |gemspec|
15
17
  gemspec.name = "kensa"
16
18
  gemspec.summary = ""
@@ -29,7 +31,7 @@ begin
29
31
  gemspec.add_dependency(%q<launchy>, [">= 0.3.2"])
30
32
  gemspec.add_dependency(%q<mechanize>, ["~> 1.0.0"])
31
33
 
32
- gemspec.version = '1.0.0.beta2'
34
+ gemspec.version = Heroku::Kensa::VERSION
33
35
  end
34
36
  rescue LoadError
35
37
  puts "Jeweler not available. Install it with: gem install jeweler"
data/bin/kensa CHANGED
@@ -16,9 +16,9 @@ ARGV.options do |o|
16
16
  o.on("-f file", "--file") {|filename| options[:filename] = filename }
17
17
  o.on("--async") { options[:async] = true }
18
18
  o.on("--production") { options[:env] = "production" }
19
- o.on("--plan PLANID") { |plan| options[:plan] = plan }
20
19
  o.on("--without-sso") { options[:sso] = false }
21
20
  o.on("-h", "--help") { command = "help" }
21
+ o.on("-v", "--version") { options[:command] = "version" }
22
22
  o.parse!
23
23
  end
24
24
 
@@ -47,9 +47,6 @@ OPTIONS
47
47
  --async
48
48
  Check provision call with async response.
49
49
 
50
- --plan plan-id
51
- Use the identified plan when doing provision calls
52
-
53
50
  --without-sso
54
51
  Skip single sign-on authentication when doing provision calls
55
52
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{kensa}
8
- s.version = "1.0.0.beta2"
8
+ s.version = "1.0.0.beta3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Blake Mizerany", "Pedro Belo", "Adam Wiggins"]
12
- s.date = %q{2010-07-28}
12
+ s.date = %q{2010-08-11}
13
13
  s.default_executable = %q{kensa}
14
14
  s.description = %q{}
15
15
  s.email = %q{pedro@heroku.com}
@@ -2,3 +2,9 @@ require 'heroku/kensa/http'
2
2
  require 'heroku/kensa/manifest'
3
3
  require 'heroku/kensa/check'
4
4
  require 'heroku/kensa/sso'
5
+
6
+ module Heroku
7
+ module Kensa
8
+ VERSION = "1.0.0.beta3"
9
+ end
10
+ end
@@ -138,27 +138,6 @@ module Heroku
138
138
  end
139
139
  end
140
140
  end
141
-
142
- test "plans"
143
- check "key must exist" do
144
- data.has_key?("plans")
145
- end
146
- check "is an array" do
147
- data["plans"].is_a?(Array)
148
- end
149
- check "contains at least one plan" do
150
- !data["plans"].empty?
151
- end
152
- check "all plans are a hash" do
153
- data["plans"].all? {|plan| plan.is_a?(Hash) }
154
- end
155
- check "all plans must have an id" do
156
- data["plans"].all? {|plan| plan.has_key?("id") }
157
- end
158
- check "all plans have an unique id" do
159
- ids = data["plans"].map {|plan| plan["id"] }
160
- ids.size == ids.uniq.size
161
- end
162
141
  end
163
142
 
164
143
  end
@@ -246,7 +225,7 @@ module Heroku
246
225
 
247
226
  payload = {
248
227
  :heroku_id => APPID,
249
- :plan => @data[:plan] || @data['plans'].first['id'],
228
+ :plan => 'test',
250
229
  :callback_url => callback
251
230
  }
252
231
 
@@ -18,7 +18,7 @@ module Heroku
18
18
  class CommandInvalid < Exception; end
19
19
 
20
20
  def run!
21
- command = @args.shift
21
+ command = @args.shift || @options[:command]
22
22
  raise CommandInvalid unless command && respond_to?(command)
23
23
  send(command)
24
24
  end
@@ -66,15 +66,21 @@ module Heroku
66
66
  require_heroku
67
67
  client = Heroku::Command.run "auth:client", ['--ignore-keys']
68
68
  host = ENV['ADDONS_HOST'] || 'https://addons.heroku.com'
69
+ data = Yajl::Parser.parse(resolve_manifest)
69
70
  resource = RestClient::Resource.new(host, client.user, client.password)
70
71
  resource['provider/addons'].post(resolve_manifest)
71
- puts "Manifest pushed succesfully"
72
+ puts "-----> Manifest for \"#{data['id']}\" was pushed successfully"
73
+ puts " Continue at https://provider.heroku.com/addons/#{data['id']}"
72
74
  rescue RestClient::Unauthorized
73
75
  abort("Authentication failure")
74
76
  rescue RestClient::Forbidden
75
77
  abort("Not authorized to push this manifest. Please make sure you have permissions to push it")
76
78
  end
77
79
 
80
+ def version
81
+ puts "Kensa #{VERSION}"
82
+ end
83
+
78
84
  private
79
85
 
80
86
  def resolve_manifest
@@ -10,10 +10,6 @@ module Heroku
10
10
  <<-JSON
11
11
  {
12
12
  "id": "myaddon",
13
- "plans": [
14
- { "id": "basic" },
15
- { "id": "premium" }
16
- ],
17
13
  "api": {
18
14
  "config_vars": [ "MYADDON_URL" ],
19
15
  "username": "heroku",
@@ -5,15 +5,7 @@ class ManifestCheckTest < Test::Unit::TestCase
5
5
 
6
6
  def check ; ManifestCheck ; end
7
7
 
8
- setup do
9
- @data = Manifest.new.skeleton
10
- @data["plans"] << {
11
- "id" => "advanced",
12
- "name" => "Advanced",
13
- "price" => "100",
14
- "price_unit" => "month"
15
- }
16
- end
8
+ setup { @data = Manifest.new.skeleton }
17
9
 
18
10
  test "is valid if no errors" do
19
11
  assert_valid
@@ -79,34 +71,4 @@ class ManifestCheckTest < Test::Unit::TestCase
79
71
  assert_invalid
80
72
  end
81
73
 
82
- test "plans key must exist" do
83
- @data.delete("plans")
84
- assert_invalid
85
- end
86
-
87
- test "plans key must be an Array" do
88
- @data["plans"] = ""
89
- assert_invalid
90
- end
91
-
92
- test "has at least one plan" do
93
- @data["plans"] = []
94
- assert_invalid
95
- end
96
-
97
- test "all plans are a hash" do
98
- @data["plans"][0] = ""
99
- assert_invalid
100
- end
101
-
102
- test "all plans have an id" do
103
- @data["plans"].first.delete("id")
104
- assert_invalid
105
- end
106
-
107
- test "all plans have an unique id" do
108
- @data["plans"].first["id"] = @data["plans"].last["id"]
109
- assert_invalid
110
- end
111
-
112
74
  end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 1
7
7
  - 0
8
8
  - 0
9
- - beta2
10
- version: 1.0.0.beta2
9
+ - beta3
10
+ version: 1.0.0.beta3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Blake Mizerany
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-07-28 00:00:00 -07:00
20
+ date: 2010-08-11 00:00:00 -07:00
21
21
  default_executable: kensa
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency