zirconia 0.1.0 → 0.1.2
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/.rubocop.yml +2 -0
- data/Gemfile.lock +1 -1
- data/README.md +8 -1
- data/lib/zirconia/application.rb +34 -6
- data/lib/zirconia/version.rb +1 -1
- data/rbs_collection.lock.yaml +14 -0
- data/rbs_collection.yaml +29 -0
- data/sig/zirconia/application.rbs +11 -0
- data/zirconia.gemspec +2 -2
- metadata +6 -6
- data/sig/pathname.rbs +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db440a03bdfdad7203b071f4ea2f76c97c3d3e9be437f2a595731170199401d0
|
4
|
+
data.tar.gz: 55e1b5097d9704f14ac93874a7d84aa876102d7161649d1bf6e91a689886bd9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7833aa4a9f188a8d188117cb1e209abf07a954bae49bd30c9339b27122b70587007adf0f341d1d85899614831fee72e515f61cd5f38ad13aeab1d6ff4052c524
|
7
|
+
data.tar.gz: 750914b32c4d856264cc2caf0582cd32d283eb58ae1b3ac0b62f5dd53a72dbc57d059f1079735c312d34c0f84dd248e4eb42f31adddd340b6a8b2afe16a9bb62
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -29,7 +29,7 @@ require "zirconia/rspec"
|
|
29
29
|
```
|
30
30
|
|
31
31
|
- Instantiate a Zirconia Gem in your spec using the `with_gem: gem_name` metadata:
|
32
|
-
```
|
32
|
+
```ruby
|
33
33
|
require 'spec_helper'
|
34
34
|
|
35
35
|
RSpec.describe "Some Gem", with_gem: :some_gem do
|
@@ -89,6 +89,10 @@ The `_path` methods can be called with a variable amount of string path fragment
|
|
89
89
|
- Returns `Pathname` objects for paths in the gem named lib directory
|
90
90
|
- In a conventional Ruby gem filetree this is `some_gem/lib/some_gem/*.ext`
|
91
91
|
|
92
|
+
#### spec_path
|
93
|
+
- Returns `Pathname` objects for paths in the gem spec directory
|
94
|
+
- In a conventional Ruby gem filetree this is `some_gem/spec/*.ext`
|
95
|
+
|
92
96
|
#### main_file
|
93
97
|
- Returns a `Pathname` object
|
94
98
|
- This is the entrypoint to the gem application:
|
@@ -98,6 +102,9 @@ The `_path` methods can be called with a variable amount of string path fragment
|
|
98
102
|
- This method requires the fake gem into your current Ruby scope.
|
99
103
|
- Note that this process is not idempotent as gems will not be reloaded.
|
100
104
|
|
105
|
+
#### exec
|
106
|
+
- Accepts a string argument, which is passed to `bundle exec`.
|
107
|
+
- Returns the string output of the command
|
101
108
|
|
102
109
|
## Example
|
103
110
|
|
data/lib/zirconia/application.rb
CHANGED
@@ -7,24 +7,42 @@ module Zirconia
|
|
7
7
|
@name = name
|
8
8
|
end
|
9
9
|
|
10
|
+
def created?
|
11
|
+
@created == true
|
12
|
+
end
|
13
|
+
|
10
14
|
def create!
|
11
15
|
`bundle gem #{dir}`
|
16
|
+
|
17
|
+
@created = true
|
12
18
|
end
|
13
19
|
|
14
20
|
def load!
|
15
21
|
require main_file.to_s
|
16
22
|
end
|
17
23
|
|
18
|
-
def
|
19
|
-
|
24
|
+
def exec(command)
|
25
|
+
validate_gem_exists!
|
26
|
+
|
27
|
+
Dir.chdir(dir.to_s) do
|
28
|
+
`bundle exec #{command}`
|
29
|
+
end
|
20
30
|
end
|
21
31
|
|
22
|
-
def
|
23
|
-
build_path(
|
32
|
+
def gem_path(*fragments, ext: nil)
|
33
|
+
build_path(*fragments, dir:, ext:)
|
24
34
|
end
|
25
35
|
|
26
|
-
def
|
27
|
-
build_path(
|
36
|
+
def lib_path(*fragments, ext: :rb)
|
37
|
+
build_path(*fragments, dir: lib_dir, ext:)
|
38
|
+
end
|
39
|
+
|
40
|
+
def path(*fragments, ext: :rb)
|
41
|
+
build_path(*fragments, dir: gem_dir, ext:)
|
42
|
+
end
|
43
|
+
|
44
|
+
def spec_path(*fragments, ext: :rb)
|
45
|
+
build_path(*fragments, dir: spec_dir, ext:)
|
28
46
|
end
|
29
47
|
|
30
48
|
def main_file
|
@@ -45,6 +63,10 @@ module Zirconia
|
|
45
63
|
@gem_dir ||= lib_dir.join(name)
|
46
64
|
end
|
47
65
|
|
66
|
+
def spec_dir
|
67
|
+
@spec_dir ||= dir.join("spec")
|
68
|
+
end
|
69
|
+
|
48
70
|
def build_path(*fragments, dir:, ext:)
|
49
71
|
return dir if fragments.empty?
|
50
72
|
|
@@ -53,5 +75,11 @@ module Zirconia
|
|
53
75
|
|
54
76
|
dir.join(*fragments, file)
|
55
77
|
end
|
78
|
+
|
79
|
+
def validate_gem_exists!
|
80
|
+
return if created?
|
81
|
+
|
82
|
+
raise "gem does not exist"
|
83
|
+
end
|
56
84
|
end
|
57
85
|
end
|
data/lib/zirconia/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
---
|
2
|
+
sources:
|
3
|
+
- type: git
|
4
|
+
name: ruby/gem_rbs_collection
|
5
|
+
revision: 8149bc3fc0f720d935dc0592dc8886e03052f65f
|
6
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
7
|
+
repo_dir: gems
|
8
|
+
path: sig/gems
|
9
|
+
gems:
|
10
|
+
- name: pathname
|
11
|
+
version: '0'
|
12
|
+
source:
|
13
|
+
type: stdlib
|
14
|
+
gemfile_lock_path: Gemfile.lock
|
data/rbs_collection.yaml
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Download sources
|
2
|
+
sources:
|
3
|
+
- type: git
|
4
|
+
name: ruby/gem_rbs_collection
|
5
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
6
|
+
revision: main
|
7
|
+
repo_dir: gems
|
8
|
+
|
9
|
+
# You can specify local directories as sources also.
|
10
|
+
# - type: local
|
11
|
+
# path: path/to/your/local/repository
|
12
|
+
|
13
|
+
# A directory to install the downloaded RBSs
|
14
|
+
path: sig/gems
|
15
|
+
|
16
|
+
gems:
|
17
|
+
# Skip loading rbs gem's RBS.
|
18
|
+
# It's unnecessary if you don't use rbs as a library.
|
19
|
+
- name: rbs
|
20
|
+
ignore: true
|
21
|
+
- name: rake
|
22
|
+
ignore: true
|
23
|
+
- name: rspec
|
24
|
+
ignore: true
|
25
|
+
- name: rubocop
|
26
|
+
ignore: true
|
27
|
+
- name: steep
|
28
|
+
ignore: true
|
29
|
+
- name: pathname
|
@@ -3,18 +3,26 @@ module Zirconia
|
|
3
3
|
attr_reader dir: Pathname
|
4
4
|
attr_reader name: String
|
5
5
|
|
6
|
+
@created: bool
|
7
|
+
|
6
8
|
def initialize: (dir: String, name: String) -> void
|
7
9
|
|
10
|
+
def created?: -> bool
|
11
|
+
|
8
12
|
def create!: -> void
|
9
13
|
|
10
14
|
def load!: -> void
|
11
15
|
|
16
|
+
def exec: (String) -> String
|
17
|
+
|
12
18
|
def gem_path: (*String, ?ext: Symbol?) -> Pathname
|
13
19
|
|
14
20
|
def lib_path: (*String, ?ext: Symbol?) -> Pathname
|
15
21
|
|
16
22
|
def path: (*String, ?ext: Symbol?) -> Pathname
|
17
23
|
|
24
|
+
def spec_path: (*String, ?ext: Symbol?) -> Pathname
|
25
|
+
|
18
26
|
def to_sym: -> Symbol
|
19
27
|
|
20
28
|
attr_reader main_file: Pathname
|
@@ -23,7 +31,10 @@ module Zirconia
|
|
23
31
|
|
24
32
|
attr_reader lib_dir: Pathname
|
25
33
|
attr_reader gem_dir: Pathname
|
34
|
+
attr_reader spec_dir: Pathname
|
26
35
|
|
27
36
|
def build_path: (*String, dir: Pathname, ext: Symbol?) -> Pathname
|
37
|
+
|
38
|
+
def validate_gem_exists!: -> void
|
28
39
|
end
|
29
40
|
end
|
data/zirconia.gemspec
CHANGED
@@ -9,10 +9,10 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.summary = "Lightweight testing utility for synthesising Ruby gems"
|
10
10
|
|
11
11
|
spec.description = <<~DESCRIPTION
|
12
|
-
Zirconia is a lightweight testing utility that is capable of generating\
|
12
|
+
Zirconia is a lightweight testing utility that is capable of generating \
|
13
13
|
temporary Ruby Gem applications from within the test suite.
|
14
14
|
|
15
|
-
Zirconia offers an intuitive interface around the synthetic gem allowing
|
15
|
+
Zirconia offers an intuitive interface around the synthetic gem allowing \
|
16
16
|
them to be configured and coded from within the test environment.
|
17
17
|
DESCRIPTION
|
18
18
|
|
metadata
CHANGED
@@ -1,20 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zirconia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Welham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
|
-
Zirconia is a lightweight testing utility that is capable of
|
14
|
+
Zirconia is a lightweight testing utility that is capable of generating temporary Ruby Gem applications from within the test suite.
|
15
15
|
|
16
|
-
Zirconia offers an intuitive interface around the synthetic gem allowing
|
17
|
-
them to be configured and coded from within the test environment.
|
16
|
+
Zirconia offers an intuitive interface around the synthetic gem allowing them to be configured and coded from within the test environment.
|
18
17
|
email:
|
19
18
|
- 71787007+apexatoll@users.noreply.github.com
|
20
19
|
executables: []
|
@@ -34,8 +33,9 @@ files:
|
|
34
33
|
- lib/zirconia/application.rb
|
35
34
|
- lib/zirconia/rspec.rb
|
36
35
|
- lib/zirconia/version.rb
|
36
|
+
- rbs_collection.lock.yaml
|
37
|
+
- rbs_collection.yaml
|
37
38
|
- sig/dir.rbs
|
38
|
-
- sig/pathname.rbs
|
39
39
|
- sig/rspec.rbs
|
40
40
|
- sig/zirconia.rbs
|
41
41
|
- sig/zirconia/application.rbs
|
data/sig/pathname.rbs
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
class Pathname
|
2
|
-
def initialize: (String path) -> void
|
3
|
-
|
4
|
-
def read: -> String
|
5
|
-
|
6
|
-
def write: (String contents) -> void
|
7
|
-
|
8
|
-
def basename: (?String) -> Pathname
|
9
|
-
|
10
|
-
def dirname: -> Pathname
|
11
|
-
|
12
|
-
def exist?: -> bool
|
13
|
-
|
14
|
-
def join: (*String) -> Pathname
|
15
|
-
|
16
|
-
def to_s: -> String
|
17
|
-
end
|