speg 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/speg/file_generator.rb +24 -0
- data/lib/speg/version.rb +1 -1
- data/spec/lib/speg/file_generator_spec.rb +13 -6
- data/spec/lib/speg/version_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a4c449ed21d40ab9729e6b8a3b26394b1c418cc6b8a25d4871795ca79fd8d79
|
4
|
+
data.tar.gz: 1573a3aec16025edcbd0c606ca786b906f3aa597491b0d68798332c6a7dd7b02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc6efd077222998078ffe8960cc33b29adebf54bcdecfb55ce5b1c445d71341fd6483e3c69d7a363fb9b36832d4746661ff0a55186c7a92147d966297f1ac287
|
7
|
+
data.tar.gz: 88b556b1f5f1fc53f0c04aa9807bf28b24c3e7a2aee1e4e1d6ac0cad3c0c86f00a8a646821be5127ba85b83d25588256c696fe67664cad11a29e87634b9307f9
|
data/lib/speg/file_generator.rb
CHANGED
@@ -16,6 +16,14 @@ module Speg
|
|
16
16
|
|
17
17
|
@option_parser.on('--minitest', 'Generate Minitest files') { generate_test_files('test') }
|
18
18
|
|
19
|
+
@option_parser.on('-sg', '--spec_generate ARGUEMENT', 'generate single spec file') do |file_path|
|
20
|
+
generate_single_test_file('spec', file_path)
|
21
|
+
end
|
22
|
+
|
23
|
+
@option_parser.on('-tg', '--test_generate ARGUEMENT', 'generate single test file') do |file_path|
|
24
|
+
generate_single_test_file('test', file_path)
|
25
|
+
end
|
26
|
+
|
19
27
|
if ARGV.empty?
|
20
28
|
puts @option_parser.help
|
21
29
|
exit
|
@@ -24,6 +32,22 @@ module Speg
|
|
24
32
|
@option_parser.parse!
|
25
33
|
end
|
26
34
|
|
35
|
+
def generate_single_test_file(test_framework, file_path)
|
36
|
+
path = file_path.split('/')
|
37
|
+
file_name = "#{path.last.split('.').first}_#{test_framework}.rb"
|
38
|
+
klass_name = File.basename(path.last, '.rb').split('_').map(&:humanize).join('')
|
39
|
+
path.pop
|
40
|
+
path.shift
|
41
|
+
path << file_name
|
42
|
+
file = "#{test_framework}/#{path.join('/')}"
|
43
|
+
|
44
|
+
if test_framework == 'test'
|
45
|
+
minitest_template(file, klass_name)
|
46
|
+
else
|
47
|
+
rspec_template(file, klass_name)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
27
51
|
def generate_test_files(file_suffix)
|
28
52
|
PATHS.each do |path|
|
29
53
|
next unless Dir.exist?(path)
|
data/lib/speg/version.rb
CHANGED
@@ -5,8 +5,8 @@ RSpec.describe Speg::FileGenerator do
|
|
5
5
|
let(:path){ ['spec/lib/models'] }
|
6
6
|
let(:file_path) { 'spec/lib/models/dummy_model_spec.rb' }
|
7
7
|
|
8
|
-
|
9
|
-
before
|
8
|
+
describe 'generate file' do
|
9
|
+
before do
|
10
10
|
stub_const('Speg::FileGenerator::PATHS', path)
|
11
11
|
described_class.new.generate_test_files('spec')
|
12
12
|
end
|
@@ -14,10 +14,6 @@ RSpec.describe Speg::FileGenerator do
|
|
14
14
|
it 'generates a spec file' do
|
15
15
|
expect(File.exist?('spec/lib/models/test_spec.rb')).to be_truthy
|
16
16
|
end
|
17
|
-
|
18
|
-
xit 'skips existing files' do
|
19
|
-
expect(described_class.new.generate_test_files('spec')).not_to eq file_path
|
20
|
-
end
|
21
17
|
end
|
22
18
|
|
23
19
|
context '#rspec_template' do
|
@@ -31,4 +27,15 @@ RSpec.describe Speg::FileGenerator do
|
|
31
27
|
expect(File.read(file_path)).to include('RSpec.describe DummyModel')
|
32
28
|
end
|
33
29
|
end
|
30
|
+
|
31
|
+
describe '#generate_single_test_file' do
|
32
|
+
before do
|
33
|
+
path = 'spec/lib/models/dummy.rb'
|
34
|
+
described_class.new.generate_single_test_file('test', path)
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'generates single test file' do
|
38
|
+
expect(File.exist?('test/lib/models/dummy_test.rb')).to be_truthy
|
39
|
+
end
|
40
|
+
end
|
34
41
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
require 'fileutils'
|
3
3
|
RSpec.configure do |config|
|
4
4
|
# Enable flags like --only-failures and --next-failure
|
5
5
|
config.example_status_persistence_file_path = ".rspec_status"
|
@@ -16,7 +16,8 @@ RSpec.configure do |config|
|
|
16
16
|
spec_file = File.expand_path('spec/lib/models/dummy_model_spec.rb')
|
17
17
|
file = File.expand_path('spec/lib/models/test_spec.rb')
|
18
18
|
|
19
|
-
File.delete(file)
|
20
|
-
File.delete(spec_file)
|
19
|
+
File.delete(file) if File.exist?(file)
|
20
|
+
File.delete(spec_file) if File.exist?(spec_file)
|
21
|
+
FileUtils.rm_rf('test')
|
21
22
|
end
|
22
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: speg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Opara Ifeanyi Christian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|