cspec 0.2.3 → 0.2.6
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/Gemfile.lock +9 -1
- data/cspec.gemspec +2 -0
- data/examples/advance/Gemfile.lock +1 -1
- data/examples/advance/myspec.rb +1 -1
- data/examples/basic/Gemfile.lock +1 -1
- data/examples/basic/specs.csv +1 -2
- data/examples/class_methods/Gemfile.lock +1 -1
- data/examples/method_args/Gemfile.lock +1 -1
- data/lib/cspec/data_type.rb +13 -6
- data/lib/cspec/results_outputter.rb +1 -3
- data/lib/cspec/runner.rb +14 -4
- data/lib/cspec/spec.rb +23 -3
- data/lib/cspec/validator.rb +1 -1
- data/lib/cspec/version.rb +1 -1
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6585f0b209286fd400bb3a5b0060ee7fe4fddaa0c08f0f9414290fc5dd3caeb4
|
4
|
+
data.tar.gz: df2ad99481481d95c1dd725056f0081d36720ebb831677a28319b98b05bff620
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c64fce21bf149f25e96ae6daa3149aeb240629004c5202375afa03d2194d45744b473e1e38b68cb3ae97bde4d853bc5f46099711ab2b3695da08cd05f2c9f7e8
|
7
|
+
data.tar.gz: 27e351c8aefd2bcc7e930e9c7073412bb8141c856dabe3eeed9568832efb93e66084f5e3cef5dab7154b72cacb231457ed229dbe8d858494724f3c37cf8d9ea5
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cspec (0.2.
|
4
|
+
cspec (0.2.5)
|
5
|
+
colorize (~> 0.8.1)
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
8
9
|
specs:
|
10
|
+
coderay (1.1.3)
|
11
|
+
colorize (0.8.1)
|
9
12
|
diff-lcs (1.5.0)
|
10
13
|
docile (1.4.0)
|
14
|
+
method_source (1.0.0)
|
15
|
+
pry (0.14.1)
|
16
|
+
coderay (~> 1.1)
|
17
|
+
method_source (~> 1.0)
|
11
18
|
rake (10.5.0)
|
12
19
|
rspec (3.11.0)
|
13
20
|
rspec-core (~> 3.11.0)
|
@@ -35,6 +42,7 @@ PLATFORMS
|
|
35
42
|
DEPENDENCIES
|
36
43
|
bundler (~> 1.17)
|
37
44
|
cspec!
|
45
|
+
pry
|
38
46
|
rake (~> 10.0)
|
39
47
|
rspec (~> 3.0)
|
40
48
|
simplecov
|
data/cspec.gemspec
CHANGED
@@ -38,7 +38,9 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
39
39
|
spec.require_paths = ['lib']
|
40
40
|
|
41
|
+
spec.add_dependency 'colorize', '~> 0.8.1'
|
41
42
|
spec.add_development_dependency 'bundler', '~> 1.17'
|
43
|
+
spec.add_development_dependency 'pry'
|
42
44
|
spec.add_development_dependency 'rake', '~> 10.0'
|
43
45
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
44
46
|
spec.add_development_dependency 'simplecov'
|
data/examples/advance/myspec.rb
CHANGED
data/examples/basic/Gemfile.lock
CHANGED
data/examples/basic/specs.csv
CHANGED
data/lib/cspec/data_type.rb
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
|
3
3
|
module CSpec
|
4
4
|
module DataType
|
5
|
+
MATCHERS = [
|
6
|
+
{ condition: /^\d+\.\d+$/, proc: proc { |input| input.to_f } },
|
7
|
+
{ condition: /^\d+$/, proc: proc { |input| input.to_i } },
|
8
|
+
{ condition: /true/, proc: proc { true } },
|
9
|
+
{ condition: /^\[.*\]$/, proc: proc { |input| eval(input) } },
|
10
|
+
{ condition: /false/, proc: proc { false } },
|
11
|
+
{ condition: /nil/, proc: proc { nil } },
|
12
|
+
{ condition: /^$/, proc: proc { nil } }
|
13
|
+
].freeze
|
14
|
+
|
5
15
|
def self.convert_all(inputs)
|
6
16
|
return nil unless inputs
|
7
17
|
|
@@ -12,12 +22,9 @@ module CSpec
|
|
12
22
|
return input unless input.instance_of?(String)
|
13
23
|
|
14
24
|
input = input.strip
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
return true if input == 'true'
|
19
|
-
return false if input == 'false'
|
20
|
-
return nil if ['', nil, 'nil'].include?(input)
|
25
|
+
MATCHERS.each do |matcher|
|
26
|
+
return matcher[:proc].call(input) if input.match?(matcher[:condition])
|
27
|
+
end
|
21
28
|
|
22
29
|
input.to_s
|
23
30
|
end
|
data/lib/cspec/runner.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'colorize'
|
4
|
+
|
3
5
|
module CSpec
|
4
6
|
module Runner
|
5
7
|
def self.run!(filepath)
|
@@ -8,12 +10,20 @@ module CSpec
|
|
8
10
|
specs = Loader.load(filepath)
|
9
11
|
return false if process_errors(::CSpec::Validator.validate_specs(specs))
|
10
12
|
|
11
|
-
results = run(specs)
|
13
|
+
success = CSpec::Result.success?(results = run(specs))
|
12
14
|
|
13
|
-
|
15
|
+
present_result(success, results)
|
16
|
+
end
|
14
17
|
|
15
|
-
|
16
|
-
|
18
|
+
def self.present_result(success, results)
|
19
|
+
if success
|
20
|
+
puts 'Success'.green
|
21
|
+
true
|
22
|
+
else
|
23
|
+
puts 'Failure'.red
|
24
|
+
puts ResultsOutputter.display(results).red
|
25
|
+
false
|
26
|
+
end
|
17
27
|
end
|
18
28
|
|
19
29
|
def self.run(specs)
|
data/lib/cspec/spec.rb
CHANGED
@@ -30,15 +30,35 @@ module CSpec
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def error
|
33
|
-
return "#{self.class} does not exist" unless Object.const_defined?(self.class)
|
33
|
+
return ["#{self.class} does not exist"] unless Object.const_defined?(self.class)
|
34
34
|
|
35
|
-
|
35
|
+
errors = []
|
36
36
|
|
37
|
-
|
37
|
+
errors += send("#{type}_errors")
|
38
|
+
|
39
|
+
errors.size.positive? ? errors.flatten : nil
|
38
40
|
end
|
39
41
|
|
40
42
|
def to_s
|
41
43
|
"name: #{name}, class: #{self.class}, method: #{method}, method_args: #{method_args}"
|
42
44
|
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def class_errors
|
49
|
+
if Object.const_get(self.class).respond_to?(method.to_sym)
|
50
|
+
[]
|
51
|
+
else
|
52
|
+
["#{type} method: #{self.class}##{method} does not exist"]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def instance_errors
|
57
|
+
if !Object.const_get(self.class)&.method_defined?(method.to_sym)
|
58
|
+
["#{type} method: #{self.class}##{method} does not exist"]
|
59
|
+
else
|
60
|
+
[]
|
61
|
+
end
|
62
|
+
end
|
43
63
|
end
|
44
64
|
end
|
data/lib/cspec/validator.rb
CHANGED
data/lib/cspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jarrod Folino
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: colorize
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.8.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.8.1
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +38,20 @@ dependencies:
|
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '1.17'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: rake
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|