youplot 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
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