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 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