r2m 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/r2m +2 -45
- data/lib/r2m/command.rb +35 -0
- data/lib/r2m/processor.rb +39 -0
- data/lib/r2m/version.rb +1 -1
- data/r2m.gemspec +2 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a72dfc7602cc2dd37659e5c4eb4c16e8e10b332efb55a93e50eaad9678710da
|
4
|
+
data.tar.gz: '093d2cf507bf7b2eaf6c1eb18eb34f0b03de1692697644953c8213d0491fb13c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b8d460ca5d1eaf09fa203f790b314efb6b1ba83b4fc0750afc925be329ccdeb51ed3dc4cf6b2195fc8d6969d20a861acd0f8efdb70b9c18911a3c1240990c84
|
7
|
+
data.tar.gz: 5f6e1845d67c8a148d3bf00327fd1e0eae7e134784d3e5ac3029dfee61b8e3b61fdd240241615a285477028644bcd2ab56d1f5b09431fa867dd645e1e2b3a462
|
data/exe/r2m
CHANGED
@@ -2,50 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
|
-
require 'thor'
|
6
5
|
|
7
|
-
|
8
|
-
include Thor::Actions
|
6
|
+
require 'r2m/command'
|
9
7
|
|
10
|
-
|
11
|
-
argument :path, default: 'spec'
|
12
|
-
|
13
|
-
def self.exit_on_failure?
|
14
|
-
true
|
15
|
-
end
|
16
|
-
|
17
|
-
desc 'convert', 'Convert Rspec to MiniTest'
|
18
|
-
def convert
|
19
|
-
files.each { |file| process file }
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def process(file)
|
25
|
-
|
26
|
-
# it 'converts it"s to test method with # support' do # => def test_converts_it_s_to_test_method_with_support
|
27
|
-
convert_it_to_methods(file)
|
28
|
-
end
|
29
|
-
|
30
|
-
# Finds +it+ cases and converts to test methods declarations
|
31
|
-
#
|
32
|
-
# it 'converts it"s to test method with # support' do
|
33
|
-
# # => def test_converts_it_s_to_test_method_with_support
|
34
|
-
def convert_it_to_methods(file)
|
35
|
-
gsub_file(file, /(?<=\bit ').*?(?=' do\b)/) do |match|
|
36
|
-
match.gsub(/[^\w]+/, '_').downcase
|
37
|
-
end
|
38
|
-
|
39
|
-
gsub_file(file, /it '(.*)' do/, 'def test_\1')
|
40
|
-
end
|
41
|
-
|
42
|
-
def files
|
43
|
-
if Dir.exist?(path)
|
44
|
-
Dir.glob(File.join(path, '**', '*_test.rb'))
|
45
|
-
else
|
46
|
-
Dir.glob(path)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
R2MCommand.start
|
8
|
+
R2M::Command.start
|
data/lib/r2m/command.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
module R2M
|
5
|
+
class Command < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
default_command :convert
|
9
|
+
argument :path, default: 'spec'
|
10
|
+
|
11
|
+
def self.exit_on_failure?
|
12
|
+
true
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'convert', 'Convert Rspec to MiniTest'
|
16
|
+
|
17
|
+
def convert
|
18
|
+
files.each { |file| process file }
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def process(file)
|
24
|
+
Processor.new(self).process(file)
|
25
|
+
end
|
26
|
+
|
27
|
+
def files
|
28
|
+
if Dir.exist?(path)
|
29
|
+
Dir.glob(File.join(path, '**', '*_test.rb'))
|
30
|
+
else
|
31
|
+
Dir.glob(path)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
|
5
|
+
module R2M
|
6
|
+
# Process input RSpec and convert it to minitest
|
7
|
+
class Processor
|
8
|
+
def initialize(command)
|
9
|
+
@command = command
|
10
|
+
end
|
11
|
+
|
12
|
+
def process(file)
|
13
|
+
# it 'converts it"s to test method with # support' do # => def test_converts_it_s_to_test_method_with_support
|
14
|
+
convert_it_to_methods(file)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Finds +it+ cases and converts to test methods declarations
|
18
|
+
#
|
19
|
+
# it 'converts it"s to test method with # support' do
|
20
|
+
# # => def test_converts_it_s_to_test_method_with_support
|
21
|
+
def convert_it_to_methods(file)
|
22
|
+
@command.gsub_file(file, /(?<=\bit ').*?(?=' do\b)/) do |match|
|
23
|
+
match.gsub(/[^\w]+/, '_').downcase
|
24
|
+
end
|
25
|
+
|
26
|
+
@command.gsub_file(file, /it '(.*)' do/, 'def test_\1')
|
27
|
+
end
|
28
|
+
|
29
|
+
# Finds +be_empty+ RSpec matchers and converts to minitest matchers
|
30
|
+
#
|
31
|
+
# expect(target).to be_empty # => expect(target).must_be_empty
|
32
|
+
# expect(target).to_not be_empty # => expect(target).wont_be_empty
|
33
|
+
# expect(target).not_to be_empty # => expect(target).wont_be_empty
|
34
|
+
def convert_mather_be_empty(file)
|
35
|
+
@command.gsub_file(file, /\.to be_empty/, '.must_be_empty')
|
36
|
+
@command.gsub_file(file, /\.(to_not|not_to) be_empty/, '.wont_be_empty')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/r2m/version.rb
CHANGED
data/r2m.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r2m
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Keen
|
@@ -9,7 +9,21 @@ autorequire:
|
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
11
|
date: 2020-05-01 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
description: A command-line tool for converting RSpec files to minitest.
|
14
28
|
email:
|
15
29
|
- info@jetthoughts.com
|
@@ -32,6 +46,8 @@ files:
|
|
32
46
|
- exe/r2m
|
33
47
|
- exe/rspec2minitest
|
34
48
|
- lib/r2m.rb
|
49
|
+
- lib/r2m/command.rb
|
50
|
+
- lib/r2m/processor.rb
|
35
51
|
- lib/r2m/version.rb
|
36
52
|
- r2m.gemspec
|
37
53
|
homepage: https://github.com/jetthoughts/r2m
|