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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b3b1cbdabc0a74b4010d13fa59fe9724ac9c07783414a7a7584f8cab27b49ec
4
- data.tar.gz: f5cf98b592a248c4d74e06078d97050e85c892e94c0dd78ec17e92f6bdc856d0
3
+ metadata.gz: a924bdaf315e9b7b8afa65d0f02cdbb22c213fbf80908e2ae30d12d1bc3d9338
4
+ data.tar.gz: ea42f957954e37d8d1f4eaf3c789e52188f96aff1afbf99dae6179be14ab06d5
5
5
  SHA512:
6
- metadata.gz: aebe50c600b66e9cb8e3a64da3ddafff70472f495d51b812987cc835017ca19fd1347fbe2ee88fac66e111837ffef59bf6c271f2f6515ae7e60a526050ded5b3
7
- data.tar.gz: b37e2a5a2d8eb33700690d28b6e6f5851fbefb0e88ae10bcb6d9f65f06f966c31b81c7587135c6d296bde0caefbc81239046ec06535cefa9329f2ac6d8a8788f
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
@@ -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
- while (input = Kernel.gets(nil))
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
- raise e
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
@@ -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?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YouPlot
4
- VERSION = '0.4.3'
4
+ VERSION = '0.4.4'
5
5
  end
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.3
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: 2021-11-19 00:00:00.000000000 Z
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.2.26
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