utils 0.82.0 → 0.83.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
- data/bin/irb_client +68 -0
- data/lib/utils/config_file.rb +11 -0
- data/lib/utils/irb/irb_server.rb +219 -0
- data/lib/utils/irb.rb +46 -0
- data/lib/utils/version.rb +1 -1
- data/utils.gemspec +6 -6
- metadata +7 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: feae6a2fca0157be211250ec430f5f21a1c155653ace2c13b40ac20b281eca09
|
|
4
|
+
data.tar.gz: 9a5e7c3a34a1ead5023dde6b152d6d94a2f596a75405615fe109a931807a8b29
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2038fbdb9eb1822f8b095fba1620f90ddfdd71220496fd8c25a8b4a51d50c535a77fde0f6b4433bd0eca2101753cd54c4dc266644f7235736333b8f1e6f43201
|
|
7
|
+
data.tar.gz: 9cdff942de8097052d296f06bdc8e5f7a75572a8ccd2c63831a37248a6b9d1f0f99f0d92c400b1888e3007eb40816c2b1ee2e0a37ea0852b6e10de3bd1d16b28
|
data/bin/irb_client
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'utils/irb'
|
|
4
|
+
include Utils::IRB
|
|
5
|
+
|
|
6
|
+
def usage
|
|
7
|
+
<<~EOT
|
|
8
|
+
Usage: #{File.basename($0)} ACTION
|
|
9
|
+
|
|
10
|
+
Actions:
|
|
11
|
+
store_snippet Store code snippet from STDIN as current snippet
|
|
12
|
+
retrieve_current_snippet Show the currently stored snippet
|
|
13
|
+
eval_current_snippet Evaluate the currently stored snippet
|
|
14
|
+
execute_current_snippet Execute the currently stored snippet (no output)
|
|
15
|
+
execute_snippet Execute code snippet from STDIN (no output)
|
|
16
|
+
eval_snippet Evaluate code snippet from STDIN and print result
|
|
17
|
+
eval_lines Evaluate code lines from STDIND and print comment results
|
|
18
|
+
stop_server Stop the IRB server
|
|
19
|
+
|
|
20
|
+
Examples:
|
|
21
|
+
# Evaluate code and get result
|
|
22
|
+
echo '2 + 2' | #{File.basename($0)} eval_snippet
|
|
23
|
+
# => 4
|
|
24
|
+
|
|
25
|
+
# Execute code (no output)
|
|
26
|
+
echo 'puts "hello"' | #{File.basename($0)} execute_snippet
|
|
27
|
+
|
|
28
|
+
# Store code snippet
|
|
29
|
+
echo 'def hello; "world"; end' | #{File.basename($0)} store_snippet
|
|
30
|
+
|
|
31
|
+
# Work with stored snippets
|
|
32
|
+
echo 'def hello; "world"; end' | #{File.basename($0)} store_snippet
|
|
33
|
+
#{File.basename($0)} retrieve_current_snippet
|
|
34
|
+
# => def hello; "world"; end
|
|
35
|
+
#{File.basename($0)} eval_current_snippet
|
|
36
|
+
# => "world"
|
|
37
|
+
|
|
38
|
+
# Stop server
|
|
39
|
+
#{File.basename($0)} stop_server
|
|
40
|
+
EOT
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
case action = ARGV.shift || 'usage'
|
|
44
|
+
when 'store_snippet'
|
|
45
|
+
irb_client.send(action, STDIN.read)
|
|
46
|
+
when 'retrieve_current_snippet'
|
|
47
|
+
puts irb_client.send('eval_snippet', '@snippet')
|
|
48
|
+
when 'eval_current_snippet'
|
|
49
|
+
puts irb_client.send('eval_snippet', 'eval(@snippet)')
|
|
50
|
+
when 'execute_current_snippet'
|
|
51
|
+
puts irb_client.send('execute_snippet', 'eval(@snippet)')
|
|
52
|
+
when 'execute_snippet'
|
|
53
|
+
irb_client.send(action, STDIN.read)
|
|
54
|
+
when 'eval_snippet'
|
|
55
|
+
puts irb_client.send(action, STDIN.read)
|
|
56
|
+
when 'eval_lines'
|
|
57
|
+
prefix = ARGV.shift || ' # => '
|
|
58
|
+
lines = STDIN.readlines
|
|
59
|
+
if lines.empty?
|
|
60
|
+
abort "No input provided"
|
|
61
|
+
else
|
|
62
|
+
puts irb_client.send('eval_lines', lines, prefix)
|
|
63
|
+
end
|
|
64
|
+
when 'stop_server'
|
|
65
|
+
irb_client.send(action)
|
|
66
|
+
else
|
|
67
|
+
abort usage
|
|
68
|
+
end
|
data/lib/utils/config_file.rb
CHANGED
|
@@ -288,6 +288,17 @@ class Utils::ConfigFile
|
|
|
288
288
|
@probe ||= Probe.new
|
|
289
289
|
end
|
|
290
290
|
|
|
291
|
+
# The irb_server_url method configures the URL for the IRB server
|
|
292
|
+
# communication.
|
|
293
|
+
#
|
|
294
|
+
# This method sets up a DSL accessor for the IRB server URL, providing a
|
|
295
|
+
# default value that uses a Unix domain socket located in the current working
|
|
296
|
+
# directory.
|
|
297
|
+
#
|
|
298
|
+
# @return [ String ] the configured IRB server URL including the default
|
|
299
|
+
# socket path
|
|
300
|
+
dsl_accessor :irb_server_url, "unix://#{Pathname.pwd + 'irb.socket'}"
|
|
301
|
+
|
|
291
302
|
# A configuration class for file system operations.
|
|
292
303
|
#
|
|
293
304
|
# This class manages the configuration settings for searching and discovering
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
# A class that provides server functionality for interactive Ruby (IRB)
|
|
5
|
+
# sessions.
|
|
6
|
+
#
|
|
7
|
+
# This class manages an IRB server instance that can receive and process code
|
|
8
|
+
# snippets for evaluation. It handles communication through Unix domain
|
|
9
|
+
# sockets, allowing external clients to send code for execution and receive the
|
|
10
|
+
# results back.
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# server = Utils::IRB::IRBServer.new(url: 'unix:///tmp/irb.sock')
|
|
14
|
+
# server.start
|
|
15
|
+
# #
|
|
16
|
+
# client = Utils::IRB::IRBServer.new(url: 'unix:///tmp/irb.sock')
|
|
17
|
+
# client.store_snippet('puts "Hello World"')
|
|
18
|
+
# result = server.eval_snippet('2 + 2')
|
|
19
|
+
class Utils::IRB::IRBServer
|
|
20
|
+
# The initialize method sets up a new IRBServer instance with the specified
|
|
21
|
+
# URL.
|
|
22
|
+
#
|
|
23
|
+
# This method configures the IRB server by initializing a logger for error
|
|
24
|
+
# reporting and storing the provided URL for server communication.
|
|
25
|
+
#
|
|
26
|
+
# @param url [ String ] the URL to be used for the IRB server communication
|
|
27
|
+
def initialize(url:, log_out: nil)
|
|
28
|
+
@url = url
|
|
29
|
+
@log_out = log_out
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# The url reader method provides access to the URL instance variable.
|
|
33
|
+
#
|
|
34
|
+
# @return [ String ] the URL value stored in the instance variable
|
|
35
|
+
attr_reader :url
|
|
36
|
+
|
|
37
|
+
# The snippet reader method provides access to the snippet instance variable.
|
|
38
|
+
#
|
|
39
|
+
# @return [ Object ] the snippet value stored in the instance variable
|
|
40
|
+
attr_reader :snippet
|
|
41
|
+
|
|
42
|
+
# The start method initializes and begins operation of the IRB server.
|
|
43
|
+
#
|
|
44
|
+
# This method sets up the server by building the underlying socket connection,
|
|
45
|
+
# logging the start event, and configuring a background receiver to handle
|
|
46
|
+
# incoming messages. It processes different message actions such as storing
|
|
47
|
+
# code snippets or evaluating code, and responds appropriately to each
|
|
48
|
+
# message type.
|
|
49
|
+
#
|
|
50
|
+
# @return [ Utils::IRB::IRBServer ] returns self to allow for method chaining
|
|
51
|
+
def start
|
|
52
|
+
@server = build_server
|
|
53
|
+
@logger.info "Starting #{self.class.name} server on #{@url}."
|
|
54
|
+
@server.receive_in_background do |message|
|
|
55
|
+
case message.action
|
|
56
|
+
when 'store'
|
|
57
|
+
@snippet = message.snippet
|
|
58
|
+
@logger.info "Stored #{message.to_json}."
|
|
59
|
+
when 'execute'
|
|
60
|
+
time_eval { eval(message.snippet) }
|
|
61
|
+
@logger.info "Execution of #{message.to_json} took %.2fs" % @eval_duration
|
|
62
|
+
when 'eval'
|
|
63
|
+
result = time_eval { eval(message.snippet) }
|
|
64
|
+
@logger.info "Evaluation of #{message.to_json} took %.2fs" % @eval_duration
|
|
65
|
+
message.respond(result: result.to_s, type: message.action)
|
|
66
|
+
when 'eval_lines'
|
|
67
|
+
b = binding
|
|
68
|
+
result = message.lines.map do |line|
|
|
69
|
+
l = line.chomp
|
|
70
|
+
r = b.eval(l)
|
|
71
|
+
[ l, message.prefix, r ].join
|
|
72
|
+
end.join(?\n)
|
|
73
|
+
message.respond(result: result, type: message.action)
|
|
74
|
+
when 'stop'
|
|
75
|
+
@logger.info "Stopping #{self.class.name} server on #{@url}."
|
|
76
|
+
Thread.current.exit
|
|
77
|
+
else
|
|
78
|
+
@logger.warn("Message for action #{message.action.inspect} not supported.")
|
|
79
|
+
end
|
|
80
|
+
rescue => e
|
|
81
|
+
@logger.error("#{self.class.name} caught #{e.class}: #{e} for #{message.to_json}.")
|
|
82
|
+
end
|
|
83
|
+
self
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# The store_snippet method transmits a code snippet to the client for storage.
|
|
87
|
+
#
|
|
88
|
+
# This method prepares a transmission request containing the specified code
|
|
89
|
+
# snippet and sends it to the client using the build_client mechanism. It is
|
|
90
|
+
# designed to facilitate the storage of code snippets within the system's
|
|
91
|
+
# communication protocol.
|
|
92
|
+
#
|
|
93
|
+
# @param code [ String ] the code snippet to be stored
|
|
94
|
+
#
|
|
95
|
+
# @return [ Utils::IRB::IRBServer ] returns self to allow for method chaining
|
|
96
|
+
def store_snippet(code)
|
|
97
|
+
build_client.transmit({ action: 'store', snippet: code })
|
|
98
|
+
self
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# The execute_snippet method sends a code snippet to the IRB server for
|
|
102
|
+
# execution and waits for the response.
|
|
103
|
+
#
|
|
104
|
+
# This method transmits an execute command along with the provided code
|
|
105
|
+
# snippet to the IRB server, allowing the server to evaluate the code and
|
|
106
|
+
# return the result.
|
|
107
|
+
#
|
|
108
|
+
# @param code [ String ] the code snippet to be executed
|
|
109
|
+
#
|
|
110
|
+
# @return [ Utils::IRB::IRBServer ] returns self to allow for method chaining
|
|
111
|
+
def execute_snippet(code)
|
|
112
|
+
build_client.transmit({ action: 'execute', snippet: code })
|
|
113
|
+
self
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# The eval_snippet method sends a code snippet to the IRB server for
|
|
117
|
+
# evaluation and returns the result.
|
|
118
|
+
#
|
|
119
|
+
# This method transmits the provided code snippet to the IRB server for
|
|
120
|
+
# execution, waits for the server's response, and extracts the evaluation
|
|
121
|
+
# result from the response.
|
|
122
|
+
#
|
|
123
|
+
# @param code [ String ] the code snippet to be evaluated
|
|
124
|
+
#
|
|
125
|
+
# @return [ String ] the result of the code snippet evaluation as a string
|
|
126
|
+
def eval_snippet(code)
|
|
127
|
+
message = build_client.transmit_with_response(
|
|
128
|
+
{ action: 'eval', snippet: code }
|
|
129
|
+
)
|
|
130
|
+
message.result
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# The eval_lines method sends a series of code lines to the IRB server for
|
|
134
|
+
# evaluation and returns the formatted results.
|
|
135
|
+
#
|
|
136
|
+
# This method transmits multiple lines of code to the IRB server for
|
|
137
|
+
# execution, with each line being evaluated in sequence. It includes a prefix
|
|
138
|
+
# for each result line and returns the combined output from the evaluation.
|
|
139
|
+
#
|
|
140
|
+
# @param lines [ Array<String> ] the array of code lines to be evaluated
|
|
141
|
+
# @param prefix [ String ] the prefix to be added to each result line, defaults to ' # => '
|
|
142
|
+
#
|
|
143
|
+
# @return [ String ] the formatted results from evaluating the code lines
|
|
144
|
+
def eval_lines(lines, prefix = ' # => ')
|
|
145
|
+
message = build_client.transmit_with_response(
|
|
146
|
+
{ action: 'eval_lines', prefix:, lines: }
|
|
147
|
+
)
|
|
148
|
+
message.result
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# The stop_server method sends a stop command to the IRB server.
|
|
152
|
+
#
|
|
153
|
+
# This method communicates with the IRB server to request a graceful shutdown
|
|
154
|
+
# of the server process by transmitting a stop action.
|
|
155
|
+
#
|
|
156
|
+
# @return [ nil ] always returns nil after sending the stop command
|
|
157
|
+
def stop_server
|
|
158
|
+
build_client.transmit({ action: 'stop' })
|
|
159
|
+
nil
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
private
|
|
163
|
+
|
|
164
|
+
# The setup_logger method configures the log output destination for the IRB
|
|
165
|
+
# server.
|
|
166
|
+
#
|
|
167
|
+
# This method determines whether a log output path has been provided, and if
|
|
168
|
+
# not, constructs a default log path using the XDG state home directory or a
|
|
169
|
+
# fallback to the user's local state directory. It ensures the log directory
|
|
170
|
+
# exists and creates a new log file for writing.
|
|
171
|
+
#
|
|
172
|
+
# @return [ String ] the path to the log file that will be used for logging
|
|
173
|
+
def setup_logger
|
|
174
|
+
unless @log_out
|
|
175
|
+
xdg_dir = File.expand_path(ENV.fetch('XDG_STATE_HOME', '~/.local/state'))
|
|
176
|
+
log_path = Pathname.new(xdg_dir) + 'utils'
|
|
177
|
+
FileUtils.mkdir_p log_path
|
|
178
|
+
log_path += 'irb-server.log'
|
|
179
|
+
@log_out = File.new(log_path, ?a)
|
|
180
|
+
end
|
|
181
|
+
@log_out.sync = true
|
|
182
|
+
@logger = Logger.new(@log_out)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
# The build_server method creates and returns a Unix domain socket server
|
|
186
|
+
# instance based on the URL configuration
|
|
187
|
+
#
|
|
188
|
+
# This method initializes a socket server by delegating to the
|
|
189
|
+
# UnixSocks.from_url factory method, which constructs an appropriate server
|
|
190
|
+
# type (TCP or domain socket) based on the URL scheme and configuration
|
|
191
|
+
# parameters
|
|
192
|
+
#
|
|
193
|
+
# @return [ UnixSocks::TCPSocketServer, UnixSocks::DomainSocketServer ] a new
|
|
194
|
+
# socket server instance configured according to the URL specification
|
|
195
|
+
def build_server
|
|
196
|
+
setup_logger
|
|
197
|
+
UnixSocks.from_url(url)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
alias build_client build_server
|
|
201
|
+
|
|
202
|
+
# The time_eval method measures the execution duration of a block.
|
|
203
|
+
#
|
|
204
|
+
# This method records the start time before yielding to the provided block,
|
|
205
|
+
# then calculates the elapsed time after the block completes, storing the
|
|
206
|
+
# duration in an instance variable for later access.
|
|
207
|
+
#
|
|
208
|
+
# @param block [ Proc ] the block of code to measure execution time for
|
|
209
|
+
#
|
|
210
|
+
# @return [ Object ] the result of the block execution
|
|
211
|
+
#
|
|
212
|
+
# @api private
|
|
213
|
+
def time_eval(&block)
|
|
214
|
+
s = Time.now
|
|
215
|
+
block.()
|
|
216
|
+
ensure
|
|
217
|
+
@eval_duration = Time.now - s
|
|
218
|
+
end
|
|
219
|
+
end
|
data/lib/utils/irb.rb
CHANGED
|
@@ -704,6 +704,50 @@ module Utils
|
|
|
704
704
|
nil
|
|
705
705
|
end
|
|
706
706
|
|
|
707
|
+
# The irb_server method provides access to an IRB server instance for
|
|
708
|
+
# interactive Ruby sessions.
|
|
709
|
+
#
|
|
710
|
+
# This method ensures that a single IRB server instance is created and
|
|
711
|
+
# started for the current process, loading the configuration from
|
|
712
|
+
# standard paths and using the configured server URL.
|
|
713
|
+
#
|
|
714
|
+
# @return [ Utils::IRB::IRBServer ] the IRB server instance, initialized
|
|
715
|
+
# and started if not already running
|
|
716
|
+
def irb_server
|
|
717
|
+
unless @irb_server
|
|
718
|
+
config = Utils::ConfigFile.new.tap(&:configure_from_paths)
|
|
719
|
+
@irb_server = Utils::IRB::IRBServer.new(url: config.irb_server_url).start
|
|
720
|
+
end
|
|
721
|
+
@irb_server
|
|
722
|
+
end
|
|
723
|
+
|
|
724
|
+
# The irb_server_stop method sends a stop command to the IRB server
|
|
725
|
+
# client.
|
|
726
|
+
#
|
|
727
|
+
# This method accesses the IRB client instance and invokes the
|
|
728
|
+
# stop_server method on it, which gracefully shuts down the IRB server
|
|
729
|
+
# process.
|
|
730
|
+
#
|
|
731
|
+
# @return [ nil ] always returns nil after sending the stop command to
|
|
732
|
+
# the server
|
|
733
|
+
def irb_server_stop
|
|
734
|
+
irb_client.stop_server
|
|
735
|
+
end
|
|
736
|
+
|
|
737
|
+
# The irb_client method provides access to an IRB server client instance.
|
|
738
|
+
#
|
|
739
|
+
# This method creates and returns a new IRB server client by first
|
|
740
|
+
# loading the configuration from standard paths and then using the
|
|
741
|
+
# configured server URL
|
|
742
|
+
# to initialize the client.
|
|
743
|
+
#
|
|
744
|
+
# @return [ Utils::IRB::IRBServer ] a new IRB server client instance configured
|
|
745
|
+
# with the URL from the application's configuration
|
|
746
|
+
def irb_client
|
|
747
|
+
config = Utils::ConfigFile.new.tap(&:configure_from_paths)
|
|
748
|
+
Utils::IRB::IRBServer.new(url: config.irb_server_url)
|
|
749
|
+
end
|
|
750
|
+
|
|
707
751
|
# The ed method opens files for editing using the system editor.
|
|
708
752
|
#
|
|
709
753
|
# This method provides a convenient way to edit files by invoking the
|
|
@@ -837,6 +881,8 @@ module Utils
|
|
|
837
881
|
end
|
|
838
882
|
end
|
|
839
883
|
|
|
884
|
+
require 'utils/irb/irb_server'
|
|
885
|
+
|
|
840
886
|
Utils::IRB.configure
|
|
841
887
|
|
|
842
888
|
class String
|
data/lib/utils/version.rb
CHANGED
data/utils.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: utils 0.
|
|
2
|
+
# stub: utils 0.83.0 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "utils".freeze
|
|
6
|
-
s.version = "0.
|
|
6
|
+
s.version = "0.83.0".freeze
|
|
7
7
|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
9
9
|
s.require_paths = ["lib".freeze]
|
|
@@ -11,9 +11,9 @@ Gem::Specification.new do |s|
|
|
|
11
11
|
s.date = "1980-01-02"
|
|
12
12
|
s.description = "This ruby gem provides some useful command line utilities".freeze
|
|
13
13
|
s.email = "flori@ping.de".freeze
|
|
14
|
-
s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "classify".freeze, "code_comment".freeze, "code_indexer".freeze, "commit_message".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rainbow".freeze, "rd2md".freeze, "search".freeze, "sedit".freeze, "serve".freeze, "ssh-tunnel".freeze, "strip_spaces".freeze, "sync_dir".freeze, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze, "yaml_check".freeze]
|
|
15
|
-
s.extra_rdoc_files = ["README.md".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze]
|
|
16
|
-
s.files = ["Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/code_indexer".freeze, "bin/commit_message".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rainbow".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze, "utils.gemspec".freeze]
|
|
14
|
+
s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "classify".freeze, "code_comment".freeze, "code_indexer".freeze, "commit_message".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "irb_client".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rainbow".freeze, "rd2md".freeze, "search".freeze, "sedit".freeze, "serve".freeze, "ssh-tunnel".freeze, "strip_spaces".freeze, "sync_dir".freeze, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze, "yaml_check".freeze]
|
|
15
|
+
s.extra_rdoc_files = ["README.md".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/irb/irb_server.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze]
|
|
16
|
+
s.files = ["Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/code_indexer".freeze, "bin/commit_message".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/irb_client".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rainbow".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/irb/irb_server.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe.rb".freeze, "lib/utils/probe/probe_client.rb".freeze, "lib/utils/probe/probe_server.rb".freeze, "lib/utils/probe/process_job.rb".freeze, "lib/utils/probe/server_handling.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze, "utils.gemspec".freeze]
|
|
17
17
|
s.homepage = "http://github.com/flori/utils".freeze
|
|
18
18
|
s.licenses = ["GPL-2.0".freeze]
|
|
19
19
|
s.rdoc_options = ["--title".freeze, "Utils - Some useful command line utilities".freeze, "--main".freeze, "README.md".freeze]
|
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
|
23
23
|
|
|
24
24
|
s.specification_version = 4
|
|
25
25
|
|
|
26
|
-
s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.16.
|
|
26
|
+
s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.16.3".freeze])
|
|
27
27
|
s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
|
|
28
28
|
s.add_runtime_dependency(%q<unix_socks>.freeze, ["~> 0.3".freeze])
|
|
29
29
|
s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.51".freeze])
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.83.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Frank
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 2.16.
|
|
18
|
+
version: 2.16.3
|
|
19
19
|
type: :development
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 2.16.
|
|
25
|
+
version: 2.16.3
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: test-unit
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -277,6 +277,7 @@ executables:
|
|
|
277
277
|
- enum
|
|
278
278
|
- git-empty
|
|
279
279
|
- git-versions
|
|
280
|
+
- irb_client
|
|
280
281
|
- json_check
|
|
281
282
|
- long_lines
|
|
282
283
|
- myex
|
|
@@ -306,6 +307,7 @@ extra_rdoc_files:
|
|
|
306
307
|
- lib/utils/finder.rb
|
|
307
308
|
- lib/utils/grepper.rb
|
|
308
309
|
- lib/utils/irb.rb
|
|
310
|
+
- lib/utils/irb/irb_server.rb
|
|
309
311
|
- lib/utils/line_blamer.rb
|
|
310
312
|
- lib/utils/line_formatter.rb
|
|
311
313
|
- lib/utils/md5.rb
|
|
@@ -336,6 +338,7 @@ files:
|
|
|
336
338
|
- bin/enum
|
|
337
339
|
- bin/git-empty
|
|
338
340
|
- bin/git-versions
|
|
341
|
+
- bin/irb_client
|
|
339
342
|
- bin/json_check
|
|
340
343
|
- bin/long_lines
|
|
341
344
|
- bin/myex
|
|
@@ -362,6 +365,7 @@ files:
|
|
|
362
365
|
- lib/utils/finder.rb
|
|
363
366
|
- lib/utils/grepper.rb
|
|
364
367
|
- lib/utils/irb.rb
|
|
368
|
+
- lib/utils/irb/irb_server.rb
|
|
365
369
|
- lib/utils/line_blamer.rb
|
|
366
370
|
- lib/utils/line_formatter.rb
|
|
367
371
|
- lib/utils/md5.rb
|