youplot 0.4.3 → 0.4.4
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/README.md +4 -0
- data/lib/youplot/command.rb +32 -3
- data/lib/youplot/parser.rb +53 -1
- data/lib/youplot/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a924bdaf315e9b7b8afa65d0f02cdbb22c213fbf80908e2ae30d12d1bc3d9338
|
4
|
+
data.tar.gz: ea42f957954e37d8d1f4eaf3c789e52188f96aff1afbf99dae6179be14ab06d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 602975a225b979ad6ca2a43ef038f18a23b48f034ddb2a06ffa3f4ca0d61cb805e6ef314afd00a897f8bc869fcce8b27fee895ac6e0f3f82bc7cbe8531369632
|
7
|
+
data.tar.gz: 0d9f77815d3c2e7f338dfe42f0b501a51dd9dd3de06cc367a7ee3de52e049a6a7e55ee3afc4cc2a525a724b07412f5807feba3c9aea33966d407d38d96fb8601
|
data/README.md
CHANGED
@@ -241,6 +241,10 @@ bundle exec rake install # Installation from source code
|
|
241
241
|
bundle exec exe/uplot # Run youplot (Try out the edited code)
|
242
242
|
```
|
243
243
|
|
244
|
+
Do you need commit rights to my repository?
|
245
|
+
Do you want to get admin rights and take over the project?
|
246
|
+
If so, please feel free to contact us.
|
247
|
+
|
244
248
|
### Acknowledgements
|
245
249
|
|
246
250
|
* [sampo grafiikka](https://jypg.net/sampo_grafiikka) - Project logo creation
|
data/lib/youplot/command.rb
CHANGED
@@ -40,6 +40,24 @@ module YouPlot
|
|
40
40
|
return
|
41
41
|
end
|
42
42
|
|
43
|
+
# config command
|
44
|
+
if @command == :config
|
45
|
+
if ENV['MYYOUPLOTRC']
|
46
|
+
puts "config file : #{ENV['MYYOUPLOTRC']}"
|
47
|
+
puts parser.config.inspect
|
48
|
+
else
|
49
|
+
puts <<~EOS
|
50
|
+
You don't have a config file. The default config file paths are:
|
51
|
+
./.youplot.yml, ./.youplotrc, ~/.youplot.yml, ~/.youplotrc
|
52
|
+
You can specify a config file with the environment variable MYYOUPLOTRC.
|
53
|
+
File format is YAML. For example:
|
54
|
+
width : 40
|
55
|
+
height : 20
|
56
|
+
EOS
|
57
|
+
end
|
58
|
+
return
|
59
|
+
end
|
60
|
+
|
43
61
|
# progressive mode
|
44
62
|
if options[:progressive]
|
45
63
|
stop = false
|
@@ -63,9 +81,15 @@ module YouPlot
|
|
63
81
|
# normal mode
|
64
82
|
else
|
65
83
|
# Sometimes the input file does not end with a newline code.
|
66
|
-
|
84
|
+
begin
|
85
|
+
begin
|
86
|
+
input = Kernel.gets(nil)
|
87
|
+
rescue Errno::ENOENT => e
|
88
|
+
warn e.message
|
89
|
+
next
|
90
|
+
end
|
67
91
|
main(input)
|
68
|
-
end
|
92
|
+
end until input
|
69
93
|
end
|
70
94
|
end
|
71
95
|
|
@@ -135,7 +159,12 @@ module YouPlot
|
|
135
159
|
rescue CSV::MalformedCSVError => e
|
136
160
|
warn 'Failed to parse the text. '
|
137
161
|
warn 'Please try to set the correct character encoding with --encoding option.'
|
138
|
-
|
162
|
+
warn e.backtrace.grep(/youplot/).first
|
163
|
+
exit 1
|
164
|
+
rescue ArgumentError => e
|
165
|
+
warn 'Failed to parse the text. '
|
166
|
+
warn e.backtrace.grep(/youplot/).first
|
167
|
+
exit 1
|
139
168
|
end
|
140
169
|
|
141
170
|
data
|
data/lib/youplot/parser.rb
CHANGED
@@ -9,7 +9,8 @@ module YouPlot
|
|
9
9
|
class Error < StandardError; end
|
10
10
|
|
11
11
|
attr_reader :command, :options, :params,
|
12
|
-
:main_parser, :sub_parser
|
12
|
+
:main_parser, :sub_parser,
|
13
|
+
:config_file, :config
|
13
14
|
|
14
15
|
def initialize
|
15
16
|
@command = nil
|
@@ -28,6 +29,55 @@ module YouPlot
|
|
28
29
|
)
|
29
30
|
|
30
31
|
@params = Parameters.new
|
32
|
+
|
33
|
+
if @config_file = find_config_file
|
34
|
+
ENV['MYYOUPLOTRC'] = @config_file
|
35
|
+
@config = read_config_file(config_file)
|
36
|
+
configure(config)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def candidate_paths
|
41
|
+
paths = []
|
42
|
+
paths << ENV['MYYOUPLOTRC'] if ENV['MYYOUPLOTRC']
|
43
|
+
paths << '.youplot.yml'
|
44
|
+
paths << '.youplotrc'
|
45
|
+
paths << File.join(ENV['HOME'], '.youplotrc') if ENV['HOME']
|
46
|
+
paths << File.join(ENV['HOME'], '.youplot.yml') if ENV['HOME']
|
47
|
+
paths
|
48
|
+
end
|
49
|
+
|
50
|
+
def find_config_file
|
51
|
+
config_file_path = nil
|
52
|
+
candidate_paths.each do |file|
|
53
|
+
path = File.expand_path(file)
|
54
|
+
if File.exist?(path)
|
55
|
+
config_file_path = path
|
56
|
+
break
|
57
|
+
end
|
58
|
+
end
|
59
|
+
config_file_path
|
60
|
+
end
|
61
|
+
|
62
|
+
def read_config_file(path)
|
63
|
+
require 'yaml'
|
64
|
+
YAML.load_file(path)
|
65
|
+
end
|
66
|
+
|
67
|
+
def configure(config)
|
68
|
+
option_members = @options.members
|
69
|
+
param_members = @params.members
|
70
|
+
# It would be more useful to be able to configure by plot type
|
71
|
+
config.each do |k, v|
|
72
|
+
k = k.to_sym
|
73
|
+
if option_members.include?(k)
|
74
|
+
@options[k] = v
|
75
|
+
elsif param_members.include?(k)
|
76
|
+
@params[k] = v
|
77
|
+
else
|
78
|
+
raise Error, "Unknown option/param: #{k}"
|
79
|
+
end
|
80
|
+
end
|
31
81
|
end
|
32
82
|
|
33
83
|
def create_base_parser
|
@@ -277,6 +327,8 @@ module YouPlot
|
|
277
327
|
options[:color_names] = v
|
278
328
|
end
|
279
329
|
|
330
|
+
when :config
|
331
|
+
|
280
332
|
else
|
281
333
|
error_message = "uplot: unrecognized command '#{command}'"
|
282
334
|
if YouPlot.run_as_executable?
|
data/lib/youplot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: youplot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kojix2
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: unicode_plot
|
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0'
|
67
67
|
requirements: []
|
68
|
-
rubygems_version: 3.
|
68
|
+
rubygems_version: 3.3.7
|
69
69
|
signing_key:
|
70
70
|
specification_version: 4
|
71
71
|
summary: A command line tool for Unicode Plotting
|