speg 1.1.2 → 1.2.0
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.
- 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
|