relish 0.0.2 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/features/projects.feature +16 -0
- data/features/push.feature +1 -1
- data/features/step_definitions/fake_web_steps.rb +1 -1
- data/features/support/env.rb +4 -1
- data/lib/relish/command.rb +3 -0
- data/lib/relish/commands/base.rb +13 -4
- data/lib/relish/commands/config.rb +9 -0
- data/lib/relish/commands/help.rb +32 -0
- data/lib/relish/commands/projects.rb +29 -0
- data/lib/relish/commands/push.rb +10 -5
- data/relish.gemspec +2 -1
- data/spec/relish/command_spec.rb +14 -0
- data/spec/relish/commands/base_spec.rb +50 -15
- data/spec/relish/commands/config_spec.rb +41 -0
- data/spec/relish/commands/projects_spec.rb +24 -0
- data/spec/relish/commands/push_spec.rb +10 -10
- data/spec/spec_helper.rb +6 -1
- metadata +43 -19
@@ -0,0 +1,16 @@
|
|
1
|
+
@announce
|
2
|
+
Feature: Projects
|
3
|
+
In order to add and delete projects
|
4
|
+
As a Relish user
|
5
|
+
I want to use the projects command
|
6
|
+
|
7
|
+
# Background:
|
8
|
+
# Given my API token "1234" is stored
|
9
|
+
#
|
10
|
+
# Scenario: Listing all projects
|
11
|
+
# When I run relish projects --host localhost:1234
|
12
|
+
# Then it should GET to "http://localhost:1234/api/projects?api_token=1234"
|
13
|
+
#
|
14
|
+
# Scenario: Adding a project
|
15
|
+
# When I run relish projects:add rspec-core --host localhost:1234
|
16
|
+
# Then it should POST to "http://localhost:1234/api/projects?name=rspec-core&api_token=1234"
|
data/features/push.feature
CHANGED
@@ -9,4 +9,4 @@ Feature: Push
|
|
9
9
|
|
10
10
|
Scenario: Specify everything at the command-line
|
11
11
|
When I run relish push --host localhost:1234 --project p
|
12
|
-
|
12
|
+
Then it should POST to "http://localhost:1234/api/pushes?project_id=p&api_token=1234"
|
@@ -2,7 +2,7 @@ require 'fake_web'
|
|
2
2
|
FakeWeb.allow_net_connect = false
|
3
3
|
FakeWeb.register_uri(:any, /.*/, :body => "Faked HTTP response")
|
4
4
|
|
5
|
-
|
5
|
+
Then /^it should POST to "http:\/\/localhost:1234([^"]*)"$/ do |path|
|
6
6
|
request = FakeWeb.last_request || raise("Fakeweb did not record a request.")
|
7
7
|
request.path.should == path
|
8
8
|
end
|
data/features/support/env.rb
CHANGED
data/lib/relish/command.rb
CHANGED
data/lib/relish/commands/base.rb
CHANGED
@@ -7,10 +7,11 @@ module Relish
|
|
7
7
|
GLOBAL_OPTIONS_FILE = File.join(File.expand_path('~'), '.relish')
|
8
8
|
LOCAL_OPTIONS_FILE = '.relish'
|
9
9
|
|
10
|
-
|
10
|
+
attr_accessor :args
|
11
11
|
|
12
|
-
def initialize(args)
|
12
|
+
def initialize(args = [])
|
13
13
|
@args = args
|
14
|
+
@param = get_param
|
14
15
|
@options = get_options
|
15
16
|
end
|
16
17
|
|
@@ -22,14 +23,22 @@ module Relish
|
|
22
23
|
@options['--project'] || @options['-p'] || parsed_options_file['project']
|
23
24
|
end
|
24
25
|
|
25
|
-
def
|
26
|
-
@options['--host'] || DEFAULT_HOST
|
26
|
+
def url
|
27
|
+
"http://#{@options['--host'] || DEFAULT_HOST}/api"
|
28
|
+
end
|
29
|
+
|
30
|
+
def resource
|
31
|
+
RestClient::Resource.new(url)
|
27
32
|
end
|
28
33
|
|
29
34
|
def api_token
|
30
35
|
parsed_options_file['api_token']
|
31
36
|
end
|
32
37
|
|
38
|
+
def get_param
|
39
|
+
args.shift if args.size.odd?
|
40
|
+
end
|
41
|
+
|
33
42
|
def get_options
|
34
43
|
parsed_options_file.merge(Hash[*args])
|
35
44
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
module Relish
|
4
|
+
module Command
|
5
|
+
class Help < Base
|
6
|
+
class << self
|
7
|
+
def for_command(command, help)
|
8
|
+
command_help[command] = help
|
9
|
+
end
|
10
|
+
|
11
|
+
def command_help
|
12
|
+
@command_help ||= {}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def default
|
17
|
+
puts "This is the prefunctory help message for the relish gem."
|
18
|
+
|
19
|
+
puts "Commands:"
|
20
|
+
Help.command_help.each do |command, help|
|
21
|
+
message = "relish #{command}".ljust(max_command_length) +
|
22
|
+
" # " + help
|
23
|
+
puts message
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def max_command_length
|
28
|
+
Help.command_help.keys.map { |c| c.to_s.length }.max
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Relish
|
5
|
+
module Command
|
6
|
+
class Projects < Base
|
7
|
+
|
8
|
+
def default
|
9
|
+
list
|
10
|
+
end
|
11
|
+
|
12
|
+
def list
|
13
|
+
response = resource['projects'].get(
|
14
|
+
:params => {:api_token => api_token}, :accept => :json
|
15
|
+
)
|
16
|
+
puts format(response)
|
17
|
+
rescue RestClient::Exception => exception
|
18
|
+
warn exception.response
|
19
|
+
exit 1
|
20
|
+
end
|
21
|
+
|
22
|
+
def format(response)
|
23
|
+
json = JSON.parse(response)
|
24
|
+
json.map {|h| h['project']['slug']}.join("\n")
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/relish/commands/push.rb
CHANGED
@@ -3,9 +3,12 @@ require 'zlib'
|
|
3
3
|
require 'archive/tar/minitar'
|
4
4
|
require 'stringio'
|
5
5
|
require 'rest_client'
|
6
|
+
require 'relish/commands/help'
|
6
7
|
|
7
8
|
module Relish
|
8
9
|
module Command
|
10
|
+
Help.for_command(:push, "push your features to relishapp.com")
|
11
|
+
|
9
12
|
class Push < Base
|
10
13
|
|
11
14
|
def default
|
@@ -17,17 +20,16 @@ module Relish
|
|
17
20
|
end
|
18
21
|
|
19
22
|
def post(tar_gz_data)
|
20
|
-
resource
|
21
|
-
resource.post(tar_gz_data, :content_type => 'application/x-gzip')
|
23
|
+
resource[parameters].post(tar_gz_data, :content_type => 'application/x-gzip')
|
22
24
|
puts "sent:\n#{files.join("\n")}"
|
23
25
|
rescue RestClient::Exception => exception
|
24
26
|
warn exception.response
|
25
27
|
exit 1
|
26
28
|
end
|
27
29
|
|
28
|
-
def
|
30
|
+
def parameters
|
29
31
|
"".tap do |str|
|
30
|
-
str << "
|
32
|
+
str << "pushes?"
|
31
33
|
str << "creator_id=#{organization}&" if organization
|
32
34
|
str << "project_id=#{project}&"
|
33
35
|
str << "version_id=#{version}&" if version
|
@@ -58,5 +60,8 @@ module Relish
|
|
58
60
|
end
|
59
61
|
|
60
62
|
end
|
63
|
+
|
64
|
+
|
61
65
|
end
|
62
|
-
end
|
66
|
+
end
|
67
|
+
|
data/relish.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "relish"
|
3
|
-
s.version = "0.0.
|
3
|
+
s.version = "0.0.4"
|
4
4
|
|
5
5
|
s.required_rubygems_version = '>= 1.3.5'
|
6
6
|
s.authors = ["Matt Wynne", "Justin Ko"]
|
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
{
|
22
22
|
'archive-tar-minitar' => '~> 0.5.2',
|
23
23
|
'rest-client' => '~> 1.6.1',
|
24
|
+
'json' => '~> 1.4.6'
|
24
25
|
}.each do |lib, version|
|
25
26
|
s.add_runtime_dependency lib, version
|
26
27
|
end
|
data/spec/relish/command_spec.rb
CHANGED
@@ -9,4 +9,18 @@ describe Relish::Command do
|
|
9
9
|
Relish::Command.run('push', [])
|
10
10
|
end
|
11
11
|
|
12
|
+
it "recognizes the 'config' command" do
|
13
|
+
config = double
|
14
|
+
config.should_receive(:default)
|
15
|
+
Relish::Command::Config.should_receive(:new).with([]).and_return(config)
|
16
|
+
Relish::Command.run('config', [])
|
17
|
+
end
|
18
|
+
|
19
|
+
it "recognizes the 'projects' command" do
|
20
|
+
projects = double
|
21
|
+
projects.should_receive(:default)
|
22
|
+
Relish::Command::Projects.should_receive(:new).with([]).and_return(projects)
|
23
|
+
Relish::Command.run('projects', [])
|
24
|
+
end
|
25
|
+
|
12
26
|
end
|
@@ -24,7 +24,7 @@ module Relish
|
|
24
24
|
end
|
25
25
|
|
26
26
|
context 'contained in the options file' do
|
27
|
-
let(:base) { described_class.new
|
27
|
+
let(:base) { described_class.new }
|
28
28
|
|
29
29
|
before do
|
30
30
|
base.stub(:parsed_options_file).and_return({meth.to_s => name})
|
@@ -36,7 +36,7 @@ module Relish
|
|
36
36
|
end
|
37
37
|
|
38
38
|
context 'not passed in command line' do
|
39
|
-
let(:base) { described_class.new
|
39
|
+
let(:base) { described_class.new }
|
40
40
|
|
41
41
|
context 'and options file does not exist' do
|
42
42
|
it 'returns nil' do
|
@@ -47,26 +47,34 @@ module Relish
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
describe '#
|
51
|
-
context 'passed in command line' do
|
50
|
+
describe '#url' do
|
51
|
+
context 'host passed in command line' do
|
52
52
|
let(:base) { described_class.new(['--host', 'test.com']) }
|
53
|
-
|
54
|
-
it 'returns test.com' do
|
55
|
-
base.host.should eq('test.com')
|
56
|
-
end
|
53
|
+
specify { base.url.should eq('http://test.com/api') }
|
57
54
|
end
|
58
55
|
|
59
|
-
context 'not passed in command line' do
|
60
|
-
let(:base) { described_class.new
|
56
|
+
context 'host not passed in command line' do
|
57
|
+
let(:base) { described_class.new }
|
61
58
|
|
62
59
|
it 'returns the default host' do
|
63
|
-
base.
|
60
|
+
base.url.should eq("http://#{Base::DEFAULT_HOST}/api")
|
64
61
|
end
|
65
62
|
end
|
66
63
|
end
|
67
64
|
|
65
|
+
describe '#resource' do
|
66
|
+
let(:base) { described_class.new }
|
67
|
+
|
68
|
+
before do
|
69
|
+
base.should_receive(:url).and_return('url')
|
70
|
+
RestClient::Resource.should_receive(:new).with('url')
|
71
|
+
end
|
72
|
+
|
73
|
+
specify { base.resource }
|
74
|
+
end
|
75
|
+
|
68
76
|
describe '#api_token' do
|
69
|
-
let(:base) { described_class.new
|
77
|
+
let(:base) { described_class.new }
|
70
78
|
let(:options) { {'api_token' => '12345'} }
|
71
79
|
|
72
80
|
before do
|
@@ -78,14 +86,41 @@ module Relish
|
|
78
86
|
end
|
79
87
|
end
|
80
88
|
|
89
|
+
describe '#get_param' do
|
90
|
+
|
91
|
+
context 'given a command param' do
|
92
|
+
let(:base) do
|
93
|
+
base = described_class.new
|
94
|
+
base.args = ['param', '--project', 'rspec-core']
|
95
|
+
base
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'returns the first arg' do
|
99
|
+
base.get_param.should eq('param')
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
context 'not given a command param' do
|
104
|
+
let(:base) do
|
105
|
+
base = described_class.new
|
106
|
+
base.args = ['--project', 'rspec-core']
|
107
|
+
base
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'returns nil' do
|
111
|
+
base.get_param.should be_nil
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
81
116
|
describe '#get_options' do
|
82
|
-
let(:base) { described_class.new(['--project', 'rspec-core']) }
|
83
117
|
let(:options) { {'project' => 'rspec-core'} }
|
118
|
+
let(:base) { described_class.new(['--project', 'rspec-core']) }
|
84
119
|
|
85
120
|
before do
|
86
121
|
base.should_receive(:parsed_options_file).and_return(options)
|
87
122
|
end
|
88
|
-
|
123
|
+
|
89
124
|
it 'combines the args and options file' do
|
90
125
|
base.get_options.should eq(
|
91
126
|
{'project' => 'rspec-core', '--project' => 'rspec-core'}
|
@@ -94,7 +129,7 @@ module Relish
|
|
94
129
|
end
|
95
130
|
|
96
131
|
describe '#parsed_options_file' do
|
97
|
-
let(:base) { described_class.new
|
132
|
+
let(:base) { described_class.new }
|
98
133
|
|
99
134
|
context 'with options file that exists' do
|
100
135
|
let(:options) do
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Relish
|
4
|
+
module Command
|
5
|
+
describe Config do
|
6
|
+
|
7
|
+
describe '#default' do
|
8
|
+
let(:config) { described_class.new }
|
9
|
+
|
10
|
+
it 'calls #show' do
|
11
|
+
config.should_receive(:show)
|
12
|
+
config.default
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#show' do
|
17
|
+
let(:config) { described_class.new }
|
18
|
+
|
19
|
+
context 'with a local options file' do
|
20
|
+
before do
|
21
|
+
File.should_receive(:exists?).and_return(true)
|
22
|
+
IO.should_receive(:read).and_return('options')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'outputs the contents' do
|
26
|
+
config.should_receive(:puts).with('options')
|
27
|
+
config.show
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'without a local options file' do
|
32
|
+
it 'outputs the correct message' do
|
33
|
+
config.should_receive(:puts).with('No .relish file exists')
|
34
|
+
config.show
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Relish
|
4
|
+
module Command
|
5
|
+
describe Projects do
|
6
|
+
|
7
|
+
describe '#default' do
|
8
|
+
let(:projects) { described_class.new }
|
9
|
+
|
10
|
+
it 'calls #list' do
|
11
|
+
projects.should_receive(:list)
|
12
|
+
projects.default
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# describe '#url' do
|
17
|
+
# context 'given a name' do
|
18
|
+
# let(:projects) { described_class.new(['rspec-core']) }
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -5,7 +5,7 @@ module Relish
|
|
5
5
|
describe Push do
|
6
6
|
|
7
7
|
describe '#default' do
|
8
|
-
let(:push) { described_class.new
|
8
|
+
let(:push) { described_class.new }
|
9
9
|
|
10
10
|
it 'calls #run' do
|
11
11
|
push.should_receive(:run)
|
@@ -13,18 +13,18 @@ module Relish
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
describe '#
|
16
|
+
describe '#parameters' do
|
17
17
|
before do
|
18
18
|
push.should_receive(:project).and_return('rspec')
|
19
19
|
push.should_receive(:api_token).and_return('abc')
|
20
20
|
end
|
21
21
|
|
22
22
|
context 'without version' do
|
23
|
-
let(:push) { described_class.new
|
23
|
+
let(:push) { described_class.new }
|
24
24
|
|
25
25
|
specify do
|
26
|
-
push.
|
27
|
-
"
|
26
|
+
push.parameters.should eq(
|
27
|
+
"pushes?project_id=rspec&api_token=abc"
|
28
28
|
)
|
29
29
|
end
|
30
30
|
end
|
@@ -33,8 +33,8 @@ module Relish
|
|
33
33
|
let(:push) { described_class.new(['--version', 'one']) }
|
34
34
|
|
35
35
|
specify do
|
36
|
-
push.
|
37
|
-
"
|
36
|
+
push.parameters.should eq(
|
37
|
+
"pushes?project_id=rspec&version_id=one&api_token=abc"
|
38
38
|
)
|
39
39
|
end
|
40
40
|
end
|
@@ -47,19 +47,19 @@ module Relish
|
|
47
47
|
end
|
48
48
|
|
49
49
|
context 'with --version not in @options' do
|
50
|
-
let(:push) { described_class.new
|
50
|
+
let(:push) { described_class.new }
|
51
51
|
specify { push.version.should be_nil }
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
55
|
describe '#files_as_tar_gz' do
|
56
|
-
let(:push) { described_class.new
|
56
|
+
let(:push) { described_class.new }
|
57
57
|
specify { expect { push.files_as_tar_gz }.to_not raise_exception }
|
58
58
|
specify { push.files_as_tar_gz.should be_a(String) }
|
59
59
|
end
|
60
60
|
|
61
61
|
describe '#files' do
|
62
|
-
let(:push) { described_class.new
|
62
|
+
let(:push) { described_class.new }
|
63
63
|
specify { expect { push.files }.to_not raise_exception }
|
64
64
|
specify { push.files.should be_a(Array) }
|
65
65
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,11 @@ RSpec.configure do |config|
|
|
8
8
|
config.color_enabled = true
|
9
9
|
|
10
10
|
config.before(:suite) do
|
11
|
-
|
11
|
+
|
12
|
+
Relish::Command::Base.class_eval do
|
13
|
+
remove_const(:GLOBAL_OPTIONS_FILE)
|
14
|
+
const_set(:GLOBAL_OPTIONS_FILE, '~/.relish')
|
15
|
+
end
|
16
|
+
|
12
17
|
end
|
13
18
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Wynne
|
@@ -20,9 +20,25 @@ date: 2010-09-23 00:00:00 +01:00
|
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
|
-
name:
|
23
|
+
name: json
|
24
24
|
prerelease: false
|
25
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 11
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 4
|
34
|
+
- 6
|
35
|
+
version: 1.4.6
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rest-client
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
26
42
|
none: false
|
27
43
|
requirements:
|
28
44
|
- - ~>
|
@@ -34,11 +50,11 @@ dependencies:
|
|
34
50
|
- 1
|
35
51
|
version: 1.6.1
|
36
52
|
type: :runtime
|
37
|
-
version_requirements: *
|
53
|
+
version_requirements: *id002
|
38
54
|
- !ruby/object:Gem::Dependency
|
39
55
|
name: archive-tar-minitar
|
40
56
|
prerelease: false
|
41
|
-
requirement: &
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
58
|
none: false
|
43
59
|
requirements:
|
44
60
|
- - ~>
|
@@ -50,11 +66,11 @@ dependencies:
|
|
50
66
|
- 2
|
51
67
|
version: 0.5.2
|
52
68
|
type: :runtime
|
53
|
-
version_requirements: *
|
69
|
+
version_requirements: *id003
|
54
70
|
- !ruby/object:Gem::Dependency
|
55
71
|
name: fakeweb
|
56
72
|
prerelease: false
|
57
|
-
requirement: &
|
73
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
58
74
|
none: false
|
59
75
|
requirements:
|
60
76
|
- - ~>
|
@@ -66,11 +82,11 @@ dependencies:
|
|
66
82
|
- 0
|
67
83
|
version: 1.3.0
|
68
84
|
type: :development
|
69
|
-
version_requirements: *
|
85
|
+
version_requirements: *id004
|
70
86
|
- !ruby/object:Gem::Dependency
|
71
87
|
name: rake
|
72
88
|
prerelease: false
|
73
|
-
requirement: &
|
89
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
74
90
|
none: false
|
75
91
|
requirements:
|
76
92
|
- - ~>
|
@@ -82,11 +98,11 @@ dependencies:
|
|
82
98
|
- 7
|
83
99
|
version: 0.8.7
|
84
100
|
type: :development
|
85
|
-
version_requirements: *
|
101
|
+
version_requirements: *id005
|
86
102
|
- !ruby/object:Gem::Dependency
|
87
103
|
name: rspec
|
88
104
|
prerelease: false
|
89
|
-
requirement: &
|
105
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
90
106
|
none: false
|
91
107
|
requirements:
|
92
108
|
- - ~>
|
@@ -98,11 +114,11 @@ dependencies:
|
|
98
114
|
- 0
|
99
115
|
version: 2.0.0
|
100
116
|
type: :development
|
101
|
-
version_requirements: *
|
117
|
+
version_requirements: *id006
|
102
118
|
- !ruby/object:Gem::Dependency
|
103
119
|
name: aruba
|
104
120
|
prerelease: false
|
105
|
-
requirement: &
|
121
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
106
122
|
none: false
|
107
123
|
requirements:
|
108
124
|
- - ~>
|
@@ -114,11 +130,11 @@ dependencies:
|
|
114
130
|
- 2
|
115
131
|
version: 0.2.2
|
116
132
|
type: :development
|
117
|
-
version_requirements: *
|
133
|
+
version_requirements: *id007
|
118
134
|
- !ruby/object:Gem::Dependency
|
119
135
|
name: bundler
|
120
136
|
prerelease: false
|
121
|
-
requirement: &
|
137
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
122
138
|
none: false
|
123
139
|
requirements:
|
124
140
|
- - ~>
|
@@ -130,11 +146,11 @@ dependencies:
|
|
130
146
|
- 0
|
131
147
|
version: 1.0.0
|
132
148
|
type: :development
|
133
|
-
version_requirements: *
|
149
|
+
version_requirements: *id008
|
134
150
|
- !ruby/object:Gem::Dependency
|
135
151
|
name: cucumber
|
136
152
|
prerelease: false
|
137
|
-
requirement: &
|
153
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
138
154
|
none: false
|
139
155
|
requirements:
|
140
156
|
- - ~>
|
@@ -146,7 +162,7 @@ dependencies:
|
|
146
162
|
- 1
|
147
163
|
version: 0.9.1
|
148
164
|
type: :development
|
149
|
-
version_requirements: *
|
165
|
+
version_requirements: *id009
|
150
166
|
description: Client gem for http://relishapp.com
|
151
167
|
email: jko170@gmail.com
|
152
168
|
executables:
|
@@ -163,6 +179,7 @@ files:
|
|
163
179
|
- Rakefile
|
164
180
|
- bin/relish
|
165
181
|
- cucumber.yml
|
182
|
+
- features/projects.feature
|
166
183
|
- features/push.feature
|
167
184
|
- features/step_definitions/aruba.rb
|
168
185
|
- features/step_definitions/fake_web_steps.rb
|
@@ -171,10 +188,14 @@ files:
|
|
171
188
|
- lib/relish/command.rb
|
172
189
|
- lib/relish/commands/base.rb
|
173
190
|
- lib/relish/commands/config.rb
|
191
|
+
- lib/relish/commands/help.rb
|
192
|
+
- lib/relish/commands/projects.rb
|
174
193
|
- lib/relish/commands/push.rb
|
175
194
|
- relish.gemspec
|
176
195
|
- spec/relish/command_spec.rb
|
177
196
|
- spec/relish/commands/base_spec.rb
|
197
|
+
- spec/relish/commands/config_spec.rb
|
198
|
+
- spec/relish/commands/projects_spec.rb
|
178
199
|
- spec/relish/commands/push_spec.rb
|
179
200
|
- spec/spec_helper.rb
|
180
201
|
has_rdoc: true
|
@@ -214,6 +235,7 @@ signing_key:
|
|
214
235
|
specification_version: 3
|
215
236
|
summary: Client gem for http://relishapp.com
|
216
237
|
test_files:
|
238
|
+
- features/projects.feature
|
217
239
|
- features/push.feature
|
218
240
|
- features/step_definitions/aruba.rb
|
219
241
|
- features/step_definitions/fake_web_steps.rb
|
@@ -221,5 +243,7 @@ test_files:
|
|
221
243
|
- features/support/env.rb
|
222
244
|
- spec/relish/command_spec.rb
|
223
245
|
- spec/relish/commands/base_spec.rb
|
246
|
+
- spec/relish/commands/config_spec.rb
|
247
|
+
- spec/relish/commands/projects_spec.rb
|
224
248
|
- spec/relish/commands/push_spec.rb
|
225
249
|
- spec/spec_helper.rb
|