shelltoad 0.4.4 → 0.4.5
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 +3 -1
- data/Gemfile.lock +10 -0
- data/Rakefile +3 -0
- data/Readme.textile +3 -2
- data/VERSION +1 -1
- data/lib/shelltoad/command.rb +19 -4
- data/lib/shelltoad/error.rb +15 -5
- data/shelltoad.gemspec +5 -2
- data/spec/shelltoad_spec.rb +24 -2
- data/spec/spec_helper.rb +20 -0
- metadata +18 -4
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
columnize (0.3.2)
|
4
5
|
crack (0.1.8)
|
5
6
|
diff-lcs (1.1.2)
|
6
7
|
fakeweb (1.3.0)
|
@@ -9,12 +10,14 @@ GEM
|
|
9
10
|
hoptoad-api (2.3.0)
|
10
11
|
hashie (>= 0.2.0)
|
11
12
|
httparty (>= 0.5.2)
|
13
|
+
http_logger (0.1.0)
|
12
14
|
httparty (0.6.1)
|
13
15
|
crack (= 0.1.8)
|
14
16
|
jeweler (1.5.2)
|
15
17
|
bundler (~> 1.0.0)
|
16
18
|
git (>= 1.2.5)
|
17
19
|
rake
|
20
|
+
linecache (0.43)
|
18
21
|
mocha (0.9.12)
|
19
22
|
rake (0.8.7)
|
20
23
|
rspec (2.5.0)
|
@@ -25,6 +28,11 @@ GEM
|
|
25
28
|
rspec-expectations (2.5.0)
|
26
29
|
diff-lcs (~> 1.1.2)
|
27
30
|
rspec-mocks (2.5.0)
|
31
|
+
ruby-debug (0.10.4)
|
32
|
+
columnize (>= 0.1)
|
33
|
+
ruby-debug-base (~> 0.10.4.0)
|
34
|
+
ruby-debug-base (0.10.4)
|
35
|
+
linecache (>= 0.3)
|
28
36
|
|
29
37
|
PLATFORMS
|
30
38
|
ruby
|
@@ -32,7 +40,9 @@ PLATFORMS
|
|
32
40
|
DEPENDENCIES
|
33
41
|
fakeweb
|
34
42
|
hoptoad-api
|
43
|
+
http_logger
|
35
44
|
jeweler
|
36
45
|
mocha
|
37
46
|
rake
|
38
47
|
rspec
|
48
|
+
ruby-debug
|
data/Rakefile
CHANGED
data/Readme.textile
CHANGED
@@ -17,7 +17,8 @@ h3. Commands
|
|
17
17
|
* errors, ers - list all unresolved errors, this is the default
|
18
18
|
* error, er [number] - display information about given error. Shortcut: shelltoad [number]
|
19
19
|
* resolve, rv [number] - mark error as resolved in Hoptoad
|
20
|
-
* commit, ci [number] - do commit to
|
20
|
+
* commit, ci [number] - do commit to git with the information on the specified error and mark error resolved in Hoptoad
|
21
|
+
** -m, --message [MESSAGE] - adds aditional message to the one generated by shelltoad
|
21
22
|
* open, op [number] - open error page in browser
|
22
23
|
|
23
24
|
Shelltoad supports 'magicfind' in all commands:
|
@@ -46,7 +47,7 @@ ActiveRecord::StatementInvalid: PGError: ERROR: duplicate key value violates uni
|
|
46
47
|
# Do changes you want
|
47
48
|
$ git add .
|
48
49
|
#only git is supported right now
|
49
|
-
$ shelltoad commit 713
|
50
|
+
$ shelltoad commit -m "Fixed concurrent db queries problem for company_relations table" 713
|
50
51
|
[dev 47f09ec] http://xxx.hoptoadapp.com//errors/4023713
|
51
52
|
1 files changed, 1 insertions(+), 1 deletions(-)</code></pre>
|
52
53
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.5
|
data/lib/shelltoad/command.rb
CHANGED
@@ -21,7 +21,7 @@ class Shelltoad
|
|
21
21
|
output error.view
|
22
22
|
end
|
23
23
|
when "commit", "ci"
|
24
|
-
commit(args
|
24
|
+
commit(*args)
|
25
25
|
when "resolve", "rv"
|
26
26
|
magic_find(args.shift) do |error|
|
27
27
|
error.resolve!
|
@@ -57,9 +57,20 @@ class Shelltoad
|
|
57
57
|
Shelltoad.output(*args)
|
58
58
|
end
|
59
59
|
|
60
|
-
def commit(
|
61
|
-
|
62
|
-
|
60
|
+
def commit(*args)
|
61
|
+
opts = OptionParser.new do |opts|
|
62
|
+
opts.banner = "Do git commit with information from pivotal story"
|
63
|
+
opts.on("-m [MESSAGE]", "Add addional MESSAGE to comit") do |message|
|
64
|
+
@message = message
|
65
|
+
end
|
66
|
+
end
|
67
|
+
opts.parse!(args)
|
68
|
+
|
69
|
+
unless self.changes_staged?
|
70
|
+
raise Shelltoad::BaseException, "No changes staged with git."
|
71
|
+
end
|
72
|
+
magic_find(args.shift) do |error|
|
73
|
+
output error.commit!(@message)
|
63
74
|
end
|
64
75
|
end # commit(id, args)
|
65
76
|
|
@@ -71,6 +82,10 @@ class Shelltoad
|
|
71
82
|
end
|
72
83
|
end
|
73
84
|
|
85
|
+
def changes_staged?
|
86
|
+
!`git diff --staged`.empty?
|
87
|
+
end
|
88
|
+
|
74
89
|
def display_help
|
75
90
|
output <<-EOI
|
76
91
|
Usage: shelltoad command [<args>]
|
data/lib/shelltoad/error.rb
CHANGED
@@ -59,6 +59,7 @@ class Shelltoad
|
|
59
59
|
URI.parse("#{Configuration.secure? ? "https" : "http"}://#{Configuration.account}.hoptoadapp.com")
|
60
60
|
end
|
61
61
|
|
62
|
+
|
62
63
|
#
|
63
64
|
# API
|
64
65
|
#
|
@@ -84,12 +85,21 @@ class Shelltoad
|
|
84
85
|
EOI
|
85
86
|
end
|
86
87
|
|
87
|
-
def commit!
|
88
|
-
message = <<-EOI.gsub(/`/, "'")
|
89
|
-
#{url.to_s}
|
90
88
|
|
91
|
-
|
92
|
-
|
89
|
+
def commit!(custom_message)
|
90
|
+
|
91
|
+
message = ""
|
92
|
+
unless custom_message.nil? || custom_message.strip.empty?
|
93
|
+
message << custom_message + "\n"
|
94
|
+
message << "\n"
|
95
|
+
end
|
96
|
+
message << url.to_s + "\n"
|
97
|
+
if custom_message.nil? || custom_message.strip.empty?
|
98
|
+
message << "\n"
|
99
|
+
end
|
100
|
+
message << self.error_message + "\n"
|
101
|
+
message.gsub!(/`/, "'")
|
102
|
+
|
93
103
|
output = `git commit -m "#{message}"`
|
94
104
|
if $?.success?
|
95
105
|
resolve!
|
data/shelltoad.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{shelltoad}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bogdan Gusiev"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-05-31}
|
13
13
|
s.default_executable = %q{shelltoad}
|
14
14
|
s.description = %q{
|
15
15
|
}
|
@@ -53,15 +53,18 @@ Gem::Specification.new do |s|
|
|
53
53
|
s.add_runtime_dependency(%q<rake>, [">= 0"])
|
54
54
|
s.add_runtime_dependency(%q<hoptoad-api>, [">= 0"])
|
55
55
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
56
|
+
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
56
57
|
else
|
57
58
|
s.add_dependency(%q<rake>, [">= 0"])
|
58
59
|
s.add_dependency(%q<hoptoad-api>, [">= 0"])
|
59
60
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
61
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
60
62
|
end
|
61
63
|
else
|
62
64
|
s.add_dependency(%q<rake>, [">= 0"])
|
63
65
|
s.add_dependency(%q<hoptoad-api>, [">= 0"])
|
64
66
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
67
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
65
68
|
end
|
66
69
|
end
|
67
70
|
|
data/spec/shelltoad_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe Shelltoad do
|
|
11
11
|
subject { Shelltoad.run(*args) }
|
12
12
|
|
13
13
|
|
14
|
-
[["error", TEST_ERROR], "errors",
|
14
|
+
[["error", TEST_ERROR], "errors", ["resolve", TEST_ERROR]].each do |command|
|
15
15
|
describe "command:#{command.inspect}" do
|
16
16
|
let(:args) { Array(command) }
|
17
17
|
it { should == 0 }
|
@@ -25,13 +25,35 @@ describe Shelltoad do
|
|
25
25
|
Shelltoad::Configuration.stubs(:browser).returns("true")
|
26
26
|
end
|
27
27
|
it {should == 0}
|
28
|
-
|
28
|
+
|
29
29
|
end
|
30
30
|
|
31
31
|
describe "help commad" do
|
32
32
|
let(:args) { "help" }
|
33
33
|
it {should == 0}
|
34
34
|
end
|
35
|
+
|
36
|
+
describe "commit command" do
|
37
|
+
subject { Shelltoad.run("commit", TEST_ERROR, *_args) }
|
38
|
+
before(:each) do
|
39
|
+
Shelltoad::Command.stubs(:changes_staged?).returns(_staged)
|
40
|
+
end
|
41
|
+
|
42
|
+
let(:_staged) { true }
|
43
|
+
let(:_args) { [] }
|
44
|
+
it { should == 0 }
|
45
|
+
|
46
|
+
context "when no changes staged in git" do
|
47
|
+
let(:_staged) { false }
|
48
|
+
it { should == 1 }
|
49
|
+
end
|
50
|
+
|
51
|
+
context "when -m argument specified" do
|
52
|
+
let(:_args) { ["-m", "My commit"]}
|
53
|
+
it {should == 0}
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
35
57
|
end
|
36
58
|
|
37
59
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,9 +5,29 @@ require "net/http"
|
|
5
5
|
require 'rspec'
|
6
6
|
require "mocha"
|
7
7
|
require "fakeweb"
|
8
|
+
require "http_logger"
|
9
|
+
|
10
|
+
|
11
|
+
unless File.exists?(".shelltoadrc")
|
12
|
+
f = File.new(".shelltoadrc", "w")
|
13
|
+
f << YAML.dump(
|
14
|
+
"project" => "startdatelabs",
|
15
|
+
"key" => "123456",
|
16
|
+
"secure" => true
|
17
|
+
)
|
18
|
+
f.close
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
8
23
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),'..','lib'))
|
9
24
|
require "shelltoad"
|
10
25
|
|
26
|
+
require "fileutils"
|
27
|
+
require "logger"
|
28
|
+
|
29
|
+
FileUtils.rm_f("http.log")
|
30
|
+
Net::HTTP.logger = Logger.new("http.log")
|
11
31
|
|
12
32
|
TEST_ERROR = 4040123
|
13
33
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shelltoad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 5
|
10
|
+
version: 0.4.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bogdan Gusiev
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-31 00:00:00 +03:00
|
19
19
|
default_executable: shelltoad
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -60,6 +60,20 @@ dependencies:
|
|
60
60
|
version: "0"
|
61
61
|
requirement: *id003
|
62
62
|
type: :development
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
prerelease: false
|
65
|
+
name: ruby-debug
|
66
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
75
|
+
requirement: *id004
|
76
|
+
type: :development
|
63
77
|
description: |
|
64
78
|
|
65
79
|
|