spek 1.0.1 → 1.1.0

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