refined-refinements 0.0.2.3 → 0.0.2.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: 4fc3be8d68c3052ffea8311e45bdef17c25b333e4ae3128f089fb6c6e862a7d5
4
- data.tar.gz: a83193ae99ad5ef2e719d1d0524b920ee0942d81ddea3959e582a3a5404788a4
3
+ metadata.gz: 547988a8cf6bef7cd70cdc4ac0f4dea1a943f1ef4471be71619042f351809050
4
+ data.tar.gz: 95fe3fae78320daa206d3d929ec05a8a737431a5c687b2c30ef80b3c6d4cdc7f
5
5
  SHA512:
6
- metadata.gz: 266f550bb3c5878534eb31593c18d1bbe5c0b1dbdf95812a595cc26f100bbe0e7b6cf2f4b1e8b2e34e1aca8e1ad3aa3cc3caea9f8cfedaa6891a60d1f202b3e3
7
- data.tar.gz: '084a6326193a094fdd57f92d2f27430f8a08dd489d9a6401ba49967fa16a7f8555a3a3052daab4bcd30009e3123b9401009e037318fd9704b87d27d3f898059b'
6
+ metadata.gz: 3d0d126efd64be8b2f9e48495088a28916a20f52b1c842e495aaa741f6c387f6092009afd017624c2af75b8f51cd7a7f8e064384de2d5734ef034cf3a2323116
7
+ data.tar.gz: c5857d2f22d070ee44b2a41fe6dd058671967c5d4185c3baea0ba8960bfbe46406d961b943856544d444af4b218e91cf798818eb7f4292300392a228f736414c
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open-uri'
2
4
  require 'base64'
3
5
  require 'socket' # undefined SocketError otherwise, it's weird.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'refined-refinements/string'
2
4
  require 'refined-refinements/colours'
3
5
 
@@ -14,18 +16,18 @@ module RR
14
16
  end
15
17
 
16
18
  def help_template(program_name)
17
- <<-EOF
18
- <red.bold>:: #{program_name} ::</red.bold>
19
+ <<~EOF
20
+ <red.bold>:: #{program_name} ::</red.bold>
19
21
 
20
- <cyan.bold>Commands</cyan.bold>
22
+ <cyan.bold>Commands</cyan.bold>
21
23
  EOF
22
24
  end
23
25
 
24
26
  def help
25
- self.commands.reduce(self.help_template) do |buffer, (command_name, command_class)|
27
+ self.commands.reduce(self.help_template) { |buffer, (command_name, command_class)|
26
28
  command_help = command_class.help && command_class.help.split("\n").map { |line| line.sub(/^ {4}/, '') }.join("\n")
27
29
  command_class.help ? [buffer, command_help].join("\n") : buffer
28
- end.colourise
30
+ }.colourise
29
31
  end
30
32
 
31
33
  def commands
@@ -46,7 +48,7 @@ module RR
46
48
  class << self
47
49
  attr_accessor :help
48
50
  def main_command
49
- File.basename($0)
51
+ File.basename($PROGRAM_NAME)
50
52
  end
51
53
  end
52
54
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # def prompt_type
2
4
  # @prompt.prompt(:type, 'Type', options: Expense::TYPES) do
3
5
  # clean_value do |raw_value|
@@ -23,7 +25,7 @@ module RR
23
25
  def validate_raw_value(*regexps, allow_empty: nil)
24
26
  @callbacks[:validate_raw_value] = Proc.new do |raw_value|
25
27
  unless (allow_empty && raw_value.empty?) || regexps.any? { |regexp| raw_value.match(regexp) }
26
- raise InvalidResponse.new("Doesn't match any of the regexps.")
28
+ raise InvalidResponse, "Doesn't match any of the regexps."
27
29
  end
28
30
  end
29
31
  end
@@ -41,14 +43,14 @@ module RR
41
43
  clean_value = @callbacks[:get_clean_value].call(raw_value)
42
44
 
43
45
  unless @callbacks[:validate_clean_value].call(clean_value)
44
- raise InvalidResponse.new("validate_clean_value failed")
46
+ raise InvalidResponse, "validate_clean_value failed"
45
47
  end
46
48
 
47
49
  clean_value
48
50
  end
49
51
 
50
52
  def self_or_retrieve_by_index(list, raw_value, default_value = nil)
51
- if raw_value.match(/^\d+$/)
53
+ if /^\d+$/.match?(raw_value)
52
54
  list[raw_value.to_i - 1]
53
55
  elsif raw_value.empty?
54
56
  default_value
@@ -58,19 +60,19 @@ module RR
58
60
  end
59
61
 
60
62
  def retrieve_by_index_or_self_if_on_the_list(list, raw_value, default_value = nil)
61
- if raw_value.match(/^\d+$/)
63
+ if /^\d+$/.match?(raw_value)
62
64
  list[raw_value.to_i - 1]
63
65
  elsif list.include?(raw_value)
64
66
  raw_value
65
67
  elsif raw_value.empty? && default_value
66
68
  default_value
67
69
  else
68
- raise InvalidResponse.new(raw_value)
70
+ raise InvalidResponse, raw_value
69
71
  end
70
72
  end
71
73
 
72
74
  def convert_money_to_cents(raw_value)
73
- if raw_value.match(/\./)
75
+ if /\./.match?(raw_value)
74
76
  raw_value.delete('.').to_i
75
77
  else
76
78
  "#{raw_value}00".to_i
@@ -98,7 +100,7 @@ module RR
98
100
  help = help(**options)
99
101
  prompt = "<bold>#{prompt_text}</bold>#{" (#{help})" if help}: ".colourise
100
102
  @data[key] = answer.run(@block.call(prompt))
101
- raise InvalidResponse.new if @data[key].nil? && options[:required]
103
+ raise InvalidResponse if @data[key].nil? && options[:required]
102
104
  @data[key]
103
105
  rescue InvalidResponse => error
104
106
  puts "<red>Invalid response</red> (#{error.message}), try again.".colourise
@@ -113,7 +115,7 @@ module RR
113
115
  # TODO: If it evals as nil, shall we still add it to the data?
114
116
  def help(help: nil, options: Array.new, default: nil, **rest)
115
117
  if help then help
116
- elsif help.nil? && ! options.empty?
118
+ elsif help.nil? && !options.empty?
117
119
  options = options.map.with_index { |key, index|
118
120
  if default == key
119
121
  "<green.bold>#{key}</green.bold> <bright_black>default</bright_black>"
@@ -122,7 +124,7 @@ module RR
122
124
  end
123
125
  }.join(' ').colourise
124
126
  # default ? "#{options}; defaults to #{default}" : options
125
- else end
127
+ end
126
128
  end
127
129
 
128
130
  def set_completion_proc(proc, character = ' ', &block)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
  require 'forwardable'
3
5
  require 'pathname'
@@ -22,11 +24,9 @@ module RR
22
24
 
23
25
  def items(&block)
24
26
  @items ||= self.load_raw_collection.map do |data|
25
- begin
26
27
  block.call(data)
27
- rescue => error
28
+ rescue StandardError => error
28
29
  abort "Loading item #{data.inspect} failed: #{error.message}.\n\n#{error.backtrace}"
29
- end
30
30
  end
31
31
  end
32
32
 
@@ -48,7 +48,7 @@ module RR
48
48
  end
49
49
 
50
50
  def filter_out(filter_name, &block)
51
- @activity_filters[filter_name] = Proc.new { |item| ! block.call(item) } if block
51
+ @activity_filters[filter_name] = Proc.new { |item| !block.call(item) } if block
52
52
  self
53
53
  end
54
54
 
@@ -57,7 +57,7 @@ module RR
57
57
  end
58
58
 
59
59
  def has_filter?(filter_name)
60
- @activity_filters.has_key?(filter_name)
60
+ @activity_filters.key?(filter_name)
61
61
  end
62
62
 
63
63
  def filtered_out_items(filter_name)
@@ -99,7 +99,7 @@ module RR
99
99
 
100
100
  def save_to(path)
101
101
  updated_data = self.serialise
102
- if (! File.exist?(path)) || File.read(path) != updated_data
102
+ if !File.exist?(path) || File.read(path) != updated_data
103
103
  path.open('w') do |file|
104
104
  file.write(updated_data)
105
105
  end
@@ -48,7 +48,7 @@ module RR
48
48
 
49
49
  # block.call(result, Array.new, options) #unless was_called
50
50
 
51
- result.match(RR::ColourExts::REGEXP) ? result.colourise(options.merge(recursed: true)) : result #block.call(result, [options[:bold] ? :bold : nil].compact, options)
51
+ result.match?(RR::ColourExts::REGEXP) ? result.colourise(options.merge(recursed: true)) : result #block.call(result, [options[:bold] ? :bold : nil].compact, options)
52
52
  end
53
53
 
54
54
  # FIXME: bold true doesn't do anything for the text that is not wrapped
@@ -56,7 +56,7 @@ module RR
56
56
  def colourise(options = Hash.new)
57
57
  colours = RR::ColourExts.colours
58
58
 
59
- self.parse_colours(options) do |inner_text, methods, options|
59
+ self.dup.parse_colours(options) do |inner_text, methods, options|
60
60
  methods.reduce(inner_text) do |result, method|
61
61
  # (print ' '; p [:r, result, method]) if result.match(/(<\/[^>]+>)/) ####
62
62
  result.gsub!(/(<\/[^>]+>)/, "#{colours.send(method)}\\1")
@@ -127,7 +127,7 @@ module RR
127
127
 
128
128
  def titlecase
129
129
  @template_string.sub(/>(#{self.remove_tags[0]})/) do |match|
130
- ">#{$1.upcase}"
130
+ ">#{Regexp.last_match(1).upcase}"
131
131
  end
132
132
  end
133
133
 
@@ -178,3 +178,7 @@ end
178
178
  # puts s1.colourise, ''
179
179
  # puts s2.colourise(bold: true), ''
180
180
  # puts s3.colourise, ''
181
+ #
182
+ # OR DIRECT (without .colourise):
183
+ # using RR::ColouredTerminal
184
+ # puts "<green>Test</green>"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'curses'
2
4
  require 'refined-refinements/curses/colours'
3
5
  require 'refined-refinements/curses/commander'
@@ -45,7 +47,7 @@ class App
45
47
  end
46
48
 
47
49
  def destroy
48
- raise QuitAppError.new
50
+ raise QuitAppError
49
51
  end
50
52
 
51
53
  def set_up
@@ -68,7 +70,7 @@ class App
68
70
 
69
71
  until (char = window.getch) == 13 || @quit
70
72
  begin
71
- if (190..200).include?(char) # Reading unicode.
73
+ if (190..200).cover?(char) # Reading unicode.
72
74
  char_buffer = [char]
73
75
  else
74
76
  char_buffer << char
@@ -77,7 +79,7 @@ class App
77
79
  end
78
80
  rescue KeyboardInterrupt => interrupt
79
81
  begin
80
- unknown_key_handler.call(interrupt) if unknown_key_handler
82
+ unknown_key_handler&.call(interrupt)
81
83
  rescue QuitError
82
84
  @quit = true
83
85
  end
@@ -111,7 +113,7 @@ class App
111
113
  # window.write([:input, buffer].inspect + "\n")
112
114
  # window.refresh
113
115
  # sleep 2.5
114
- return buffer
116
+ buffer
115
117
  end
116
118
 
117
119
  def commander
@@ -142,11 +144,11 @@ class App
142
144
  cursor = buffer.length
143
145
  when 11 # Ctrl+k.
144
146
  # yank_register = buffer[cursor..-1] # Ctrl+y suspends it currently.
145
- if cursor == 0
146
- buffer = ''
147
+ buffer = if cursor == 0
148
+ ''
147
149
  else
148
- buffer = buffer[0..(cursor - 1)]
149
- end
150
+ buffer[0..(cursor - 1)]
151
+ end
150
152
  when 127 # Backspace.
151
153
  unless buffer.empty?
152
154
  buffer = buffer[0..-2]; cursor -= 1
@@ -160,11 +162,11 @@ class App
160
162
  @history_index ||= @history.length - 1
161
163
 
162
164
  window.setpos(window.cury + 1, 0)
163
- window.write("DBG: #{@history_index}, #{(0..@history.length).include?(@history_index)}")
165
+ window.write("DBG: #{@history_index}, #{(0..@history.length).cover?(@history_index)}")
164
166
  window.setpos(window.cury - 1, cursor + original_x)
165
167
  window.refresh
166
168
 
167
- if (0..@history.length).include?(@history_index)
169
+ if (0..@history.length).cover?(@history_index)
168
170
  @buffer_before_calling_history = buffer
169
171
  buffer = @history[@history_index - 1]
170
172
  else
@@ -188,9 +190,9 @@ class App
188
190
  # window.addch(char)
189
191
  buffer.insert(cursor, char); cursor += 1
190
192
  else
191
- raise KeyboardInterrupt.new(char) # TODO: Just return it, it's not really an error.
193
+ raise KeyboardInterrupt, char # TODO: Just return it, it's not really an error.
192
194
  end
193
195
 
194
- return buffer, cursor
196
+ [buffer, cursor]
195
197
  end
196
198
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'refined-refinements/colours'
2
4
 
3
5
  module RR
@@ -28,7 +30,7 @@ module RR
28
30
  attributes << (Curses.color_pair(fg_colour) | Curses::COLOR_WHITE)
29
31
  end
30
32
 
31
- if ! attributes.empty? && ! colours.include?(:clear)
33
+ if !attributes.empty? && !colours.include?(:clear)
32
34
  self.multi_attron(*attributes) do
33
35
  self.addstr(chunk)
34
36
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'refined-refinements/string'
2
4
 
3
5
  class QuitError < StandardError
@@ -92,7 +94,7 @@ class Commander
92
94
  def available_commands_help
93
95
  commands_help = @commands.reduce(Array.new) { |buffer, command|
94
96
  keys_text = command.keys.join_with_and('or') { |word| "<yellow.bold>#{word}</yellow.bold>" }
95
- buffer << "#{keys_text}"
97
+ buffer << keys_text.to_s
96
98
  }.join_with_and
97
99
 
98
100
  "<green>Available commands</green> are #{commands_help}. Press <yellow>?</yellow> for <red>help</red>."
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'date'
2
4
 
3
5
  module RR
@@ -8,7 +10,7 @@ module RR
8
10
  end
9
11
 
10
12
  def weekday?
11
- ! self.weekend?
13
+ !self.weekend?
12
14
  end
13
15
  end
14
16
  end
@@ -1,17 +1,19 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RR
2
4
  class Homepath
3
5
  def initialize(path)
4
- if path.start_with?('~')
5
- @path = File.expand_path(path)
6
+ @path = if path.start_with?('~')
7
+ File.expand_path(path)
6
8
  else
7
- @path = path # Can be relative.
8
- end
9
+ path # Can be relative.
10
+ end
9
11
  end
10
12
 
11
13
  def to_s
12
14
  @path.sub(ENV['HOME'], '~')
13
15
  end
14
- alias_method :inspect, :to_s
16
+ alias inspect to_s
15
17
 
16
18
  def expand
17
19
  @path
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Hour
2
4
  def self.parse(string)
3
5
  hours, minutes = string.split(':')
@@ -42,7 +44,7 @@ class Hour
42
44
  elsif hour_or_minutes.is_a?(Integer)
43
45
  self.class.new(0, @minutes.send(method_name, hour_or_minutes))
44
46
  else
45
- raise TypeError.new("Hour or Integer (for minutes) expected, got #{hour_or_minutes.class}.")
47
+ raise TypeError, "Hour or Integer (for minutes) expected, got #{hour_or_minutes.class}."
46
48
  end
47
49
  end
48
50
  end
@@ -71,7 +73,7 @@ class Hour
71
73
  elsif anotherHour.is_a?(Time)
72
74
  self.send(method_name, Hour.now)
73
75
  else
74
- raise TypeError.new("#{self.class}##{method_name} expects #{self.class} or Time object.")
76
+ raise TypeError, "#{self.class}##{method_name} expects #{self.class} or Time object."
75
77
  end
76
78
  end
77
79
  end
@@ -79,7 +81,7 @@ class Hour
79
81
  def inspect
80
82
  "#{self.hours}:#{format('%02d', self.minutes_over_the_hour)}"
81
83
  end
82
- alias_method :to_s, :inspect
84
+ alias to_s inspect
83
85
 
84
86
  def to_time(today = Time.now)
85
87
  Time.new(today.year, today.month, today.day, self.hours, self.minutes_over_the_hour)
@@ -1,3 +1,5 @@
1
+ # rubocop:disable all
2
+
1
3
  module RR
2
4
  module MatchingExts
3
5
  # Counter-intuitively when regexp replacement methods are called with a block,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RR
2
4
  module StringExts
3
5
  refine String do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refined-refinements
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.3
4
+ version: 0.0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James C Russell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-02 00:00:00.000000000 Z
11
+ date: 2018-07-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: "."
14
14
  email: james@101ideas.cz