method_match 0.0.5 → 0.0.6
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/README.md
CHANGED
@@ -1,6 +1,24 @@
|
|
1
1
|
# MethodMatch [](http://travis-ci.org/tiokksar/method_match)
|
2
2
|
|
3
|
-
Tiny gem for
|
3
|
+
Tiny gem for running specs for given file and line.
|
4
|
+
It runs specs for given file based on line number and file name.
|
5
|
+
|
6
|
+
[TDD workflow using Tmux, Pry, nviennot's irb-config, and method_match gem.](http://ascii.io/a/1801)
|
7
|
+
|
8
|
+
##Convensions
|
9
|
+
|
10
|
+
Gem is based on convention that spec for:
|
11
|
+
|
12
|
+
class YourClass
|
13
|
+
def your_method
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
should be in your_class.rb in:
|
18
|
+
|
19
|
+
describe '#your_method' do
|
20
|
+
#(...)
|
21
|
+
end
|
4
22
|
|
5
23
|
## Installation
|
6
24
|
|
@@ -18,7 +36,7 @@ Or install it yourself as:
|
|
18
36
|
|
19
37
|
## Usage
|
20
38
|
|
21
|
-
|
39
|
+
Watch demo [screencast](http://ascii.io/a/1801) for suggested workfolow.
|
22
40
|
|
23
41
|
## Contributing
|
24
42
|
|
data/data/test_data/matcher.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
#doesn't do anything - for specs
|
1
2
|
module MethodMatch
|
2
3
|
class Matcher
|
3
4
|
attr_accessor :name, :line
|
4
5
|
|
6
|
+
#some comment
|
5
7
|
def initialize name, line
|
6
8
|
@name = name
|
7
9
|
@line = line
|
@@ -12,6 +14,10 @@ module MethodMatch
|
|
12
14
|
end
|
13
15
|
|
14
16
|
default_scope shoudlnt_match_this
|
17
|
+
|
18
|
+
def self.some_class_method
|
19
|
+
|
20
|
+
end
|
15
21
|
end
|
16
22
|
|
17
23
|
end
|
@@ -16,9 +16,14 @@ module MethodMatch
|
|
16
16
|
|
17
17
|
def rspec_command
|
18
18
|
command = "rspec #{@matcher.spec_name}"
|
19
|
-
command += " -e '
|
19
|
+
command += " -e '#{rspec_method}'" if @matcher.method_name
|
20
20
|
command += ":#{@matcher.line}" if @matcher.spec?
|
21
21
|
command
|
22
22
|
end
|
23
|
+
|
24
|
+
def rspec_method
|
25
|
+
return @matcher.method_name.sub('self.', '.') if @matcher.method_name[0..4] == 'self.'
|
26
|
+
"##{@matcher.method_name}"
|
27
|
+
end
|
23
28
|
end
|
24
29
|
end
|
data/lib/method_match/version.rb
CHANGED
data/method_match.gemspec
CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = MethodMatch::VERSION
|
9
9
|
gem.authors = ["Tomasz Tokarski"]
|
10
10
|
gem.email = ["tomasz@tomasztokarski.com"]
|
11
|
-
gem.description = %q{Method name matcher and
|
12
|
-
gem.summary = %q{
|
13
|
-
gem.homepage = "
|
11
|
+
gem.description = %q{Method name matcher and spec runner for given file and line}
|
12
|
+
gem.summary = %q{It runs specs for given file based on line number and file name. Supposed to be used with pry, tmux, and vim}
|
13
|
+
gem.homepage = "http://tomasztokarski.com/method_match"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -1,10 +1,14 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
|
-
describe MethodMatch::
|
3
|
-
let(:matcher){MethodMatch::Matcher.new 'data/test_data/matcher.rb',
|
2
|
+
describe MethodMatch::CommandRunner do
|
3
|
+
let(:matcher){MethodMatch::Matcher.new 'data/test_data/matcher.rb', 13}
|
4
4
|
let(:command_runner){MethodMatch::CommandRunner.new matcher}
|
5
5
|
|
6
6
|
describe '#rspec_command' do
|
7
7
|
subject { command_runner.rspec_command }
|
8
8
|
it { should eq('rspec spec/test_data/matcher_spec.rb -e \'#parse_file\'')}
|
9
|
+
context "class method" do
|
10
|
+
let(:matcher){MethodMatch::Matcher.new 'data/test_data/matcher.rb', 19}
|
11
|
+
it { should eq('rspec spec/test_data/matcher_spec.rb -e \'.some_class_method\'')}
|
12
|
+
end
|
9
13
|
end
|
10
14
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
2
2
|
describe MethodMatch::Matcher do
|
3
|
-
let(:matcher){MethodMatch::Matcher.new 'data/test_data/matcher.rb',
|
3
|
+
let(:matcher){MethodMatch::Matcher.new 'data/test_data/matcher.rb', 13}
|
4
4
|
subject {matcher}
|
5
5
|
its(:name){ should eq('data/test_data/matcher.rb')}
|
6
6
|
|
@@ -11,12 +11,12 @@ describe MethodMatch::Matcher do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
context 'rails model' do
|
14
|
-
let(:matcher){MethodMatch::Matcher.new 'app/models/model.rb',
|
14
|
+
let(:matcher){MethodMatch::Matcher.new 'app/models/model.rb', 13}
|
15
15
|
it { should eq('spec/models/model_spec.rb')}
|
16
16
|
end
|
17
17
|
|
18
18
|
context 'spec' do
|
19
|
-
let(:matcher){MethodMatch::Matcher.new 'spec/some_spec.rb',
|
19
|
+
let(:matcher){MethodMatch::Matcher.new 'spec/some_spec.rb', 13}
|
20
20
|
it { should eq('spec/some_spec.rb')}
|
21
21
|
end
|
22
22
|
end
|
@@ -24,7 +24,7 @@ describe MethodMatch::Matcher do
|
|
24
24
|
describe '#method_name' do
|
25
25
|
subject { matcher.method_name }
|
26
26
|
context 'spec' do
|
27
|
-
let(:matcher){MethodMatch::Matcher.new 'spec/some_spec.rb',
|
27
|
+
let(:matcher){MethodMatch::Matcher.new 'spec/some_spec.rb', 13}
|
28
28
|
it { should be_nil}
|
29
29
|
end
|
30
30
|
|
@@ -36,6 +36,11 @@ describe MethodMatch::Matcher do
|
|
36
36
|
context 'test class' do
|
37
37
|
it { should eq('parse_file')}
|
38
38
|
end
|
39
|
+
|
40
|
+
context 'class method' do
|
41
|
+
let(:matcher){MethodMatch::Matcher.new 'data/test_data/matcher.rb', 19}
|
42
|
+
it { should eq('self.some_class_method')}
|
43
|
+
end
|
39
44
|
end
|
40
45
|
|
41
46
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: method_match
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Tomasz Tokarski
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
61
|
name: rake
|
62
|
-
description: Method name matcher and
|
62
|
+
description: Method name matcher and spec runner for given file and line
|
63
63
|
email:
|
64
64
|
- tomasz@tomasztokarski.com
|
65
65
|
executables: []
|
@@ -82,7 +82,7 @@ files:
|
|
82
82
|
- spec/method_match/command_runner_spec.rb
|
83
83
|
- spec/method_match/matcher_spec.rb
|
84
84
|
- spec/spec_helper.rb
|
85
|
-
homepage:
|
85
|
+
homepage: http://tomasztokarski.com/method_match
|
86
86
|
licenses: []
|
87
87
|
post_install_message:
|
88
88
|
rdoc_options: []
|
@@ -105,7 +105,8 @@ rubyforge_project:
|
|
105
105
|
rubygems_version: 1.8.24
|
106
106
|
signing_key:
|
107
107
|
specification_version: 3
|
108
|
-
summary:
|
108
|
+
summary: It runs specs for given file based on line number and file name. Supposed
|
109
|
+
to be used with pry, tmux, and vim
|
109
110
|
test_files:
|
110
111
|
- spec/method_match/command_runner_spec.rb
|
111
112
|
- spec/method_match/matcher_spec.rb
|