rubyhelper 1.4.3 → 1.5.alpha1
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +1 -0
- data/lib/gem-version.rb +1 -1
- data/lib/rubyhelper/array.rb +2 -2
- data/lib/rubyhelper/csv.rb +44 -0
- data/lib/rubyhelper/hash.rb +16 -0
- data/lib/rubyhelper/string.rb +1 -1
- data/lib/rubyhelper/string_numeric.rb +1 -1
- data/lib/rubyhelper.rb +1 -0
- data/rubyhelper.gemspec +2 -0
- data/test/test_csv.rb +17 -0
- data/test/test_hash.rb +14 -5
- data.tar.gz.sig +0 -0
- metadata +9 -6
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35ad4a8c23600591470df5510a9f51b9c4801eaa
|
4
|
+
data.tar.gz: 7491fd29cb9622bb6295b7011d859df8ce3edbe7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 385108ecc4dad34199c3bbe1aaae92d6338fb6fa2603d7f2a8844980bb3d0227ddb53ce0487f8c2ace977c9d597d5ca3ebfcf6032abe7072079c8aa6393747d8
|
7
|
+
data.tar.gz: 4b7d342d03910a02f3b7a40cba46d15c5f645e38dafd82fb436277b4a8b17256cd1f1453704721d507832ab4c7a1433c595329e1cb5366b236bef2d6fd5cd2e7
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# rubyhelper
|
2
|
+
[](https://gitter.im/pouleta/rubyhelper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
2
3
|
|
3
4
|
Last Stable Gem
|
4
5
|
[](http://badge.fury.io/rb/rubyhelper)
|
data/lib/gem-version.rb
CHANGED
data/lib/rubyhelper/array.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
module CSVHelper
|
4
|
+
|
5
|
+
# the function split in multiple csv the current data
|
6
|
+
#
|
7
|
+
# @param names a list of with every csv you want to create. Every will have the same account of data (except the last) and will be take in the order
|
8
|
+
# @return the number of files created
|
9
|
+
def split(*names)
|
10
|
+
return if names.empty? # if no file, no split
|
11
|
+
headers = self.header_row? # check if headers exists
|
12
|
+
csv = self.to_a # save the entiere csv
|
13
|
+
headers = headers ? csv.first.to_h.keys : nil # if headers exists, save it
|
14
|
+
csv_size = csv.size # save the csv size
|
15
|
+
chunk_size = csv_size / names.size
|
16
|
+
chunk_size = 1 if chunk_size.zero? # min size is 1
|
17
|
+
|
18
|
+
# keep only the NLINES first chunks
|
19
|
+
names[0..csv_size].each_with_index do |name, i|
|
20
|
+
CSV.open(name, 'wb') do |f|
|
21
|
+
f << headers if headers
|
22
|
+
csv[(i*chunk_size)..((i+1)*chunk_size-1)].map(&:fields).each{|l| f << l}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
return [names.size, csv_size].min
|
26
|
+
end
|
27
|
+
|
28
|
+
# see #{split}.
|
29
|
+
#
|
30
|
+
# @param n [Fixnum] the number of subcsv
|
31
|
+
# @param basename [String] the base of each files. will be N_basename
|
32
|
+
# @param path [String] the directory to create the files
|
33
|
+
def split_in_parts(n=1, basename='temporary.csv', path='/tmp')
|
34
|
+
names = 1.upto(n).map do |i|
|
35
|
+
Pathname.new(path) + (i.to_s + '_' + basename)
|
36
|
+
end
|
37
|
+
return split(*names)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
class CSV
|
43
|
+
prepend CSVHelper
|
44
|
+
end
|
data/lib/rubyhelper/hash.rb
CHANGED
@@ -15,6 +15,22 @@ module HashHelper
|
|
15
15
|
return self
|
16
16
|
end
|
17
17
|
|
18
|
+
# Rename the keys of a Hash like '{old_ney => new_key}'
|
19
|
+
#
|
20
|
+
# @param keys [Hash]
|
21
|
+
# @return [Hash]
|
22
|
+
def rekeys keys={}
|
23
|
+
raise ArgumentError, 'keys must be a Hash' unless keys.is_a? Hash
|
24
|
+
d = self.dup
|
25
|
+
keys.each_key{|old_key| d.delete(old_key)}
|
26
|
+
return d.tap{keys.each{|old_key, new_key| d[new_key] = self[old_key]}}
|
27
|
+
end
|
28
|
+
|
29
|
+
# see {Hash#rekeys}
|
30
|
+
def rekeys!
|
31
|
+
return self.replace(self.rekeys(keys))
|
32
|
+
end
|
33
|
+
|
18
34
|
end
|
19
35
|
|
20
36
|
class Hash
|
data/lib/rubyhelper/string.rb
CHANGED
@@ -33,7 +33,7 @@ module StringHelper
|
|
33
33
|
# @param replace [String] if a char is not utf8 valid, character will replace it
|
34
34
|
# @return [String] self changed without accents and non-utf-8 chars
|
35
35
|
def to_plain(case_mod = nil, replace='')
|
36
|
-
return self.p(replace).
|
36
|
+
return self.p(replace).encode('ASCII', invalid: :replace, undef: :replace, replace: replace).to_case(case_mod)
|
37
37
|
end
|
38
38
|
|
39
39
|
# see {#to_plain}
|
@@ -157,7 +157,7 @@ module StringNumericHelper
|
|
157
157
|
# @return [Float]
|
158
158
|
def ha2m2
|
159
159
|
v = self.get_1float
|
160
|
-
return
|
160
|
+
return 0.0 if v.empty?
|
161
161
|
m2_i = self.index(/m(2|²)/i)
|
162
162
|
ha_i = self.index(/ha|hectar/i)
|
163
163
|
return v.to_fi if ha_i.nil? or (not m2_i.nil? and m2_i < ha_i)
|
data/lib/rubyhelper.rb
CHANGED
@@ -11,6 +11,7 @@ require_relative 'rubyhelper/numeric.rb'
|
|
11
11
|
require_relative 'rubyhelper/fixnum.rb'
|
12
12
|
require_relative 'rubyhelper/time.rb'
|
13
13
|
require_relative 'rubyhelper/hash.rb'
|
14
|
+
require_relative 'rubyhelper/csv.rb'
|
14
15
|
|
15
16
|
# extension advanced
|
16
17
|
# require_relative 'rubyhelper/argumenterror.rb'
|
data/rubyhelper.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
"lib/rubyhelper/fixnum.rb",
|
21
21
|
"lib/rubyhelper/time.rb",
|
22
22
|
"lib/rubyhelper/hash.rb",
|
23
|
+
"lib/rubyhelper/csv.rb",
|
23
24
|
# "lib/rubyhelper/argumenterror.rb",
|
24
25
|
"README.md",
|
25
26
|
"Rakefile",
|
@@ -30,6 +31,7 @@ Gem::Specification.new do |s|
|
|
30
31
|
"test/test_fixnum.rb",
|
31
32
|
"test/test_string.rb",
|
32
33
|
"test/test_string_numeric.rb",
|
34
|
+
"test/test_csv.rb",
|
33
35
|
]
|
34
36
|
s.homepage = "https://gitlab.com/poulet_a/rubyhelper"
|
35
37
|
s.license = "GNU/GPLv3"
|
data/test/test_csv.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require_relative '../lib/rubyhelper'
|
4
|
+
|
5
|
+
require 'csv'
|
6
|
+
require 'pry'
|
7
|
+
|
8
|
+
class CSVHelperTest < Minitest::Test
|
9
|
+
|
10
|
+
# TODO : create a csv, test it, get the results for compare
|
11
|
+
def test_split
|
12
|
+
d = CSV.open('/tmp/test.csv', headers: true)
|
13
|
+
d.split_in_parts(576, '.csv', '/tmp')
|
14
|
+
assert_equal(true, true)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/test/test_hash.rb
CHANGED
@@ -7,11 +7,20 @@ class HashHelperTest < Minitest::Test
|
|
7
7
|
def test_except
|
8
8
|
assert_equal({ :data => :a, :datb => :b },
|
9
9
|
{
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
:datx => :x,
|
11
|
+
:data => :a,
|
12
|
+
:datb => :b,
|
13
|
+
:datc => :c,
|
14
|
+
}.except!(:datx, :datc))
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_rekeys
|
18
|
+
assert_equal({new1: 1, new2: 42, stage: 1},
|
19
|
+
{
|
20
|
+
old1: 1,
|
21
|
+
old2: 42,
|
22
|
+
stage: 1,
|
23
|
+
}.rekeys(old1: :new1, old2: :new2))
|
15
24
|
end
|
16
25
|
|
17
26
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyhelper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- poulet_a
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
+lG6tRo8QaFrH3afOmy4VUaG84Jm1XjNYnyaOfLb9ItpcQgVySn2c3aJ2PLcPljM
|
32
32
|
EhZUryAiV8KNMQ==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2014-
|
34
|
+
date: 2014-12-19 00:00:00.000000000 Z
|
35
35
|
dependencies: []
|
36
36
|
description: Improvements and additions by poulet_a to the basic ruby classes
|
37
37
|
email:
|
@@ -45,6 +45,7 @@ email:
|
|
45
45
|
- lib/rubyhelper/fixnum.rb
|
46
46
|
- lib/rubyhelper/time.rb
|
47
47
|
- lib/rubyhelper/hash.rb
|
48
|
+
- lib/rubyhelper/csv.rb
|
48
49
|
- README.md
|
49
50
|
- Rakefile
|
50
51
|
- rubyhelper.gemspec
|
@@ -54,6 +55,7 @@ email:
|
|
54
55
|
- test/test_fixnum.rb
|
55
56
|
- test/test_string.rb
|
56
57
|
- test/test_string_numeric.rb
|
58
|
+
- test/test_csv.rb
|
57
59
|
executables: []
|
58
60
|
extensions: []
|
59
61
|
extra_rdoc_files: []
|
@@ -63,6 +65,7 @@ files:
|
|
63
65
|
- lib/gem-version.rb
|
64
66
|
- lib/rubyhelper.rb
|
65
67
|
- lib/rubyhelper/array.rb
|
68
|
+
- lib/rubyhelper/csv.rb
|
66
69
|
- lib/rubyhelper/fixnum.rb
|
67
70
|
- lib/rubyhelper/hash.rb
|
68
71
|
- lib/rubyhelper/numeric.rb
|
@@ -71,6 +74,7 @@ files:
|
|
71
74
|
- lib/rubyhelper/time.rb
|
72
75
|
- rubyhelper.gemspec
|
73
76
|
- test/test_array.rb
|
77
|
+
- test/test_csv.rb
|
74
78
|
- test/test_fixnum.rb
|
75
79
|
- test/test_hash.rb
|
76
80
|
- test/test_numeric.rb
|
@@ -91,14 +95,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
95
|
version: '0'
|
92
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
97
|
requirements:
|
94
|
-
- - "
|
98
|
+
- - ">"
|
95
99
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
100
|
+
version: 1.3.1
|
97
101
|
requirements: []
|
98
102
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.
|
103
|
+
rubygems_version: 2.2.2
|
100
104
|
signing_key:
|
101
105
|
specification_version: 4
|
102
106
|
summary: See Changelog
|
103
107
|
test_files: []
|
104
|
-
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|