spek 1.0.1 → 1.1.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: 2cf62497df032c30697ab8cb01e62d5442f7df5043367868430f7770b9c3dc9e
4
- data.tar.gz: 19fb7bbfa9db196912ac9b7328ef046302aa7284875cf9425c3b2ed6a291b90f
3
+ metadata.gz: b5d6d86a874f194f11de1408c57154289d07cd0f2f513aa7d278f3c29423fc75
4
+ data.tar.gz: 3580affeff063da8346709d3eeec1c4ddc1ec0d800e685646a343befc636b830
5
5
  SHA512:
6
- metadata.gz: 7da3e99d6d953cc905e6270a94064e3808ebf4490c89c25e11470655f325edfee6e8bf4d89682f28d6da61281701354af245b8865b4d9029e6c44a30bd2724d6
7
- data.tar.gz: 327170bc9b1212f0a2d2308b534e5f2ee13b370b7ce47850de8ca0f36f5c3894ed29c03083b89d0ad72110595a98306011afdd5c18c9df321f092713c0470b29
6
+ metadata.gz: 4d5a7ed6ba4f28bcc302ecb403c8546ef8891b3060df12b55e60a8cc9ffb4f8b86840d868d4f795c52dde6b038d6f932eb453d0d175e3bb7dac4d8bed902265b
7
+ data.tar.gz: aea7398514bf1f7cae4bee7a5b9e1f853858bccd12a257d3804b02aad601066b90ba3ed83f4e09c4cd6d0235d54d4bea964ee31d2d38aafe62088e1a7b04969e
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -17,7 +17,7 @@ toc::[]
17
17
  * Supports loading gems by path to specification.
18
18
  * Supports picking gems by name with optional version selection.
19
19
  * Supports link:https://semver.org[semantic versions] via
20
- link:https://www.alchemists.io/projects/versionaire[Versionaire].
20
+ link:https://alchemists.io/projects/versionaire[Versionaire].
21
21
 
22
22
  == Requirements
23
23
 
@@ -35,25 +35,63 @@ bin/setup
35
35
  == Usage
36
36
 
37
37
  This gem makes interacting with Ruby gems easier by providing foundational objects for which you can
38
- built on top of. link:https://www.alchemists.io/projects/gemsmith[Gemsmith] is built on top of this
38
+ built on top of. link:https://alchemists.io/projects/gemsmith[Gemsmith] is built on top of this
39
39
  gem if you need working example.
40
40
 
41
41
  === Presenter
42
42
 
43
- This object wraps a `Gem::Specification` for presentation, provides semantic versioning, direct
44
- access to metadata information, pathnames, and other enriched information. You can obtain an
45
- instance via the following code:
43
+ This object wraps the `Gem::Specification` for presentation purposes, provides semantic versioning, direct access to metadata information, pathnames, and other enriched information. You can obtain an
44
+ instance using the following code, for example:
46
45
 
47
46
  [source,ruby]
48
47
  ----
49
48
  specification = Gem::Specification.new do |spec|
50
- spec.name = "test"
49
+ spec.name = "demo"
51
50
  spec.version = "0.0.0"
52
- spec.authors = "Jill Smith"
53
- spec.summary = "A test summary."
51
+ spec.authors = ["Jill Smith"]
52
+ spec.email = ["demo@alchemists.io"]
53
+ spec.homepage = "https://alchemists.io/projects/demo"
54
+ spec.summary = "A demo summary."
55
+ spec.license = "Hippocratic-2.1"
56
+
57
+ spec.signing_key = Gem.default_key_path
58
+ spec.cert_chain = [Gem.default_cert_path]
59
+
60
+ spec.metadata = {
61
+ "bug_tracker_uri" => "https://github.com/bkuhlmann/demo/issues",
62
+ "changelog_uri" => "https://alchemists.io/projects/demo/versions",
63
+ "documentation_uri" => "https://alchemists.io/projects/demo",
64
+ "funding_uri" => "https://github.com/sponsors/bkuhlmann",
65
+ "label" => "Demo",
66
+ "rubygems_mfa_required" => "true",
67
+ "source_code_uri" => "https://github.com/bkuhlmann/demo"
68
+ }
54
69
  end
55
70
 
56
71
  presenter = Spek::Presenter.new specification
72
+
73
+ presenter.allowed_push_host # "https://rubygems.org"
74
+ presenter.allowed_push_key # "rubygems_api_key"
75
+ presenter.authors # ["Jill Smith"]
76
+ presenter.banner # "Demo 0.0.0: A demo summary."
77
+ presenter.certificate_chain # [#<Pathname:~/.gem/gem-public_cert.pem>]
78
+ presenter.documentation_url # "https://alchemists.io/projects/demo"
79
+ presenter.emails # ["demo@alchemists.io"]
80
+ presenter.funding_url # "https://github.com/sponsors/bkuhlmann"
81
+ presenter.homepage_url # "https://alchemists.io/projects/demo"
82
+ presenter.issues_url # "https://github.com/bkuhlmann/demo/issues"
83
+ presenter.label # "Demo"
84
+ presenter.labeled_summary # "Demo: A demo summary."
85
+ presenter.labeled_version # "Demo 0.0.0"
86
+ presenter.named_version # "demo 0.0.0"
87
+ presenter.package_name # "demo-0.0.0.gem"
88
+ presenter.package_path # #<Pathname:tmp/demo-0.0.0.gem>
89
+ presenter.rubygems_mfa? # true
90
+ presenter.signing_key # #<Pathname:~/.gem/gem-private_key.pem>
91
+ presenter.source_path # #<Pathname:~/.cache/.../3.2.0/gems/demo-0.0.0>
92
+ presenter.source_url # "https://github.com/bkuhlmann/demo"
93
+ presenter.version # #<struct Versionaire::Version major=0, minor=0, patch=0>
94
+ presenter.versions_url # "https://alchemists.io/projects/demo/versions"
57
95
  ----
58
96
 
59
97
  The presenter is a read-only object so you'll only have access to _getter_ methods which are mostly
@@ -99,7 +137,7 @@ end
99
137
  ----
100
138
 
101
139
  The picker always answers a link:https://dry-rb.org/gems/dry-monads[monad] so you can quickly
102
- pattern match for further action.
140
+ link:https://alchemists.io/articles/ruby_pattern_matching[pattern match] for further action.
103
141
 
104
142
  === Versioner
105
143
 
@@ -141,19 +179,19 @@ To test, run:
141
179
  bin/rake
142
180
  ----
143
181
 
144
- == link:https://www.alchemists.io/policies/license[License]
182
+ == link:https://alchemists.io/policies/license[License]
145
183
 
146
- == link:https://www.alchemists.io/policies/security[Security]
184
+ == link:https://alchemists.io/policies/security[Security]
147
185
 
148
- == link:https://www.alchemists.io/policies/code_of_conduct[Code of Conduct]
186
+ == link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]
149
187
 
150
- == link:https://www.alchemists.io/policies/contributions[Contributions]
188
+ == link:https://alchemists.io/policies/contributions[Contributions]
151
189
 
152
- == link:https://www.alchemists.io/projects/spek/versions[Versions]
190
+ == link:https://alchemists.io/projects/spek/versions[Versions]
153
191
 
154
- == link:https://www.alchemists.io/community[Community]
192
+ == link:https://alchemists.io/community[Community]
155
193
 
156
194
  == Credits
157
195
 
158
- * Built with link:https://www.alchemists.io/projects/gemsmith[Gemsmith].
159
- * Engineered by link:https://www.alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
196
+ * Built with link:https://alchemists.io/projects/gemsmith[Gemsmith].
197
+ * Engineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].
@@ -45,6 +45,8 @@ module Spek
45
45
 
46
46
  def authors = Array record.author
47
47
 
48
+ def banner(delimiter: ": ") = [labeled_version, summary].tap(&:compress!).join delimiter
49
+
48
50
  def certificate_chain = Array(record.cert_chain).map { |path| Pathname path.to_s }
49
51
 
50
52
  def documentation_url = metadata.fetch "documentation_uri", ""
@@ -59,13 +61,13 @@ module Spek
59
61
 
60
62
  def label = metadata.fetch "label", "Undefined"
61
63
 
62
- def labeled_summary(delimiter: " - ") = [label, summary].compress.join delimiter
64
+ def labeled_summary(delimiter: ": ") = [label, summary].tap(&:compress!).join delimiter
63
65
 
64
- def labeled_version = [label, version].compress.join " "
66
+ def labeled_version = [label, version].tap(&:compress!).join " "
65
67
 
66
- def named_version = [name, version].compress.join " "
68
+ def named_version = [name, version].tap(&:compress!).join " "
67
69
 
68
- def package_name = %(#{[name, version].compress.join "-"}.gem)
70
+ def package_name = %(#{[name, version].tap(&:compress!).join "-"}.gem)
69
71
 
70
72
  def package_path = Pathname("tmp").join package_name
71
73
 
data/spek.gemspec CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "spek"
5
- spec.version = "1.0.1"
5
+ spec.version = "1.1.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
- spec.homepage = "https://www.alchemists.io/projects/spek"
8
+ spec.homepage = "https://alchemists.io/projects/spek"
9
9
  spec.summary = "Enhances gem specifications with additional information and tooling."
10
10
  spec.license = "Hippocratic-2.1"
11
11
 
12
12
  spec.metadata = {
13
13
  "bug_tracker_uri" => "https://github.com/bkuhlmann/spek/issues",
14
- "changelog_uri" => "https://www.alchemists.io/projects/spek/versions",
15
- "documentation_uri" => "https://www.alchemists.io/projects/spek",
14
+ "changelog_uri" => "https://alchemists.io/projects/spek/versions",
15
+ "documentation_uri" => "https://alchemists.io/projects/spek",
16
16
  "funding_uri" => "https://github.com/sponsors/bkuhlmann",
17
17
  "label" => "Spek",
18
18
  "rubygems_mfa_required" => "true",
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spek
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -10,25 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIC/jCCAeagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpicm9v
14
- a2UvREM9YWxjaGVtaXN0cy9EQz1pbzAeFw0yMjAzMTkxNzI0MzJaFw0yMzAzMTkx
15
- NzI0MzJaMCUxIzAhBgNVBAMMGmJyb29rZS9EQz1hbGNoZW1pc3RzL0RDPWlvMIIB
16
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6l1qpXTiomH1RfMRloyw7MiE
17
- xyVx/x8Yc3EupdH7uhNaTXQGyORN6aOY//1QXXMHIZ9tW74nZLhesWMSUMYy0XhB
18
- brs+KkurHnc9FnEJAbG7ebGvl/ncqZt72nQvaxpDxvuCBHgJAz+8i5wl6FhLw+oT
19
- 9z0A8KcGhz67SdcoQiD7qiCjL/2NTeWHOzkpPrdGlt088+VerEEGf5I13QCvaftP
20
- D5vkU0YlAm1r98BymuJlcQ1qdkVEI1d48ph4kcS0S0nv1RiuyVb6TCAR3Nu3VaVq
21
- 3fPzZKJLZBx67UvXdbdicWPiUR75elI4PXpLIic3xytaF52ZJYyKZCNZJhNwfQID
22
- AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU0nzow9vc
23
- 2CdikiiE3fJhP/gY4ggwDQYJKoZIhvcNAQELBQADggEBAJbbNyWzFjqUNVPPCUCo
24
- IMrhDa9xf1xkORXNYYbmXgoxRy/KyNbUr+jgEEoWJAm9GXlcqxxWAUI6pK/i4/Qi
25
- X6rPFEFmeObDOHNvuqy8Hd6AYsu+kP94U/KJhe9wnWGMmGoNKJNU3EkW3jM/osSl
26
- +JRxiH5t4WtnDiVyoYl5nYC02rYdjJkG6VMxDymXTqn7u6HhYgZkGujq1UPar8x2
27
- hNIWJblDKKSu7hA2d6+kUthuYo13o1sg1Da/AEDg0hoZSUvhqDEF5Hy232qb3pDt
28
- CxDe2+VuChj4I1nvIHdu+E6XoEVlanUPKmSg6nddhkKn2gC45Kyzh6FZqnzH/CRp
29
- RFE=
13
+ MIIEeDCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZicm9v
14
+ a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
15
+ aW8wHhcNMjMwMzIyMTYxNDQxWhcNMjUwMzIxMTYxNDQxWjBBMQ8wDQYDVQQDDAZi
16
+ cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
17
+ GRYCaW8wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCro8tj5/E1Hg88
18
+ f4qfiwPVd2zJQHvdYt4GHVvuHRRgx4HGhJuNp+4BId08RBn7V6V1MW6MY3kezRBs
19
+ M+7QOQ4b1xNLTvY7FYQB1wGK5a4x7TTokDrPYQxDB2jmsdDYCzVbIMrAvUfcecRi
20
+ khyGZCdByiiCl4fKv77P12tTT+NfsvXkLt/AYCGwjOUyGKTQ01Z6eC09T27GayPH
21
+ QQvIkakyFgcJtzSyGzs8bzK5q9u7wQ12MNTjJoXzW69lqp0oNvDylu81EiSUb5S6
22
+ QzzPxZBiRB1sgtbt1gUbVI262ZDq1gR+HxPFmp+Cgt7ZLIJZAtesQvtcMzseXpfn
23
+ hpmm0Sw22KGhRAy/mqHBRhDl5HqS1SJp2Ko3lcnpXeFResp0HNlt8NSu13vhC08j
24
+ GUHU9MyIXbFOsnp3K3ADrAVjPWop8EZkmUR3MV/CUm00w2cZHCSGiXl1KMpiVKvk
25
+ Ywr1gd2ZME4QLSo+EXUtLxDUa/W3xnBS8dBOuMMz02FPWYr3PN8CAwEAAaN7MHkw
26
+ CQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAFgmv0tYMZnItuPycSM
27
+ F5wykJEVMB8GA1UdEQQYMBaBFGJyb29rZUBhbGNoZW1pc3RzLmlvMB8GA1UdEgQY
28
+ MBaBFGJyb29rZUBhbGNoZW1pc3RzLmlvMA0GCSqGSIb3DQEBCwUAA4IBgQAX+EGY
29
+ 9RLYGxF1VLZz+G1ACQc4uyrCB6kXwI06kzUa5dF9tPXqTX9ffnz3/W8ck2IQhKzu
30
+ MKO2FVijzbDWTsZeZGglS4E+4Jxpau1lU9HhOIcKolv6LeC6UdALTFudY+GLb8Xw
31
+ REXgaJkjzzhkUSILmEnRwEbY08dVSl7ZAaxVI679vfI2yapLlIwpbBgmQTiTvPr3
32
+ qyyLUno9flYEOv9fmGHunSrM+gE0/0niGTXa5GgXBXYGS2he4LQGgSBfGp/cTwMU
33
+ rDKJRcusZ12lNBeDfgqACz/BBJF8FLodgk6rGMRZz7+ZmjjHEmpG5bQpR6Q2BuWL
34
+ XMtYk/QzaWuhiR7pWjiF8jbdd7RO6or0ohq7iFkokz/5xrtQ/vPzU2RQ3Qc6YaKw
35
+ 3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
+ gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
30
37
  -----END CERTIFICATE-----
31
- date: 2023-01-22 00:00:00.000000000 Z
38
+ date: 2023-04-18 00:00:00.000000000 Z
32
39
  dependencies:
33
40
  - !ruby/object:Gem::Dependency
34
41
  name: dry-monads
@@ -104,13 +111,13 @@ files:
104
111
  - lib/spek/presenter.rb
105
112
  - lib/spek/versioner.rb
106
113
  - spek.gemspec
107
- homepage: https://www.alchemists.io/projects/spek
114
+ homepage: https://alchemists.io/projects/spek
108
115
  licenses:
109
116
  - Hippocratic-2.1
110
117
  metadata:
111
118
  bug_tracker_uri: https://github.com/bkuhlmann/spek/issues
112
- changelog_uri: https://www.alchemists.io/projects/spek/versions
113
- documentation_uri: https://www.alchemists.io/projects/spek
119
+ changelog_uri: https://alchemists.io/projects/spek/versions
120
+ documentation_uri: https://alchemists.io/projects/spek
114
121
  funding_uri: https://github.com/sponsors/bkuhlmann
115
122
  label: Spek
116
123
  rubygems_mfa_required: 'true'
@@ -130,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
137
  - !ruby/object:Gem::Version
131
138
  version: '0'
132
139
  requirements: []
133
- rubygems_version: 3.4.4
140
+ rubygems_version: 3.4.12
134
141
  signing_key:
135
142
  specification_version: 4
136
143
  summary: Enhances gem specifications with additional information and tooling.
metadata.gz.sig CHANGED
Binary file