pennyworth 15.0.3 → 15.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +82 -22
- data/lib/pennyworth/cli/actions/standard_gems.rb +32 -0
- data/lib/pennyworth/cli/shell.rb +1 -0
- data/lib/pennyworth/configuration/contract.rb +1 -0
- data/lib/pennyworth/configuration/defaults.yml +65 -4
- data/lib/pennyworth/configuration/model.rb +2 -1
- data/lib/pennyworth/container.rb +11 -8
- data/lib/pennyworth/integrations/git_hub/client.rb +2 -1
- data/lib/pennyworth/integrations/ruby_gems/client.rb +5 -1
- data/lib/pennyworth/integrations/standard_gems/client.rb +56 -0
- data/lib/pennyworth/loaders/projects.rb +2 -0
- data/lib/pennyworth/presenters/standard_gem.rb +39 -0
- data/lib/pennyworth/processor.rb +6 -0
- data/pennyworth.gemspec +2 -1
- data.tar.gz.sig +0 -0
- metadata +20 -3
- metadata.gz.sig +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aafd1088d83cdaef28941a84e39ce5709aeb6650409f425dd58a2b7d2324bc2d
|
|
4
|
+
data.tar.gz: c8f59363157d261b4a3e2d5745b8e1b76cf2db9a3d4b6bd96c0443925fcdedf0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 00a0626d8a8de7e33f9c135b199a6dbb67191ecfe85d05339c3b8868511a72c411b6d27f01ca02f56c0ead332d3ed6bf1ba1ccf6a836745db3fced9ed5ad715c
|
|
7
|
+
data.tar.gz: 37104b4204595fc58faf6f3178b234298f764b7e374e5720aab613b790f50f2af6b8c72a20aba98b888b10c02528c2579572b39632d0688cfbd59b482c585e48
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/README.adoc
CHANGED
|
@@ -84,20 +84,24 @@ USAGE
|
|
|
84
84
|
sublime_text_kit COMMAND [OPTIONS]
|
|
85
85
|
|
|
86
86
|
OPTIONS
|
|
87
|
-
--encodings
|
|
88
|
-
--http_statuses
|
|
89
|
-
--ruby_gems [HANDLE]
|
|
90
|
-
|
|
91
|
-
--
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
87
|
+
--encodings Render Alfred encodings script filter.
|
|
88
|
+
--http_statuses Render Alfred HTTP statuses script filter.
|
|
89
|
+
--ruby_gems [HANDLE] Render Alfred RubyGems script filter.
|
|
90
|
+
Default: bkuhlmann.
|
|
91
|
+
--standard_gems [KIND] Render Alfred Standard Gems script filter.
|
|
92
|
+
Use: all, default, or bundled.
|
|
93
|
+
Default: all.
|
|
94
|
+
--standard_errors Render Alfred standard errors script filter.
|
|
95
|
+
--system_errors Render Alfred system errors script filter.
|
|
96
|
+
--system_signals Render Alfred system signals script filter.
|
|
97
|
+
--text CONTENT Render Alfred text script filter.
|
|
98
|
+
-v, --version Show version.
|
|
99
|
+
-h, --help [COMMAND] Show this message.
|
|
96
100
|
|
|
97
101
|
COMMANDS
|
|
98
|
-
config
|
|
99
|
-
|
|
100
|
-
git_hub
|
|
102
|
+
config Manage configuration.
|
|
103
|
+
Path is dynamic per current directory.
|
|
104
|
+
git_hub Render Alfred GitHub repositories script filter.
|
|
101
105
|
....
|
|
102
106
|
|
|
103
107
|
While the command line options are nice, the real power comes from using Pennyworth in conjunction
|
|
@@ -120,31 +124,87 @@ The default configuration is as follows:
|
|
|
120
124
|
|
|
121
125
|
[source,yaml]
|
|
122
126
|
----
|
|
123
|
-
alfred:
|
|
124
|
-
preferences:
|
|
125
127
|
inflections:
|
|
126
|
-
- "
|
|
128
|
+
- "Base64": "Base64"
|
|
129
|
+
- "Bigdecimal": "BigDecimal"
|
|
130
|
+
- "Cgi": "CGI"
|
|
131
|
+
- "Cmath": "CMath"
|
|
132
|
+
- "Csv": "CSV"
|
|
133
|
+
- "Dbm": "DBM"
|
|
134
|
+
- "Drb": "Distributed Ruby"
|
|
127
135
|
- "Dry Auto Inject": "Dry AutoInject"
|
|
128
136
|
- "Dry Cli": "Dry CLI"
|
|
137
|
+
- "E2mmap": "Exception to Message Mapper"
|
|
138
|
+
- "Erb": "ERB"
|
|
139
|
+
- "Fileutils": "File Utilities"
|
|
140
|
+
- "Gdbm": "GDBM"
|
|
141
|
+
- "Getoptlong": "Get Option Long"
|
|
129
142
|
- "Http Fake": "HTTP Fake"
|
|
143
|
+
- "Io Console": "IO Console"
|
|
144
|
+
- "Io Nonblock": "IO Nonblock"
|
|
145
|
+
- "Io Wait": "IO Wait"
|
|
146
|
+
- "Ipaddr": "IP Address"
|
|
147
|
+
- "Irb": "IRB"
|
|
148
|
+
- "Json": "JSON"
|
|
130
149
|
- "Mac Os Config": "macOS Configuration"
|
|
131
150
|
- "Mac Os": "MacOS"
|
|
151
|
+
- "Net Ftp": "Net FTP"
|
|
152
|
+
- "Net Http": "Net HTTP"
|
|
153
|
+
- "Net Imap": "Net IMAP"
|
|
154
|
+
- "Net Pop": "Net POP"
|
|
155
|
+
- "Net Smtp": "Net SMTP"
|
|
156
|
+
- "Nkf": "NKF"
|
|
157
|
+
- "Open Uri": "OpenURI"
|
|
158
|
+
- "Openssl": "OpenSSL"
|
|
159
|
+
- "Optparse": "Option Parser"
|
|
160
|
+
- "Ostruct": "OpenStruct"
|
|
132
161
|
- "Pkce": "PKCE"
|
|
162
|
+
- "Pp": "PP"
|
|
133
163
|
- "Prawn Plus": "Prawn+"
|
|
134
|
-
- "
|
|
135
|
-
- "
|
|
136
|
-
- "
|
|
164
|
+
- "Prettyprint": "Pretty Print"
|
|
165
|
+
- "Pstore": "PStore"
|
|
166
|
+
- "Rbs": "RBS"
|
|
167
|
+
- "Rdoc": "RDoc"
|
|
168
|
+
- "Rexml": "REXML"
|
|
169
|
+
- "Rss": "RSS"
|
|
170
|
+
- "Rubocop Ast": "RuboCop AST"
|
|
171
|
+
- "Rubocop Capybara": "RuboCop Capybara"
|
|
172
|
+
- "Rubocop Factory Bot": "RuboCop FactoryBot"
|
|
173
|
+
- "Rubocop Md": "RuboCop Markdown"
|
|
174
|
+
- "Rubocop Performance": "RuboCop Performance"
|
|
175
|
+
- "Rubocop Rails": "RuboCop Rails"
|
|
176
|
+
- "Rubocop Rake": "RuboCop Rake"
|
|
177
|
+
- "Rubocop Rspec": "RuboCop RSpec"
|
|
178
|
+
- "Rubocop Sequel": "RuboCop Sequel"
|
|
179
|
+
- "Rubocop Thread Safety": "RuboCop Thread Safety"
|
|
180
|
+
- "Rubocop": "RuboCop"
|
|
181
|
+
- "Ruby2_keywords": "Ruby to Keywords"
|
|
182
|
+
- "Rubygems": "RubyGems"
|
|
183
|
+
- "Sdbm": "SDBM"
|
|
184
|
+
- "Securerandom": "Secure Random"
|
|
185
|
+
- "Stringio": "String IO"
|
|
186
|
+
- "Strscan": "String Scan"
|
|
187
|
+
- "Tempfile": "Temporary File"
|
|
188
|
+
- "Thwait": "Threads Wait"
|
|
189
|
+
- "Tmpdir": "Temporary Directory"
|
|
190
|
+
- "Tsort": "TSort"
|
|
191
|
+
- "Typeprof": "Type Profiler"
|
|
192
|
+
- "Un": "un"
|
|
193
|
+
- "Uri": "URI"
|
|
194
|
+
- "Weakref": "Weak Reference"
|
|
195
|
+
- "Win32ole": "Windows 32 OLE"
|
|
137
196
|
- "Xdg": "XDG"
|
|
197
|
+
- "Xmlrpc": "XMLRPC"
|
|
198
|
+
- "Yaml": "YAML"
|
|
138
199
|
git_hub:
|
|
139
200
|
api_url: "https://api.github.com"
|
|
140
|
-
organization:
|
|
141
|
-
user:
|
|
142
201
|
http:
|
|
143
202
|
statuses:
|
|
144
203
|
url: "https://developer.mozilla.org/docs/Web/HTTP/Status"
|
|
145
204
|
ruby_gems:
|
|
146
205
|
api_url: "https://rubygems.org/api/v1"
|
|
147
|
-
|
|
206
|
+
standard_gems:
|
|
207
|
+
api_url: "https://stdgems.org"
|
|
148
208
|
----
|
|
149
209
|
|
|
150
210
|
Feel free to take this default configuration, modify, and save as your own custom
|
|
@@ -216,7 +276,7 @@ Provides quick access to link:https://docs.rubocop.org/rubocop[RuboCop] resource
|
|
|
216
276
|
|
|
217
277
|
==== Ruby
|
|
218
278
|
|
|
219
|
-
image:https://alchemists.io/images/projects/pennyworth/screenshots/ruby.png[Ruby workflow screenshot,width=706,height=
|
|
279
|
+
image:https://alchemists.io/images/projects/pennyworth/screenshots/ruby.png[Ruby workflow screenshot,width=706,height=631,role=focal_point]
|
|
220
280
|
|
|
221
281
|
Provides quick access to link:https://www.ruby-lang.org[Ruby] resources.
|
|
222
282
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "sod"
|
|
4
|
+
|
|
5
|
+
module Pennyworth
|
|
6
|
+
module CLI
|
|
7
|
+
module Actions
|
|
8
|
+
# Handles the Standard Gems action.
|
|
9
|
+
class StandardGems < Sod::Action
|
|
10
|
+
include Import[:kernel]
|
|
11
|
+
|
|
12
|
+
description "Render Alfred Standard Gems script filter."
|
|
13
|
+
|
|
14
|
+
on "--standard_gems", argument: "[KIND]", allow: %w[all default bundled], default: "all"
|
|
15
|
+
|
|
16
|
+
def initialize(processor: Processor.for_standard_gems, **)
|
|
17
|
+
super(**)
|
|
18
|
+
@processor = processor
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def call kind = nil
|
|
22
|
+
endpoint = "#{kind || default}_gems.json"
|
|
23
|
+
kernel.puts processor.call(endpoint).to_json
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
attr_reader :processor
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
data/lib/pennyworth/cli/shell.rb
CHANGED
|
@@ -1,16 +1,75 @@
|
|
|
1
1
|
inflections:
|
|
2
|
-
- "
|
|
2
|
+
- "Base64": "Base64"
|
|
3
|
+
- "Bigdecimal": "BigDecimal"
|
|
4
|
+
- "Cgi": "CGI"
|
|
5
|
+
- "Cmath": "CMath"
|
|
6
|
+
- "Csv": "CSV"
|
|
7
|
+
- "Dbm": "DBM"
|
|
8
|
+
- "Drb": "Distributed Ruby"
|
|
3
9
|
- "Dry Auto Inject": "Dry AutoInject"
|
|
4
10
|
- "Dry Cli": "Dry CLI"
|
|
11
|
+
- "E2mmap": "Exception to Message Mapper"
|
|
12
|
+
- "Erb": "ERB"
|
|
13
|
+
- "Fileutils": "File Utilities"
|
|
14
|
+
- "Gdbm": "GDBM"
|
|
15
|
+
- "Getoptlong": "Get Option Long"
|
|
5
16
|
- "Http Fake": "HTTP Fake"
|
|
17
|
+
- "Io Console": "IO Console"
|
|
18
|
+
- "Io Nonblock": "IO Nonblock"
|
|
19
|
+
- "Io Wait": "IO Wait"
|
|
20
|
+
- "Ipaddr": "IP Address"
|
|
21
|
+
- "Irb": "IRB"
|
|
22
|
+
- "Json": "JSON"
|
|
6
23
|
- "Mac Os Config": "macOS Configuration"
|
|
7
24
|
- "Mac Os": "MacOS"
|
|
25
|
+
- "Net Ftp": "Net FTP"
|
|
26
|
+
- "Net Http": "Net HTTP"
|
|
27
|
+
- "Net Imap": "Net IMAP"
|
|
28
|
+
- "Net Pop": "Net POP"
|
|
29
|
+
- "Net Smtp": "Net SMTP"
|
|
30
|
+
- "Nkf": "NKF"
|
|
31
|
+
- "Open Uri": "OpenURI"
|
|
32
|
+
- "Openssl": "OpenSSL"
|
|
33
|
+
- "Optparse": "Option Parser"
|
|
34
|
+
- "Ostruct": "OpenStruct"
|
|
8
35
|
- "Pkce": "PKCE"
|
|
36
|
+
- "Pp": "PP"
|
|
9
37
|
- "Prawn Plus": "Prawn+"
|
|
10
|
-
- "
|
|
11
|
-
- "
|
|
12
|
-
- "
|
|
38
|
+
- "Prettyprint": "Pretty Print"
|
|
39
|
+
- "Pstore": "PStore"
|
|
40
|
+
- "Rbs": "RBS"
|
|
41
|
+
- "Rdoc": "RDoc"
|
|
42
|
+
- "Rexml": "REXML"
|
|
43
|
+
- "Rss": "RSS"
|
|
44
|
+
- "Rubocop Ast": "RuboCop AST"
|
|
45
|
+
- "Rubocop Capybara": "RuboCop Capybara"
|
|
46
|
+
- "Rubocop Factory Bot": "RuboCop FactoryBot"
|
|
47
|
+
- "Rubocop Md": "RuboCop Markdown"
|
|
48
|
+
- "Rubocop Performance": "RuboCop Performance"
|
|
49
|
+
- "Rubocop Rails": "RuboCop Rails"
|
|
50
|
+
- "Rubocop Rake": "RuboCop Rake"
|
|
51
|
+
- "Rubocop Rspec": "RuboCop RSpec"
|
|
52
|
+
- "Rubocop Sequel": "RuboCop Sequel"
|
|
53
|
+
- "Rubocop Thread Safety": "RuboCop Thread Safety"
|
|
54
|
+
- "Rubocop": "RuboCop"
|
|
55
|
+
- "Ruby2_keywords": "Ruby to Keywords"
|
|
56
|
+
- "Rubygems": "RubyGems"
|
|
57
|
+
- "Sdbm": "SDBM"
|
|
58
|
+
- "Securerandom": "Secure Random"
|
|
59
|
+
- "Stringio": "String IO"
|
|
60
|
+
- "Strscan": "String Scan"
|
|
61
|
+
- "Tempfile": "Temporary File"
|
|
62
|
+
- "Thwait": "Threads Wait"
|
|
63
|
+
- "Tmpdir": "Temporary Directory"
|
|
64
|
+
- "Tsort": "TSort"
|
|
65
|
+
- "Typeprof": "Type Profiler"
|
|
66
|
+
- "Un": "un"
|
|
67
|
+
- "Uri": "URI"
|
|
68
|
+
- "Weakref": "Weak Reference"
|
|
69
|
+
- "Win32ole": "Windows 32 OLE"
|
|
13
70
|
- "Xdg": "XDG"
|
|
71
|
+
- "Xmlrpc": "XMLRPC"
|
|
72
|
+
- "Yaml": "YAML"
|
|
14
73
|
git_hub:
|
|
15
74
|
api_url: "https://api.github.com"
|
|
16
75
|
http:
|
|
@@ -18,3 +77,5 @@ http:
|
|
|
18
77
|
url: "https://developer.mozilla.org/docs/Web/HTTP/Status"
|
|
19
78
|
ruby_gems:
|
|
20
79
|
api_url: "https://rubygems.org/api/v1"
|
|
80
|
+
standard_gems:
|
|
81
|
+
api_url: "https://stdgems.org"
|
data/lib/pennyworth/container.rb
CHANGED
|
@@ -12,21 +12,24 @@ module Pennyworth
|
|
|
12
12
|
module Container
|
|
13
13
|
extend Dry::Container::Mixin
|
|
14
14
|
|
|
15
|
-
register :configuration do
|
|
15
|
+
register :configuration, memoize: true do
|
|
16
16
|
self[:defaults].add_loader(Etcher::Loaders::YAML.new(self[:xdg_config].active))
|
|
17
17
|
.then { |registry| Etcher.call registry }
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
register :defaults do
|
|
20
|
+
register :defaults, memoize: true do
|
|
21
21
|
Etcher::Registry.new(contract: Configuration::Contract, model: Configuration::Model)
|
|
22
22
|
.add_loader(Etcher::Loaders::YAML.new(self[:defaults_path]))
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
register
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
register(:
|
|
30
|
-
register(:
|
|
25
|
+
register :specification, memoize: true do
|
|
26
|
+
Spek::Loader.call "#{__dir__}/../../pennyworth.gemspec"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
register(:defaults_path, memoize: true) { Pathname(__dir__).join("configuration/defaults.yml") }
|
|
30
|
+
register(:xdg_config, memoize: true) { Runcom::Config.new "pennyworth/configuration.yml" }
|
|
31
|
+
register(:logger, memoize: true) { Cogger.new formatter: :emoji }
|
|
32
|
+
register :http, HTTP
|
|
33
|
+
register :kernel, Kernel
|
|
31
34
|
end
|
|
32
35
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "core"
|
|
3
4
|
require "ghub"
|
|
4
5
|
|
|
5
6
|
module Pennyworth
|
|
@@ -11,7 +12,7 @@ module Pennyworth
|
|
|
11
12
|
@endpoint = endpoint
|
|
12
13
|
end
|
|
13
14
|
|
|
14
|
-
def get(path) = endpoint.index(*path.split("/")).value_or(
|
|
15
|
+
def get(path) = endpoint.index(*path.split("/")).value_or(Core::EMPTY_ARRAY).map(&:to_h)
|
|
15
16
|
|
|
16
17
|
private
|
|
17
18
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "core"
|
|
4
|
+
|
|
3
5
|
module Pennyworth
|
|
4
6
|
module Integrations
|
|
5
7
|
module RubyGems
|
|
@@ -10,7 +12,9 @@ module Pennyworth
|
|
|
10
12
|
def get endpoint
|
|
11
13
|
http.get("#{configuration.ruby_gems_api_url}/#{endpoint}")
|
|
12
14
|
.then do |response|
|
|
13
|
-
|
|
15
|
+
return JSON response.body.to_s, symbolize_names: true if response.status.success?
|
|
16
|
+
|
|
17
|
+
Core::EMPTY_HASH
|
|
14
18
|
end
|
|
15
19
|
end
|
|
16
20
|
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "core"
|
|
4
|
+
|
|
5
|
+
module Pennyworth
|
|
6
|
+
module Integrations
|
|
7
|
+
module StandardGems
|
|
8
|
+
# Provides low-level API access to the Standard Gems API.
|
|
9
|
+
class Client
|
|
10
|
+
include Import[:configuration, :http]
|
|
11
|
+
|
|
12
|
+
# Order matters.
|
|
13
|
+
ENDPOINTS = %w[bundled_gems.json default_gems.json].freeze
|
|
14
|
+
|
|
15
|
+
def initialize(endpoints: ENDPOINTS, **)
|
|
16
|
+
@endpoints = endpoints
|
|
17
|
+
super(**)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def get endpoint
|
|
21
|
+
if endpoints.include? endpoint then load_category endpoint
|
|
22
|
+
elsif endpoint == "all_gems.json" then all
|
|
23
|
+
else Core::EMPTY_ARRAY
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
attr_reader :endpoints
|
|
30
|
+
|
|
31
|
+
# :reek:FeatureEnvy
|
|
32
|
+
# :reek:DuplicateMethodCall
|
|
33
|
+
def all
|
|
34
|
+
load_all.sort_by! { |element| element[:gem] }
|
|
35
|
+
.uniq! { |element| element[:gem] }
|
|
36
|
+
.then { |collection| collection || Core::EMPTY_ARRAY }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def load_all
|
|
40
|
+
endpoints.reduce [] do |collection, endpoint|
|
|
41
|
+
collection.append(*load_category(endpoint))
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def load_category endpoint
|
|
46
|
+
http.get("#{configuration.standard_gems_api_url}/#{endpoint}")
|
|
47
|
+
.then do |response|
|
|
48
|
+
response.status.success? ? records(response.body.to_s) : Core::EMPTY_HASH
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def records(body) = JSON(body, symbolize_names: true).fetch :gems, Core::EMPTY_ARRAY
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "core"
|
|
4
|
+
require "refinements/strings"
|
|
5
|
+
|
|
6
|
+
module Pennyworth
|
|
7
|
+
module Presenters
|
|
8
|
+
# Renders Standard Gem records into a compatible format for use in Alfred script filters.
|
|
9
|
+
class StandardGem
|
|
10
|
+
using Refinements::Arrays
|
|
11
|
+
using Refinements::Strings
|
|
12
|
+
|
|
13
|
+
def initialize record, inflector: Inflector.new
|
|
14
|
+
@record = record
|
|
15
|
+
@inflector = inflector
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def id = record.fetch :gem
|
|
19
|
+
|
|
20
|
+
def label = "#{inflector.call id.titleize} #{version}"
|
|
21
|
+
|
|
22
|
+
def subtitle = record.fetch :description
|
|
23
|
+
|
|
24
|
+
def version = record.fetch(:versions, Core::EMPTY_HASH).values.first
|
|
25
|
+
|
|
26
|
+
def site_url = record.fetch(:sourceRepository)
|
|
27
|
+
|
|
28
|
+
def source_url = record.fetch(:sourceRepository)
|
|
29
|
+
|
|
30
|
+
def issues_url = "https://github.com/ruby/#{id}/issues"
|
|
31
|
+
|
|
32
|
+
def versions_url = "https://github.com/ruby/#{id}/tags"
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
attr_reader :record, :inflector
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
data/lib/pennyworth/processor.rb
CHANGED
|
@@ -27,6 +27,12 @@ module Pennyworth
|
|
|
27
27
|
serializer: Serializers::Project
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
+
def self.for_standard_gems
|
|
31
|
+
new loader: Loaders::Projects.for_standard_gems,
|
|
32
|
+
presenter: Presenters::StandardGem,
|
|
33
|
+
serializer: Serializers::Project
|
|
34
|
+
end
|
|
35
|
+
|
|
30
36
|
def self.for_standard_errors
|
|
31
37
|
new loader: Loaders::StandardErrors.new,
|
|
32
38
|
presenter: Presenters::StandardError,
|
data/pennyworth.gemspec
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |spec|
|
|
4
4
|
spec.name = "pennyworth"
|
|
5
|
-
spec.version = "15.0
|
|
5
|
+
spec.version = "15.1.0"
|
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
|
8
8
|
spec.homepage = "https://alchemists.io/projects/pennyworth"
|
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
|
|
25
25
|
spec.required_ruby_version = "~> 3.2"
|
|
26
26
|
spec.add_dependency "cogger", "~> 0.10"
|
|
27
|
+
spec.add_dependency "core", "~> 0.1.4"
|
|
27
28
|
spec.add_dependency "dry-container", "~> 0.11"
|
|
28
29
|
spec.add_dependency "etcher", "~> 0.2"
|
|
29
30
|
spec.add_dependency "ghub", "~> 0.5"
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pennyworth
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 15.0
|
|
4
|
+
version: 15.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brooke Kuhlmann
|
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
|
35
35
|
3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
|
|
36
36
|
gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
|
|
37
37
|
-----END CERTIFICATE-----
|
|
38
|
-
date: 2023-07-
|
|
38
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
|
39
39
|
dependencies:
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: cogger
|
|
@@ -51,6 +51,20 @@ dependencies:
|
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '0.10'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: core
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 0.1.4
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 0.1.4
|
|
54
68
|
- !ruby/object:Gem::Dependency
|
|
55
69
|
name: dry-container
|
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -225,6 +239,7 @@ files:
|
|
|
225
239
|
- lib/pennyworth/cli/actions/http_statuses.rb
|
|
226
240
|
- lib/pennyworth/cli/actions/ruby_gems.rb
|
|
227
241
|
- lib/pennyworth/cli/actions/standard_errors.rb
|
|
242
|
+
- lib/pennyworth/cli/actions/standard_gems.rb
|
|
228
243
|
- lib/pennyworth/cli/actions/system/errors.rb
|
|
229
244
|
- lib/pennyworth/cli/actions/system/signals.rb
|
|
230
245
|
- lib/pennyworth/cli/actions/text.rb
|
|
@@ -237,6 +252,7 @@ files:
|
|
|
237
252
|
- lib/pennyworth/inflector.rb
|
|
238
253
|
- lib/pennyworth/integrations/git_hub/client.rb
|
|
239
254
|
- lib/pennyworth/integrations/ruby_gems/client.rb
|
|
255
|
+
- lib/pennyworth/integrations/standard_gems/client.rb
|
|
240
256
|
- lib/pennyworth/loaders/encodings.rb
|
|
241
257
|
- lib/pennyworth/loaders/http_statuses.rb
|
|
242
258
|
- lib/pennyworth/loaders/projects.rb
|
|
@@ -255,6 +271,7 @@ files:
|
|
|
255
271
|
- lib/pennyworth/presenters/http_status.rb
|
|
256
272
|
- lib/pennyworth/presenters/repository.rb
|
|
257
273
|
- lib/pennyworth/presenters/standard_error.rb
|
|
274
|
+
- lib/pennyworth/presenters/standard_gem.rb
|
|
258
275
|
- lib/pennyworth/presenters/system/error.rb
|
|
259
276
|
- lib/pennyworth/presenters/system/signal.rb
|
|
260
277
|
- lib/pennyworth/presenters/text.rb
|
|
@@ -293,7 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
293
310
|
- !ruby/object:Gem::Version
|
|
294
311
|
version: '0'
|
|
295
312
|
requirements: []
|
|
296
|
-
rubygems_version: 3.4.
|
|
313
|
+
rubygems_version: 3.4.17
|
|
297
314
|
signing_key:
|
|
298
315
|
specification_version: 4
|
|
299
316
|
summary: A command line interface for augmenting Alfred workflows.
|
metadata.gz.sig
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
���G�yW��*�_Ӝ��3����@�yb�a�?��;�1a%d�}k0����2zN�{/�7� ����\Y����7V,!4.ۃ��BS�tBj(��ΐ
|
|
2
|
+
c��i��Sm~ɻzH��[\ z�~�z�\O>紧�C��r�ƶ�b�q���P�%S�o����P�g���<���Q@�Y>0079�z
|
|
3
|
+
�EIV\�)�� n�'0Iy2y�ʔ���ؒ��J��a&���vV�:��w4�2���,�CU��\[�ʗeNm"��K���d�hk!�j��Α�uJIO�T2iu�V����8�>��}��6�����4�$�12����Ә��+�Ceڜ��$�|[4&��d��h�#�����o����ل��B7�NYI- �K��u�y�
|