relish 0.0.1
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/.gitignore +5 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +53 -0
- data/LICENSE +22 -0
- data/README.md +1 -0
- data/Rakefile +8 -0
- data/bin/relish +8 -0
- data/features/push.feature +8 -0
- data/features/support/env.rb +1 -0
- data/lib/relish.rb +2 -0
- data/lib/relish/cli/options.rb +51 -0
- data/lib/relish/cli/runner.rb +12 -0
- data/lib/relish/command.rb +2 -0
- data/lib/relish/commands/base.rb +43 -0
- data/lib/relish/commands/push.rb +60 -0
- data/lib/relish/helpers.rb +15 -0
- data/relish.gemspec +32 -0
- data/spec/relish/commands/base_spec.rb +92 -0
- data/spec/relish/commands/push_spec.rb +62 -0
- data/spec/spec_helper.rb +9 -0
- metadata +223 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
relish (0.0.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
archive-tar-minitar (0.5.2)
|
10
|
+
aruba (0.2.2)
|
11
|
+
builder (2.1.2)
|
12
|
+
cucumber (0.9.1)
|
13
|
+
builder (~> 2.1.2)
|
14
|
+
diff-lcs (~> 1.1.2)
|
15
|
+
gherkin (~> 2.2.5)
|
16
|
+
json (~> 1.4.6)
|
17
|
+
term-ansicolor (~> 1.0.5)
|
18
|
+
diff-lcs (1.1.2)
|
19
|
+
gherkin (2.2.7)
|
20
|
+
json (~> 1.4.6)
|
21
|
+
term-ansicolor (~> 1.0.5)
|
22
|
+
trollop (~> 1.16.2)
|
23
|
+
json (1.4.6)
|
24
|
+
mime-types (1.16)
|
25
|
+
rake (0.8.7)
|
26
|
+
rest-client (1.6.1)
|
27
|
+
mime-types (>= 1.16)
|
28
|
+
rspec (2.0.0.beta.22)
|
29
|
+
rspec-core (= 2.0.0.beta.22)
|
30
|
+
rspec-expectations (= 2.0.0.beta.22)
|
31
|
+
rspec-mocks (= 2.0.0.beta.22)
|
32
|
+
rspec-core (2.0.0.beta.22)
|
33
|
+
rspec-expectations (2.0.0.beta.22)
|
34
|
+
diff-lcs (>= 1.1.2)
|
35
|
+
rspec-mocks (2.0.0.beta.22)
|
36
|
+
rspec-core (= 2.0.0.beta.22)
|
37
|
+
rspec-expectations (= 2.0.0.beta.22)
|
38
|
+
term-ansicolor (1.0.5)
|
39
|
+
trollop (1.16.2)
|
40
|
+
|
41
|
+
PLATFORMS
|
42
|
+
ruby
|
43
|
+
|
44
|
+
DEPENDENCIES
|
45
|
+
archive-tar-minitar (~> 0.5.2)
|
46
|
+
aruba (~> 0.2.2)
|
47
|
+
bundler (~> 1.0.0)
|
48
|
+
cucumber (~> 0.9.1)
|
49
|
+
rake (~> 0.8.7)
|
50
|
+
relish!
|
51
|
+
rest-client (~> 1.6.1)
|
52
|
+
rspec (~> 2.0.0.beta.22)
|
53
|
+
trollop (~> 1.16.2)
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2008,2009 Matt Patterson, Matt Wynne, Justin Ko
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Hello
|
data/Rakefile
ADDED
data/bin/relish
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'aruba'
|
data/lib/relish.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
require 'relish/commands/push'
|
3
|
+
|
4
|
+
module Relish
|
5
|
+
module Cli
|
6
|
+
class OptionsParser < Trollop::Parser
|
7
|
+
|
8
|
+
COMMANDS = { 'push' => Commands::Push }
|
9
|
+
|
10
|
+
def initialize(error_stream, out_stream)
|
11
|
+
super
|
12
|
+
|
13
|
+
banner "This is the relish gem. Valid commands are: #{valid_commands.join(",")}"
|
14
|
+
|
15
|
+
opt :help, "Show help information"
|
16
|
+
opt :host, "Host to connect to", :short => '-h', :type => String
|
17
|
+
opt :account, "Account to connect to", :short => '-a', :type => String
|
18
|
+
opt :project, "Project to connect to", :short => '-p', :type => String
|
19
|
+
opt :version, "Version to connect to", :short => '-v', :type => String
|
20
|
+
|
21
|
+
stop_on valid_commands
|
22
|
+
end
|
23
|
+
|
24
|
+
def command(args)
|
25
|
+
Trollop.with_standard_exception_handling(self) do
|
26
|
+
global_options = parse(args)
|
27
|
+
grab_command(global_options)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def grab_command(global_options)
|
34
|
+
command_name = leftovers.shift
|
35
|
+
raise Trollop::HelpNeeded unless command_name
|
36
|
+
unless valid_commands.include?(command_name)
|
37
|
+
die("'#{command_name}' is not a relish command", nil)
|
38
|
+
end
|
39
|
+
command_class(command_name).new(global_options)
|
40
|
+
end
|
41
|
+
|
42
|
+
def valid_commands
|
43
|
+
COMMANDS.keys
|
44
|
+
end
|
45
|
+
|
46
|
+
def command_class(command_name)
|
47
|
+
COMMANDS[command_name] or raise(NotImplementedError)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'trollop'
|
2
|
+
|
3
|
+
module Relish
|
4
|
+
module Command
|
5
|
+
class Base
|
6
|
+
include Relish::Helpers
|
7
|
+
|
8
|
+
DEFAULT_HOST = 'relishapp.com'
|
9
|
+
LOCAL_OPTIONS_FILE = '.relish'
|
10
|
+
|
11
|
+
def initialize(global_options = {})
|
12
|
+
@options = global_options
|
13
|
+
end
|
14
|
+
|
15
|
+
[:account, :project].each do |meth|
|
16
|
+
define_method meth do
|
17
|
+
@options[meth] || parse_options_file[meth]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def host
|
22
|
+
@options[:host] || DEFAULT_HOST
|
23
|
+
end
|
24
|
+
|
25
|
+
def parse_options_file
|
26
|
+
@parsed_options_file ||= begin
|
27
|
+
if File.exist?(LOCAL_OPTIONS_FILE)
|
28
|
+
parser = Trollop::Parser.new
|
29
|
+
parser.opt :account, "", :short => '-a', :type => String
|
30
|
+
parser.opt :project, "", :short => '-p', :type => String
|
31
|
+
parser.opt :version, "", :short => '-v', :type => String
|
32
|
+
parser.parse(File.read(LOCAL_OPTIONS_FILE).split)
|
33
|
+
else {} end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def api_token
|
38
|
+
File.read("#{home_directory}/.relish/api_token")
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'zlib'
|
2
|
+
require 'archive/tar/minitar'
|
3
|
+
require 'stringio'
|
4
|
+
require 'rest_client'
|
5
|
+
|
6
|
+
module Relish
|
7
|
+
module Command
|
8
|
+
class Push < Base
|
9
|
+
|
10
|
+
def run
|
11
|
+
post files_as_tar_gz
|
12
|
+
end
|
13
|
+
|
14
|
+
def post(tar_gz_data)
|
15
|
+
resource = RestClient::Resource.new(url)
|
16
|
+
resource.post(tar_gz_data, :content_type => 'application/x-gzip')
|
17
|
+
puts "sent:\n#{files.join("\n")}"
|
18
|
+
rescue RestClient::ResourceNotFound,
|
19
|
+
RestClient::Unauthorized,
|
20
|
+
RestClient::BadRequest => exception
|
21
|
+
|
22
|
+
warn exception.response
|
23
|
+
exit 1
|
24
|
+
end
|
25
|
+
|
26
|
+
def url
|
27
|
+
"".tap do |str|
|
28
|
+
str << "http://#{host}/pushes?"
|
29
|
+
str << "account_id=#{account}&"
|
30
|
+
str << "project_id=#{project}&"
|
31
|
+
str << "version_id=#{version}&" if version
|
32
|
+
str << "api_token=#{api_token}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def version
|
37
|
+
@options[:version]
|
38
|
+
end
|
39
|
+
|
40
|
+
def files_as_tar_gz
|
41
|
+
stream = StringIO.new
|
42
|
+
begin
|
43
|
+
tgz = Zlib::GzipWriter.new(stream)
|
44
|
+
tar = Archive::Tar::Minitar::Output.new(tgz)
|
45
|
+
files.each do |entry|
|
46
|
+
Archive::Tar::Minitar.pack_file(entry, tar)
|
47
|
+
end
|
48
|
+
ensure
|
49
|
+
tar.close if tar # Closes both tar and tgz.
|
50
|
+
end
|
51
|
+
stream.string
|
52
|
+
end
|
53
|
+
|
54
|
+
def files
|
55
|
+
Dir['features/**/*.{feature,md}']
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Relish
|
2
|
+
module Helpers
|
3
|
+
def home_directory
|
4
|
+
running_on_windows? ? ENV['USERPROFILE'] : ENV['HOME']
|
5
|
+
end
|
6
|
+
|
7
|
+
def running_on_windows?
|
8
|
+
RUBY_PLATFORM =~ /mswin32|mingw32/
|
9
|
+
end
|
10
|
+
|
11
|
+
def running_on_a_mac?
|
12
|
+
RUBY_PLATFORM =~ /-darwin\d/
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/relish.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "relish"
|
3
|
+
s.version = "0.0.1"
|
4
|
+
|
5
|
+
s.required_rubygems_version = '>= 1.3.5'
|
6
|
+
s.authors = ["Matt Patterson", "Matt Wynne", "Justin Ko"]
|
7
|
+
s.date = "2010-09-23"
|
8
|
+
s.description = %q{Client gem for http://relishapp.com}
|
9
|
+
s.email = "jko170@gmail.com"
|
10
|
+
|
11
|
+
s.homepage = "http://relishapp.com"
|
12
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
13
|
+
s.rubygems_version = "1.3.6"
|
14
|
+
s.summary = %q{Client gem for http://relishapp.com}
|
15
|
+
|
16
|
+
s.require_path = "lib"
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
19
|
+
|
20
|
+
{
|
21
|
+
'bundler' => '~> 1.0.0',
|
22
|
+
'rake' => '~> 0.8.7',
|
23
|
+
'archive-tar-minitar' => '~> 0.5.2',
|
24
|
+
'rest-client' => '~> 1.6.1',
|
25
|
+
'trollop' => '~> 1.16.2',
|
26
|
+
'rspec' => '~> 2.0.0.beta.22',
|
27
|
+
'cucumber' => '~> 0.9.1',
|
28
|
+
'aruba' => '~> 0.2.2'
|
29
|
+
}.each do |lib, version|
|
30
|
+
s.add_development_dependency lib, version
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Relish
|
4
|
+
module Command
|
5
|
+
describe Base do
|
6
|
+
|
7
|
+
{:account => 'rspec', :project => 'rspec-core'}.each do |meth, name|
|
8
|
+
describe "##{meth}" do
|
9
|
+
context 'passed in command line' do
|
10
|
+
let(:base) { described_class.new({meth => name}) }
|
11
|
+
|
12
|
+
it 'returns the value' do
|
13
|
+
base.send(meth).should eq(name)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'not passed in command line' do
|
18
|
+
let(:base) { described_class.new }
|
19
|
+
|
20
|
+
context 'and options file does not exist' do
|
21
|
+
it 'returns nil' do
|
22
|
+
base.send(meth).should be_nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#host' do
|
30
|
+
context 'passed in command line' do
|
31
|
+
let(:base) { described_class.new({:host => 'test.com'}) }
|
32
|
+
|
33
|
+
it 'returns test.com' do
|
34
|
+
base.host.should eq('test.com')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'not passed in command line' do
|
39
|
+
let(:base) { described_class.new }
|
40
|
+
|
41
|
+
it 'returns the default host' do
|
42
|
+
base.host.should eq(Base::DEFAULT_HOST)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#parse_options_file' do
|
48
|
+
let(:base) { described_class.new }
|
49
|
+
|
50
|
+
context 'with options file that exists' do
|
51
|
+
let(:options) do
|
52
|
+
'--account rspec --project rspec-core'
|
53
|
+
end
|
54
|
+
|
55
|
+
before do
|
56
|
+
File.stub(:exist?).and_return(true)
|
57
|
+
File.stub(:read).and_return(options)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'parses the account' do
|
61
|
+
base.parse_options_file[:account].should eq('rspec')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'parses the project' do
|
65
|
+
base.parse_options_file[:project].should eq('rspec-core')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'with options file that does not exist' do
|
70
|
+
before do
|
71
|
+
File.stub(:exist?).and_return(false)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'returns an empty hash' do
|
75
|
+
base.parse_options_file.should eq({})
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#api_token' do
|
81
|
+
let(:base) { described_class.new }
|
82
|
+
|
83
|
+
it 'calls File.read with the correct path' do
|
84
|
+
base.should_receive(:home_directory).and_return('~')
|
85
|
+
File.should_receive(:read).with('~/.relish/api_token')
|
86
|
+
base.api_token
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Relish
|
4
|
+
module Command
|
5
|
+
describe Push do
|
6
|
+
|
7
|
+
describe '#url' do
|
8
|
+
before do
|
9
|
+
push.should_receive(:account).and_return('rspec')
|
10
|
+
push.should_receive(:project).and_return('rspec')
|
11
|
+
push.should_receive(:api_token).and_return('abc')
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'without version' do
|
15
|
+
let(:push) { described_class.new }
|
16
|
+
|
17
|
+
specify do
|
18
|
+
push.url.should eq(
|
19
|
+
"http://relishapp.com/pushes?account_id=rspec&project_id=rspec&api_token=abc"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'with version' do
|
25
|
+
let(:push) { described_class.new(:version => 'one') }
|
26
|
+
|
27
|
+
specify do
|
28
|
+
push.url.should eq(
|
29
|
+
"http://relishapp.com/pushes?" \
|
30
|
+
"account_id=rspec&project_id=rspec&version_id=one&api_token=abc"
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '#version' do
|
37
|
+
context 'with :version in @options' do
|
38
|
+
let(:push) { described_class.new(:version => 'one') }
|
39
|
+
specify { push.version.should eq('one') }
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'with :version not in @options' do
|
43
|
+
let(:push) { described_class.new }
|
44
|
+
specify { push.version.should be_nil }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#files_as_tar_gz' do
|
49
|
+
let(:push) { described_class.new }
|
50
|
+
specify { expect { push.files_as_tar_gz }.to_not raise_exception }
|
51
|
+
specify { push.files_as_tar_gz.should be_a(String) }
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#files' do
|
55
|
+
let(:push) { described_class.new }
|
56
|
+
specify { expect { push.files }.to_not raise_exception }
|
57
|
+
specify { push.files.should be_a(Array) }
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,223 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: relish
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Matt Patterson
|
14
|
+
- Matt Wynne
|
15
|
+
- Justin Ko
|
16
|
+
autorequire:
|
17
|
+
bindir: bin
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2010-09-23 00:00:00 -04:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
name: rake
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 49
|
32
|
+
segments:
|
33
|
+
- 0
|
34
|
+
- 8
|
35
|
+
- 7
|
36
|
+
version: 0.8.7
|
37
|
+
type: :development
|
38
|
+
version_requirements: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
name: rspec
|
41
|
+
prerelease: false
|
42
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
hash: 62196431
|
48
|
+
segments:
|
49
|
+
- 2
|
50
|
+
- 0
|
51
|
+
- 0
|
52
|
+
- beta
|
53
|
+
- 22
|
54
|
+
version: 2.0.0.beta.22
|
55
|
+
type: :development
|
56
|
+
version_requirements: *id002
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: aruba
|
59
|
+
prerelease: false
|
60
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
hash: 19
|
66
|
+
segments:
|
67
|
+
- 0
|
68
|
+
- 2
|
69
|
+
- 2
|
70
|
+
version: 0.2.2
|
71
|
+
type: :development
|
72
|
+
version_requirements: *id003
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: rest-client
|
75
|
+
prerelease: false
|
76
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ~>
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 13
|
82
|
+
segments:
|
83
|
+
- 1
|
84
|
+
- 6
|
85
|
+
- 1
|
86
|
+
version: 1.6.1
|
87
|
+
type: :development
|
88
|
+
version_requirements: *id004
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: trollop
|
91
|
+
prerelease: false
|
92
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
hash: 83
|
98
|
+
segments:
|
99
|
+
- 1
|
100
|
+
- 16
|
101
|
+
- 2
|
102
|
+
version: 1.16.2
|
103
|
+
type: :development
|
104
|
+
version_requirements: *id005
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: archive-tar-minitar
|
107
|
+
prerelease: false
|
108
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ~>
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
hash: 15
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
- 5
|
117
|
+
- 2
|
118
|
+
version: 0.5.2
|
119
|
+
type: :development
|
120
|
+
version_requirements: *id006
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: bundler
|
123
|
+
prerelease: false
|
124
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ~>
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 23
|
130
|
+
segments:
|
131
|
+
- 1
|
132
|
+
- 0
|
133
|
+
- 0
|
134
|
+
version: 1.0.0
|
135
|
+
type: :development
|
136
|
+
version_requirements: *id007
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: cucumber
|
139
|
+
prerelease: false
|
140
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ~>
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 57
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
- 9
|
149
|
+
- 1
|
150
|
+
version: 0.9.1
|
151
|
+
type: :development
|
152
|
+
version_requirements: *id008
|
153
|
+
description: Client gem for http://relishapp.com
|
154
|
+
email: jko170@gmail.com
|
155
|
+
executables: []
|
156
|
+
|
157
|
+
extensions: []
|
158
|
+
|
159
|
+
extra_rdoc_files: []
|
160
|
+
|
161
|
+
files:
|
162
|
+
- .gitignore
|
163
|
+
- Gemfile
|
164
|
+
- Gemfile.lock
|
165
|
+
- LICENSE
|
166
|
+
- README.md
|
167
|
+
- Rakefile
|
168
|
+
- bin/relish
|
169
|
+
- features/push.feature
|
170
|
+
- features/support/env.rb
|
171
|
+
- lib/relish.rb
|
172
|
+
- lib/relish/cli/options.rb
|
173
|
+
- lib/relish/cli/runner.rb
|
174
|
+
- lib/relish/command.rb
|
175
|
+
- lib/relish/commands/base.rb
|
176
|
+
- lib/relish/commands/push.rb
|
177
|
+
- lib/relish/helpers.rb
|
178
|
+
- relish.gemspec
|
179
|
+
- spec/relish/commands/base_spec.rb
|
180
|
+
- spec/relish/commands/push_spec.rb
|
181
|
+
- spec/spec_helper.rb
|
182
|
+
has_rdoc: true
|
183
|
+
homepage: http://relishapp.com
|
184
|
+
licenses: []
|
185
|
+
|
186
|
+
post_install_message:
|
187
|
+
rdoc_options:
|
188
|
+
- --charset=UTF-8
|
189
|
+
require_paths:
|
190
|
+
- lib
|
191
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
192
|
+
none: false
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
hash: 3
|
197
|
+
segments:
|
198
|
+
- 0
|
199
|
+
version: "0"
|
200
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ">="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
hash: 17
|
206
|
+
segments:
|
207
|
+
- 1
|
208
|
+
- 3
|
209
|
+
- 5
|
210
|
+
version: 1.3.5
|
211
|
+
requirements: []
|
212
|
+
|
213
|
+
rubyforge_project:
|
214
|
+
rubygems_version: 1.3.7
|
215
|
+
signing_key:
|
216
|
+
specification_version: 3
|
217
|
+
summary: Client gem for http://relishapp.com
|
218
|
+
test_files:
|
219
|
+
- features/push.feature
|
220
|
+
- features/support/env.rb
|
221
|
+
- spec/relish/commands/base_spec.rb
|
222
|
+
- spec/relish/commands/push_spec.rb
|
223
|
+
- spec/spec_helper.rb
|