Module: BBLib::HashPath
- Defined in:
- lib/hash/hash_path_proc.rb
Class Method Summary collapse
- .append(hash, path, value, args, params) ⇒ Object
- .custom(hash, path, value, *args, **params) ⇒ Object
- .delete(hash, path, value, *args, **params) ⇒ Object
- .downcase(hash, path, value, *args, **params) ⇒ Object
- .evaluate(hash, path, value, args, params) ⇒ Object
- .extract(hash, path, value, *args, **params) ⇒ Object
- .extract_first(hash, path, value, *args, **params) ⇒ Object
- .extract_last(hash, path, value, *args, **params) ⇒ Object
- .format_articles(hash, path, value, args, **params) ⇒ Object
- .parse_date(hash, path, value, *args, **params) ⇒ Object
- .parse_duration(hash, path, value, args, params) ⇒ Object
- .parse_file_size(hash, path, value, args, params) ⇒ Object
- .prepend(hash, path, value, args, params) ⇒ Object
- .remove(hash, path, value, *args, **params) ⇒ Object
- .remove_symbols(hash, path, value, *args, **params) ⇒ Object
- .replace(hash, path, value, args, params) ⇒ Object
- .reverse(hash, path, value, *args, **params) ⇒ Object
- .roman(hash, path, value, *args, **params) ⇒ Object
- .split(hash, path, value, args, params) ⇒ Object
- .to_string(hash, path, value, *args, **params) ⇒ Object
- .upcase(hash, path, value, *args, **params) ⇒ Object
Class Method Details
.append(hash, path, value, args, params) ⇒ Object
63 64 65 |
# File 'lib/hash/hash_path_proc.rb', line 63 def self.append hash, path, value, args, params hash.hash_path_set path => "#{value}#{args}" end |
.custom(hash, path, value, *args, **params) ⇒ Object
157 158 159 |
# File 'lib/hash/hash_path_proc.rb', line 157 def self.custom hash, path, value, *args, **params hash.hash_path_set path => value.send(*args) end |
.delete(hash, path, value, *args, **params) ⇒ Object
147 148 149 |
# File 'lib/hash/hash_path_proc.rb', line 147 def self.delete hash, path, value, *args, **params hash.hash_path_delete path end |
.downcase(hash, path, value, *args, **params) ⇒ Object
123 124 125 |
# File 'lib/hash/hash_path_proc.rb', line 123 def self.downcase hash, path, value, *args, **params hash.hash_path_set path => value.to_s.downcase end |
.evaluate(hash, path, value, args, params) ⇒ Object
58 59 60 61 |
# File 'lib/hash/hash_path_proc.rb', line 58 def self.evaluate hash, path, value, args, params exp = args.to_a.first.to_s.gsub('$', value.to_s) hash.hash_path_set path => eval(exp) end |
.extract(hash, path, value, *args, **params) ⇒ Object
81 82 83 84 |
# File 'lib/hash/hash_path_proc.rb', line 81 def self.extract hash, path, value, *args, **params slice = (Array === args && args[1].nil? ? (0..-1) : args[1]) hash.hash_path_set path => value.scan(args.first)[slice] end |
.extract_first(hash, path, value, *args, **params) ⇒ Object
86 87 88 |
# File 'lib/hash/hash_path_proc.rb', line 86 def self.extract_first hash, path, value, *args, **params extract(hash, path, value, *args + [0]) end |
.extract_last(hash, path, value, *args, **params) ⇒ Object
90 91 92 |
# File 'lib/hash/hash_path_proc.rb', line 90 def self.extract_last hash, path, value, *args, **params extract(hash, path, value, *args + [-1]) end |
.format_articles(hash, path, value, args, **params) ⇒ Object
139 140 141 |
# File 'lib/hash/hash_path_proc.rb', line 139 def self.format_articles hash, path, value, args, **params hash.hash_path_set path => value.to_s.move_articles(args.nil? ? :front : args) end |
.parse_date(hash, path, value, *args, **params) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/hash/hash_path_proc.rb', line 94 def self.parse_date hash, path, value, *args, **params format = params.include?(:format) ? params[:format] : '%Y-%m-%d %H:%M:%S' formatted = nil args.each do |pattern| next unless formatted.nil? begin formatted = Time.strptime(value.to_s, pattern.to_s).strftime(format) rescue end end begin if formatted.nil? then formatted = Time.parse(value) end rescue end hash.hash_path_set path => formatted end |
.parse_duration(hash, path, value, args, params) ⇒ Object
111 112 113 |
# File 'lib/hash/hash_path_proc.rb', line 111 def self.parse_duration hash, path, value, args, params hash.hash_path_set path => value.to_s.parse_duration(output: args.empty? ? :sec : args ) end |
.parse_file_size(hash, path, value, args, params) ⇒ Object
115 116 117 |
# File 'lib/hash/hash_path_proc.rb', line 115 def self.parse_file_size hash, path, value, args, params hash.hash_path_set path => value.to_s.parse_file_size(output: args.empty? ? :bytes : args ) end |
.prepend(hash, path, value, args, params) ⇒ Object
67 68 69 |
# File 'lib/hash/hash_path_proc.rb', line 67 def self.prepend hash, path, value, args, params hash.hash_path_set path => "#{args}#{value}" end |
.remove(hash, path, value, *args, **params) ⇒ Object
151 152 153 154 155 |
# File 'lib/hash/hash_path_proc.rb', line 151 def self.remove hash, path, value, *args, **params removed = value.to_s args.each{ |a| removed.gsub!(a, '')} hash.hash_path_set path => removed end |
.remove_symbols(hash, path, value, *args, **params) ⇒ Object
135 136 137 |
# File 'lib/hash/hash_path_proc.rb', line 135 def self.remove_symbols hash, path, value, *args, **params hash.hash_path_set path => value.to_s.drop_symbols end |
.replace(hash, path, value, args, params) ⇒ Object
75 76 77 78 79 |
# File 'lib/hash/hash_path_proc.rb', line 75 def self.replace hash, path, value, args, params value = value.dup.to_s args.each{ |k,v| value.gsub!(k.to_s, v.to_s) } hash.hash_path_set path => value end |
.reverse(hash, path, value, *args, **params) ⇒ Object
143 144 145 |
# File 'lib/hash/hash_path_proc.rb', line 143 def self.reverse hash, path, value, *args, **params hash.hash_path_set path => value.to_s.reverse end |
.roman(hash, path, value, *args, **params) ⇒ Object
131 132 133 |
# File 'lib/hash/hash_path_proc.rb', line 131 def self.roman hash, path, value, *args, **params hash.hash_path_set path => (args[0] == :to ? value.to_s.to_roman : value.to_s.from_roman) end |
.split(hash, path, value, args, params) ⇒ Object
71 72 73 |
# File 'lib/hash/hash_path_proc.rb', line 71 def self.split hash, path, value, args, params hash.hash_path_set path => value.msplit(args) end |
.to_string(hash, path, value, *args, **params) ⇒ Object
119 120 121 |
# File 'lib/hash/hash_path_proc.rb', line 119 def self.to_string hash, path, value, *args, **params hash.hash_path_set path => value.to_s end |
.upcase(hash, path, value, *args, **params) ⇒ Object
127 128 129 |
# File 'lib/hash/hash_path_proc.rb', line 127 def self.upcase hash, path, value, *args, **params hash.hash_path_set path => value.to_s.upcase end |