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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72a1418b1b185cae923d4b2670dc35fb6882a0a8a8c02c340c45e961f818c3aa
4
- data.tar.gz: b094e78a226085b0f513ee0b0311f194bae354228093f2667d8a33baa6c10c2e
3
+ metadata.gz: 0a4c449ed21d40ab9729e6b8a3b26394b1c418cc6b8a25d4871795ca79fd8d79
4
+ data.tar.gz: 1573a3aec16025edcbd0c606ca786b906f3aa597491b0d68798332c6a7dd7b02
5
5
  SHA512:
6
- metadata.gz: b1dc9eac30e5d64cc15f4167b4bf87338096f924592376d5e10ab7fc1879daef1bf8d848fcd9e25cdbebd24fac347a809e47d0df5ecf3b0c61d819a9987d0e19
7
- data.tar.gz: 4cc816c10626971feb55ae67880703166265e22b49b7aa1f23465b91471bba6c467825c2cb893d1155f8917352a46c6ea76407cb0a562f64eb51932bb92a06c2
6
+ metadata.gz: cc6efd077222998078ffe8960cc33b29adebf54bcdecfb55ce5b1c445d71341fd6483e3c69d7a363fb9b36832d4746661ff0a55186c7a92147d966297f1ac287
7
+ data.tar.gz: 88b556b1f5f1fc53f0c04aa9807bf28b24c3e7a2aee1e4e1d6ac0cad3c0c86f00a8a646821be5127ba85b83d25588256c696fe67664cad11a29e87634b9307f9
@@ -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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Speg
4
4
  class Version
5
- VERSION = '1.1.2'
5
+ VERSION = '1.2.0'
6
6
  end
7
7
  end
@@ -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
- context 'generate file' do
9
- before(:each) do
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
@@ -5,6 +5,6 @@ require_relative '../../../lib/speg/version'
5
5
 
6
6
  RSpec.describe Speg::Version do
7
7
  it 'has a version number' do
8
- expect(Speg::Version::VERSION).to eq '1.1.2'
8
+ expect(Speg::Version::VERSION).to eq '1.2.0'
9
9
  end
10
10
  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.1.2
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-26 00:00:00.000000000 Z
11
+ date: 2024-02-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties