cspec 0.2.2 → 0.2.3
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 +1 -1
- data/README.md +2 -2
- data/examples/basic/myspec.rb +2 -2
- data/examples/basic/specs.csv +3 -11
- data/lib/cspec/data_type.rb +2 -0
- data/lib/cspec/loader.rb +2 -2
- data/lib/cspec/result.rb +1 -1
- data/lib/cspec/runner.rb +9 -5
- data/lib/cspec/spec.rb +9 -1
- data/lib/cspec/validator.rb +5 -1
- data/lib/cspec/version.rb +1 -1
- 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: 33a7923727e5bed051ce65388598a0312fa182a1126d8918e4e1229209853642
|
4
|
+
data.tar.gz: 203ff7ba672c258a6858a29d7f6ccdb5121708198ac91ac20eb8eea1bca14119
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0556b01b0fa012e11b77376c9746303927b4e595b8e9b236ac2134ee56a341c2d16ebd84f53c1665041dc1626b7a07c069b0b27c9cef28a1472ba7874e2f3437
|
7
|
+
data.tar.gz: 57307e7c92ac8129f7c1309bc7eb3db87b6bfba6ff9a5e01cbf70510511121d36402bcc1b87f0fd3f22dc18d550e3d47a9cf193b10d1bd51daa684aaea08ac79
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -12,7 +12,7 @@ The goal of this project is to have a centralised location where all specs can b
|
|
12
12
|
```
|
13
13
|
* Create a CSV named `specs.csv` with the following spec
|
14
14
|
```csv
|
15
|
-
class,name,type,
|
15
|
+
class,name,type,initialization_arg_1,method,method_arg_1,expected
|
16
16
|
MyClass,my test,,hello,,world
|
17
17
|
```
|
18
18
|
* Create a file named `my_csv_specs.rb` to run the specs
|
@@ -31,4 +31,4 @@ result = CSpec::Runner.run!("#{Dir.pwd}/specs.csv")
|
|
31
31
|
puts "Success: #{result}"
|
32
32
|
```
|
33
33
|
|
34
|
-
* Run with `ruby my_csv_specs.rb`
|
34
|
+
* Run with `ruby my_csv_specs.rb`
|
data/examples/basic/myspec.rb
CHANGED
data/examples/basic/specs.csv
CHANGED
@@ -1,12 +1,4 @@
|
|
1
|
-
class,name,type,method,
|
2
|
-
MyClass,my test,instance,
|
3
|
-
MyClass,my test,instance,
|
4
|
-
MyClass,my test,instance,hello2,aaa,world2aaa
|
5
|
-
MyClass,my test,instance,hello,,world
|
6
|
-
MyClass,my test,instance,hello2,aaa,world2aaa
|
7
|
-
MyClass,my test,instance,hello,,world
|
8
|
-
MyClass,my test,instance,hello2,aaa,world2aaa
|
9
|
-
MyClass,my test,instance,hello,,world
|
10
|
-
MyClass,my test,instance,hello2,aaa,world2aaa
|
11
|
-
MyClass,my test,instance,hello,,world
|
1
|
+
class,name,type,method,expected
|
2
|
+
MyClass,my test,instance,hello,world
|
3
|
+
MyClass,my test,instance,ok?,true
|
12
4
|
|
data/lib/cspec/data_type.rb
CHANGED
@@ -15,6 +15,8 @@ module CSpec
|
|
15
15
|
return input.to_f if input =~ /^\d+\.\d+$/
|
16
16
|
return input.to_i if input =~ /^\d+$/
|
17
17
|
return eval(input) if input =~ /^\[.*\]$/
|
18
|
+
return true if input == 'true'
|
19
|
+
return false if input == 'false'
|
18
20
|
return nil if ['', nil, 'nil'].include?(input)
|
19
21
|
|
20
22
|
input.to_s
|
data/lib/cspec/loader.rb
CHANGED
@@ -23,9 +23,9 @@ module CSpec
|
|
23
23
|
})
|
24
24
|
end
|
25
25
|
|
26
|
-
def self.
|
26
|
+
def self.validate_structure(filename)
|
27
27
|
headers = CSV.open(filename, &:readline)
|
28
|
-
::CSpec::Validator.
|
28
|
+
::CSpec::Validator.validate_structure(headers)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/lib/cspec/result.rb
CHANGED
data/lib/cspec/runner.rb
CHANGED
@@ -3,12 +3,11 @@
|
|
3
3
|
module CSpec
|
4
4
|
module Runner
|
5
5
|
def self.run!(filepath)
|
6
|
-
|
7
|
-
|
8
|
-
puts errors
|
9
|
-
return false
|
10
|
-
end
|
6
|
+
return false if process_errors(Loader.validate_structure(filepath))
|
7
|
+
|
11
8
|
specs = Loader.load(filepath)
|
9
|
+
return false if process_errors(::CSpec::Validator.validate_specs(specs))
|
10
|
+
|
12
11
|
results = run(specs)
|
13
12
|
|
14
13
|
return true if CSpec::Result.success?(results)
|
@@ -27,5 +26,10 @@ module CSpec
|
|
27
26
|
Result.from_spec(spec, e.inspect)
|
28
27
|
end
|
29
28
|
end
|
29
|
+
|
30
|
+
def self.process_errors(errors)
|
31
|
+
puts errors unless errors.empty?
|
32
|
+
!errors.empty?
|
33
|
+
end
|
30
34
|
end
|
31
35
|
end
|
data/lib/cspec/spec.rb
CHANGED
@@ -29,8 +29,16 @@ module CSpec
|
|
29
29
|
initialization_args == other.initialization_args
|
30
30
|
end
|
31
31
|
|
32
|
+
def error
|
33
|
+
return "#{self.class} does not exist" unless Object.const_defined?(self.class)
|
34
|
+
|
35
|
+
return "#{type} method: #{method} does not exist" unless Object.const_get(self.class).method_defined?(method)
|
36
|
+
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
|
32
40
|
def to_s
|
33
|
-
"name: #{name}, class: #{self.class}, method: #{method},"
|
41
|
+
"name: #{name}, class: #{self.class}, method: #{method}, method_args: #{method_args}"
|
34
42
|
end
|
35
43
|
end
|
36
44
|
end
|
data/lib/cspec/validator.rb
CHANGED
@@ -2,10 +2,14 @@
|
|
2
2
|
|
3
3
|
module CSpec
|
4
4
|
module Validator
|
5
|
-
def self.
|
5
|
+
def self.validate_structure(headers)
|
6
6
|
%w[class type name method expected].map do |required_header|
|
7
7
|
"Need header: #{required_header}" unless headers.include?(required_header)
|
8
8
|
end.reject(&:nil?)
|
9
9
|
end
|
10
|
+
|
11
|
+
def self.validate_specs(specs)
|
12
|
+
specs.map(&:error).reject(&:nil?)
|
13
|
+
end
|
10
14
|
end
|
11
15
|
end
|
data/lib/cspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.3
|
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-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|