tbpgr_utils 0.0.27 → 0.0.28
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.
- data/README.md +52 -0
- data/lib/open_classes/array.rb +33 -0
- data/lib/open_classes/file.rb +22 -0
- data/lib/tbpgr_utils/version.rb +1 -1
- data/lib/tbpgr_utils.rb +1 -0
- data/spec/open_classes/array_spec.rb +1008 -935
- data/spec/open_classes/file_spec.rb +76 -0
- metadata +15 -12
data/README.md
CHANGED
@@ -30,6 +30,7 @@ Or install it yourself as:
|
|
30
30
|
|[TbpgrUtils Array#together_delete_at](#arraytogether_delete_at) |together version of Array#delete_at. together_delete_at has alias :tdelete_at |
|
31
31
|
|[TbpgrUtils Array#together_delete_if](#arraytogether_delete_if) |together version of Array#delete_if. together_delete_if has alias :tdelete_if |
|
32
32
|
|[TbpgrUtils Array#together_empty?](#arraytogether_empty) |together version of Array#empty?. together_empty? has alias :tempty? |
|
33
|
+
|[TbpgrUtils Array#together_fill](#arraytogether_fill) |together version of Array#fill. together_fill has alias :tfill |
|
33
34
|
|[TbpgrUtils Array#together_map](#arraytogether_mapor-tmap-together_collect-tcollect) |together version of Enumerable#map. together_map has aliases [:tmap, :together_collect, :tcollect] |
|
34
35
|
|[TbpgrUtils Array#together_map!](#arraytogether_map-1or-tmap-1-together_collect-1-tcollect-1) |together version of Enumerable#map!. together_map! has aliases [:tmap!, :together_collect!, :tcollect!] |
|
35
36
|
|[TbpgrUtils Array#together_reduce](#arraytogether_reduceor-treduce-together_inject-tinject) |together version of Enumerable#reduce. together_reduce has aliases [:treduce, :together_inject, :tinject] |
|
@@ -39,6 +40,7 @@ Or install it yourself as:
|
|
39
40
|
|[AttributesInitializable::ClassMethods.attr_accessor_init](#attributesinitializableclassmethodsattr_accessor_init) |generate attr_accessor + initializer |
|
40
41
|
|[AttributesInitializable::ClassMethods.attr_reader_init](#attributesinitializableclassmethodsattr_reader_init) |generate attr_reader + initializer |
|
41
42
|
|[AttributesInitializable::ClassMethods.attr_writer init](#attributesinitializableclassmethodsattr_writer_init) |generate attr_writer + initializer |
|
43
|
+
|[TbpgrUtils File.insert_bom](#fileinsert_bom) |insert BOM to UTF-8 File |
|
42
44
|
|[Ghostable module](#ghostable) |help to create ghost method(dynamic method define by ussing method_missing + pattern-method-name) |
|
43
45
|
|[TbpgrUtils Kernel#bulk_define_methods](#kernelbulk_define_methods) |define methods to classes. methods have simple return value. |
|
44
46
|
|[TestToolbox Kernel#capture_stdout](#kernelcapture_stdout) |capture STDOUT |
|
@@ -256,6 +258,36 @@ print ret # => false
|
|
256
258
|
|
257
259
|
[back to list](#list)
|
258
260
|
|
261
|
+
### Array#together_fill
|
262
|
+
not use block case
|
263
|
+
~~~ruby
|
264
|
+
require 'tbpgr_utils'
|
265
|
+
|
266
|
+
lists = [[*1..5], [*6..10]]
|
267
|
+
ret = lists.together_fill(99)
|
268
|
+
print ret # => [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
|
269
|
+
~~~
|
270
|
+
|
271
|
+
use block, no args case
|
272
|
+
~~~ruby
|
273
|
+
require 'tbpgr_utils'
|
274
|
+
|
275
|
+
lists = [[*1..5], [*6..10]]
|
276
|
+
ret = lists.together_fill { |i|(i + 1) + 1 }
|
277
|
+
print ret # => [[2, 3, 4, 5, 6], [2, 3, 4, 5, 6]]
|
278
|
+
~~~
|
279
|
+
|
280
|
+
use block, has args case
|
281
|
+
~~~ruby
|
282
|
+
require 'tbpgr_utils'
|
283
|
+
|
284
|
+
lists = [[*1..5], [*6..10]]
|
285
|
+
ret = lists.together_fill(2) { |i|(i + 1) + 1 }
|
286
|
+
print ret # => [[1, 2, 4, 5, 6], [6, 7, 4, 5, 6]]
|
287
|
+
~~~
|
288
|
+
|
289
|
+
[back to list](#list)
|
290
|
+
|
259
291
|
### Array#together_map(or tmap, together_collect, tcollect)
|
260
292
|
~~~ruby
|
261
293
|
require 'tbpgr_utils'
|
@@ -568,6 +600,25 @@ atr_sample2.instance_variable_get "@atr2" # => atr2
|
|
568
600
|
|
569
601
|
[back to list](#list)
|
570
602
|
|
603
|
+
### File.insert_bom
|
604
|
+
* this method's main purpose is 'UTF-8 Excel CSV File'.
|
605
|
+
|
606
|
+
output bommed text from input.csv to output.csv
|
607
|
+
~~~ruby
|
608
|
+
require 'tbpgr_utils'
|
609
|
+
|
610
|
+
File.insert_bom("input.csv", "output.csv") # => output bommed text to output.csv
|
611
|
+
~~~
|
612
|
+
|
613
|
+
output bommed text from input.csv to input.csv
|
614
|
+
~~~ruby
|
615
|
+
require 'tbpgr_utils'
|
616
|
+
|
617
|
+
File.insert_bom("input.csv") # => output bommed text to output.csv
|
618
|
+
~~~
|
619
|
+
|
620
|
+
[back to list](#list)
|
621
|
+
|
571
622
|
### Ghostable
|
572
623
|
* include Ghostable
|
573
624
|
* create ghost method by using Ghostable::ghost_method
|
@@ -980,6 +1031,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
980
1031
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
981
1032
|
|
982
1033
|
## History
|
1034
|
+
* version 0.0.28 : add Array#together_fill(alias tfill). add File.insert_bom.
|
983
1035
|
* version 0.0.27 : add Array#together_empty?(alias tempty?)
|
984
1036
|
* version 0.0.26 : add Array#together_delete_if(alias tdelete_if)
|
985
1037
|
* version 0.0.25 : add Array#together_delete_at(alias tdelete_at)
|
data/lib/open_classes/array.rb
CHANGED
@@ -358,6 +358,38 @@ class Array
|
|
358
358
|
is_empty
|
359
359
|
end
|
360
360
|
|
361
|
+
# Arrays bulk fill.
|
362
|
+
#
|
363
|
+
# together_fill has alias :tfill
|
364
|
+
#
|
365
|
+
# not use block case
|
366
|
+
# lists = [[*1..5], [*6..10]]
|
367
|
+
# ret = lists.together_fill(99)
|
368
|
+
# print ret # => [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
|
369
|
+
#
|
370
|
+
# use block, no args case
|
371
|
+
# lists = [[*1..5], [*6..10]]
|
372
|
+
# ret = lists.together_fill { |i|(i + 1) + 1 }
|
373
|
+
# print ret # => [[2, 3, 4, 5, 6], [2, 3, 4, 5, 6]]
|
374
|
+
#
|
375
|
+
# use block, has args case
|
376
|
+
# lists = [[*1..5], [*6..10]]
|
377
|
+
# ret = lists.together_fill(2) { |i|(i + 1) + 1 }
|
378
|
+
# print ret # => [[1, 2, 4, 5, 6], [6, 7, 4, 5, 6]]
|
379
|
+
def together_fill(fill_value = nil, &block)
|
380
|
+
if_not_contain_array_rails_type_error
|
381
|
+
if block
|
382
|
+
fill_value = 0 if fill_value.nil?
|
383
|
+
first.each_with_index do |i_v, i|
|
384
|
+
next if i < fill_value
|
385
|
+
each { |list|list[i] = yield(i) }
|
386
|
+
end
|
387
|
+
else
|
388
|
+
each { |list|list.fill fill_value }
|
389
|
+
end
|
390
|
+
self
|
391
|
+
end
|
392
|
+
|
361
393
|
private
|
362
394
|
|
363
395
|
def if_not_contain_array_rails_type_error
|
@@ -414,6 +446,7 @@ class Array
|
|
414
446
|
alias_method :tdelete_at, :together_delete_at
|
415
447
|
alias_method :tdelete_if, :together_delete_if
|
416
448
|
alias_method :tempty?, :together_empty?
|
449
|
+
alias_method :tfill, :together_fill
|
417
450
|
alias_methods [:together_collect, :tmap, :tcollect], :together_map
|
418
451
|
alias_methods [:together_collect!, :tmap!, :tcollect!], :together_map!
|
419
452
|
alias_methods [:together_find_all, :tselect, :tfindall], :together_select
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# File
|
4
|
+
class File
|
5
|
+
# insert BOM to UTF-8 File
|
6
|
+
#
|
7
|
+
# this method's main purpose is 'UTF-8 Excel CSV File'.
|
8
|
+
#
|
9
|
+
# File.insert_bom("input.csv", "output.csv") # => output bommed text to output.csv
|
10
|
+
# File.insert_bom("input.csv") # => output bommed text to input.csv
|
11
|
+
def self.insert_bom(input_filename, output_filename = nil)
|
12
|
+
src = File.read(input_filename)
|
13
|
+
output_filename ||= input_filename
|
14
|
+
File.open(output_filename, 'w:UTF-8') do |f|
|
15
|
+
src = ' ' + src
|
16
|
+
src.setbyte(0, 0xEF)
|
17
|
+
src.setbyte(1, 0xBB)
|
18
|
+
src.setbyte(2, 0xBF)
|
19
|
+
f.print src
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/tbpgr_utils/version.rb
CHANGED