rubyhelper 1.1 → 1.1.1

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
  SHA1:
3
- metadata.gz: 8c4d2809b4dda8c8b540cf6b28af9da23d2c57ee
4
- data.tar.gz: 96df84faa2992e584bf94b9319c1407d5f3f7a30
3
+ metadata.gz: d6851b40a4cf69a6d0a3754db488f38a3e5f7938
4
+ data.tar.gz: 53db33d7c1fa2860abdf3f63c3561f92d93872f4
5
5
  SHA512:
6
- metadata.gz: a06c5760573007230d36e172ae138704c353b6752df955134a7fe7f8cdb133846c28ec50a875624b247e9c1e28a560477f046014baaa4492406237569f9f3a88
7
- data.tar.gz: 215fa6f0575db0c7083b3165b8b143ceb243eac4354eec4a73db42d975670c4b2903bc3f9116f8a1741f9d5a9bcbc9032bf261aa0c2be603ac9e52c6a79aa37a
6
+ metadata.gz: c6cc4317fb023e6e2c0026c3fb50e7b37d56d13242fb27337fc9f4bba49dbf63ae2614d3d21a1b40c9a83ef415b3dff853633191798d902b925b1aa2d405c354
7
+ data.tar.gz: e7ff30b52e7a1f85692993e871359c533b5dc9d87a1ecfd10345d6242cfb0bd96675fd05d2a2e8a1f12441c33eae7eb3fe285cf166f6d898b296e9234eecf553
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- s`቏�Z��L��e4]U ~Q�1)���E=��HQх�'��/�=�7D��K���),A��8)�2XDJK���J�J�Z|�Ģ]�P��G-�J��j�˳jú�b�9��e�gq�cj�=��G�-!�`�n�r��ٲ��=
2
- �� hg���G�AfR�e�jL��:��%�P4��KdU�W<���
1
+ ��y��
2
+ ��u�ϊ�[%�
3
+ �]�i����PE��B�(����1�}d�t�X˨�Q���Eg�pg��3/PNzn�J��.�.e���(��Q���m���w'�"���믷��ZJ�<�b�(jZ
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Gem [![Gem Version](https://badge.fury.io/rb/rubyhelper.svg)](http://badge.fury.io/rb/rubyhelper)
4
4
  Dev [![GitHub version](https://badge.fury.io/gh/pouleta%2Frubyhelper.svg)](http://badge.fury.io/gh/pouleta%2Frubyhelper)
5
5
 
6
- You can see the documentation here : https://www.omniref.com/ruby/gems/rubyhelper
6
+ You can see the documentation here : http://rubydoc.info/gems/rubyhelper/
7
7
 
8
8
  ## How is it works ?
9
9
  See the [wtf] section too know what is exactly this stuff.
@@ -55,15 +55,21 @@ is a little messy. Don't look back 1.1 ;)
55
55
 
56
56
 
57
57
  # TODO
58
- - Benchmark Hash.except with
58
+ ## Benchmark
59
+ - Hash.except with
59
60
  ```
60
61
  h.delete_if{|k| [:a].include? k}
61
62
  ```
62
- - Improve documentation
63
- - Prepare the v1.0
64
- - Improve VersionHelper tests
63
+
64
+ ## Improve VersionHelper
65
+ - Add test
66
+ - Add more documentation
67
+
68
+ ## Improve main tests
69
+ - Add few tests for untested features
70
+ - Improve existing tests (mainly on StringHelper)
65
71
 
66
72
  # Contributors
67
73
  - poulet_a : Creator and main developper. Feel free to ask me a question by email.
68
- email : arthur.poulet AT cryptolab.net
69
- OpenPGP : 0x6D9EA34A
74
+ email : arthur.poulet AT cryptolab.net [OpenPGP : 0x6D9EA34A]
75
+
@@ -25,21 +25,37 @@ module ArrayHelper
25
25
  # Do the sum of an array of integer.
26
26
  # if there is not integer, it will do a to_s.to_i of the element to try
27
27
  # find an integer in the element. else, replace by a simple 0
28
+ # == Params:
29
+ # none
30
+ # == Returns:
31
+ # sum: (Integer) the sum of each element (converted via .to_s.to_i)
28
32
  def sum
29
33
  return (self.size > 0) ? (self.map{|e| e.to_s.to_i}.reduce(:+)) : (0)
30
34
  end
31
35
 
32
36
  # lke sum by with a to_f instead of to_i
37
+ # == Params:
38
+ # none
39
+ # == Returns:
40
+ # sum: (Float) the sum of each element (converted via .to_s.to_f)
33
41
  def sumf
34
42
  return (self.size > 0) ? (self.map{|e| e.to_s.to_f}.reduce(:+)) : (0.0)
35
43
  end
36
44
 
37
- # Use the sum and divide by the size of the array. 0 if no element.
45
+ # Use the sum and divide by the size of the array.
46
+ # == Params:
47
+ # none
48
+ # == Returns:
49
+ # average: (Integer) self.sum / self.size. 0 if no elements
38
50
  def average
39
51
  return (self.size > 0) ? (self.sum / self.size) : (0)
40
52
  end
41
53
 
42
54
  # Same than average but use to_f instead of to_i
55
+ # == Params:
56
+ # none
57
+ # == Returns:
58
+ # average: (Float) self.sumf / self.size. 0.0 if no elements
43
59
  def averagef
44
60
  return (self.size > 0) ? (self.sumf / self.size.to_f) : (0.0)
45
61
  end
@@ -47,11 +63,12 @@ module ArrayHelper
47
63
  # get the n higher values of the array
48
64
  # == Errors:
49
65
  # - ArgumentError : if n in not an integer
66
+ # - ArgumentError : if n is lesser than 1
50
67
  # == Params:
51
68
  # - n: (Integer) number of elements
52
69
  def maxs(n=1)
53
70
  raise ArgumentError, 'Argument is not an integer' unless n.is_a? Integer
54
- n = 1 if n < 1
71
+ raise ArgumentError, 'Argument is lesser than 1' unless n >= 1
55
72
  n = self.size if n > self.size
56
73
  return Array(self.sort[(-n)..(-1)])
57
74
  end
@@ -59,19 +76,28 @@ module ArrayHelper
59
76
  # get the n lower values of the array
60
77
  # == Errors:
61
78
  # - ArgumentError : if n in not an integer
79
+ # - ArgumentError : if n is lesser than 1
62
80
  # == Params:
63
81
  # - n: (Integer) number of elements
64
82
  def mins(n=1)
65
83
  raise ArgumentError, 'Argument is not an integer' unless n.is_a? Integer
84
+ raise ArgumentError, 'Argument is lesser than 1' unless n >= 1
66
85
  n = 1 if n < 1
67
86
  n = self.size if n > self.size
68
87
  return Array(self.sort[0..(n-1)])
69
88
  end
70
89
 
71
90
  # The Same as compact but remove empty string too
91
+ # see #compact
92
+ # == Params:
93
+ # none
94
+ # == Returns:
95
+ # compacti: (Array) compacted array
72
96
  def compacti
73
- return self.map{|e| e = nil if e == "" ; e}.compact
97
+ return self.map{|e| e == "" ? nil : e}.compact
74
98
  end
99
+
100
+ # see #compacti
75
101
  def compacti!
76
102
  return self.replace(self.compacti)
77
103
  end
@@ -1,3 +1,3 @@
1
1
  module RubyHelper
2
- VERSION = '1.1'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -4,10 +4,15 @@
4
4
  module NumericHelper
5
5
 
6
6
  # get - or + function of the sign of the integer
7
+ # == Params:
8
+ # none
9
+ # == Returns:
10
+ # none
7
11
  def sign
8
12
  return (self < 0) ? ("-") : ("+")
9
13
  end
10
14
 
15
+ # Get the self value or minimum_value if greater than self
11
16
  # == Errors:
12
17
  # - ArgumentError : if the passed value is not an integer
13
18
  # == Returns:
@@ -20,6 +25,7 @@ module NumericHelper
20
25
  return self.replace(self.min(minimum_value))
21
26
  end
22
27
 
28
+ # Get the self value or maximum_value if lesser than self
23
29
  # == Errors:
24
30
  # - ArgumentError : if the passed value is not an integer
25
31
  # == Returns:
@@ -5,26 +5,42 @@ require 'digest'
5
5
 
6
6
  module StringHelper
7
7
 
8
+ # Force utf-8 encoding (shortcut ;) ! )
8
9
  # == Params:
9
10
  # - replace: (String) replace invalids chars by other chas
11
+ # == Returns:
12
+ # - self: (String) utf-8 string
10
13
  def utf8 replace=''
11
14
  return self.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: replace)
12
15
  end
16
+
17
+ # see #utf8
13
18
  def utf8!
14
19
  return self.replace(self.utf8)
15
20
  end
16
21
 
17
- # UTF-8 encoding and replace invalid chars, Remove accents from the string. Change the case as first argument if not nil
22
+ # UTF-8 encoding and replace invalid chars.
23
+ # Remove accents from the string (convert to ASCII chars !)
24
+ # And then, change the case as first argument if not nil
18
25
  # == Params:
19
26
  # - case_mod: nil (not changement), :upcase, :capitalize or :downcase
20
27
  # - replace: (String) if a char is not utf8 valid, character will replace it
28
+ # == Returns:
29
+ # - self: (String)
21
30
  def to_plain(case_mod = nil, replace='')
22
31
  return self.p(replace).utf8(replace).to_case(case_mod)
23
32
  end
24
33
 
34
+ # see #to_plain
35
+ def to_plain!(case_mod = nil, replace='')
36
+ return self.replace(self.to_plain(case_mod, replace))
37
+ end
38
+
25
39
  # Remove accents from the string, and replace it by the same letter in ASCII
26
40
  # == Params:
27
41
  # - replace: (String) replace by character default case
42
+ # == Returns:
43
+ # - self: (String)
28
44
  def p(replace='')
29
45
  begin
30
46
  return self.tr("ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
@@ -33,8 +49,10 @@ module StringHelper
33
49
  return self.utf8(replace)
34
50
  end
35
51
  end
36
- def p!
37
- return self.replace(self.p)
52
+
53
+ # see #p
54
+ def p!(replace='')
55
+ return self.replace(self.p(replace))
38
56
  end
39
57
 
40
58
  # permit to do upcase/downcase/capitalize easier with a simple param
@@ -52,6 +70,8 @@ module StringHelper
52
70
  return self
53
71
  end
54
72
  end
73
+
74
+ # see #to_case
55
75
  def to_case!(case_mod = :downcase)
56
76
  return self.replace(self.to_case(case_mod))
57
77
  end
@@ -61,6 +81,8 @@ module StringHelper
61
81
  # == Params:
62
82
  # - replace: a caracter to replace non-ascii chars
63
83
  # - case_mod: nil (not changement), :upcase, :capitalize or :downcase
84
+ # == Returns:
85
+ # - self: (String)
64
86
  def to_ascii(replace="", case_mod = nil)
65
87
  s = String.new
66
88
  self.p.each_char do |c|
@@ -70,21 +92,28 @@ module StringHelper
70
92
  end
71
93
 
72
94
  # improvement of to_f to count "," caracter as "."
73
- def to_f
74
- s = self.dup
75
- self.gsub!(',', '.')
76
- f = super
77
- self.replace(s)
78
- return f
95
+ # == Params:
96
+ # none
97
+ # == Returns:
98
+ # - float: (Float)
99
+ def to_fi
100
+ return self.gsub(',', '.').to_f
79
101
  end
80
102
 
81
- # to_i with delimiter
103
+ # to_i with delimiter to remove
82
104
  # Example : "12.000.000".to_ii => 12000000
105
+ # == Params:
106
+ # - char: char to delete (default : ' ')
107
+ # == Returns:
108
+ # - integer: (Integer)
109
+ # == Errors:
110
+ # ArgumentError: If (param char) is not a String
83
111
  def to_ii(char=' ')
84
- self.delete(char.to_s).to_i
112
+ raise ArgumentError, "Argument is not a String" unless char.is_a? String
113
+ self.delete(char).to_i
85
114
  end
86
115
 
87
- #CRYXOR (one time pad dirt application)
116
+ # CRYXOR (one time pad dirt application)
88
117
  def ^(k)
89
118
  str = ""
90
119
  self.size.times do |i|
@@ -93,10 +122,13 @@ module StringHelper
93
122
  return str
94
123
  end
95
124
 
96
- #SHA2 shortcuts
125
+ # SHA2 shortcuts
126
+ # see #Digest::SHA2.hexdigest
97
127
  def sha2
98
128
  Digest::SHA2.hexdigest(self)
99
129
  end
130
+
131
+ # see #sha2
100
132
  def sha2!
101
133
  return self.replace(self.sha2)
102
134
  end
@@ -139,6 +171,10 @@ module StringHelper
139
171
  end
140
172
 
141
173
  #Returns true or false if the string if "true" or "false". else nil
174
+ # == Params:
175
+ # none
176
+ # == Returns:
177
+ # - true/false
142
178
  def to_t
143
179
  case self
144
180
  when "true"
@@ -153,10 +189,14 @@ module StringHelper
153
189
  #get only the digits and symbols in the string
154
190
  # == Params:
155
191
  # - sign: (true/false) if true, keep the - and + signs
192
+ # == Return:
193
+ # epured_string: (String)
156
194
  def get_int(sign = true)
157
195
  return self.gsub(/[^\-\+\d]/, "") if sign == true
158
196
  return self.gsub(/[^\d]/, "")
159
197
  end
198
+
199
+ # see #get_int
160
200
  def get_int!(sign = true)
161
201
  return self.replace(self.get_int(sign))
162
202
  end
@@ -164,18 +204,28 @@ module StringHelper
164
204
  #as get_int but with . and ,
165
205
  # == Params:
166
206
  # - sign: (true/false) if true, keep the - and + signs
207
+ # == Returns:
208
+ # epured_string: (String)
167
209
  def get_float(sign = true)
168
210
  return self.gsub(/[^\-\+\d\.\,]/, "") if sign == true
169
211
  return self.gsub(/[^\d\.\,]/, "") if sign == true
170
212
  end
213
+
214
+ # see #get_float
171
215
  def get_float!(sign = true)
172
216
  return self.replace(self.get_float(sign))
173
217
  end
174
218
 
175
- # Capitalize a sequence
219
+ # Capitalize a sequence (each word)
220
+ # == Params:
221
+ # none
222
+ # == Returns:
223
+ # capitalized_string: (String)
176
224
  def scapitalize
177
225
  return self.split.map(&:capitalize).join(' ')
178
226
  end
227
+
228
+ # see #scapitalize
179
229
  def scapitalize!
180
230
  return self.replace(self.scapitalize)
181
231
  end
data/test/test_array.rb CHANGED
@@ -29,7 +29,6 @@ class ArrayHelperTest < Minitest::Test
29
29
  end
30
30
 
31
31
  def test_maxs
32
- assert_equal([44], [2,3,1,14,44,-1,1,2].maxs(0))
33
32
  assert_equal([44], [2,3,1,14,44,-1,1,2].maxs(1))
34
33
  assert_equal([14,44], [2,3,1,14,44,-1,1,2].maxs(2))
35
34
  assert_equal([-1,1,1,2,2,3,14,44], [2,3,1,14,44,-1,1,2].maxs(100))
data/test/test_string.rb CHANGED
@@ -32,13 +32,13 @@ class StringHelperTest < Minitest::Test
32
32
  assert_equal("bonjour€".to_ascii("."), "bonjour.")
33
33
  end
34
34
 
35
- def test_to_f
36
- assert_equal("bonjour".to_f, 0.0)
37
- assert_equal("bonj1our".to_f, 0.0)
38
- assert_equal("1.1.1".to_f, 1.1)
39
- assert_equal("1.1".to_f, 1.1)
40
- assert_equal("1,1".to_f, 1.1)
41
- assert_equal(",1,1".to_f, 0.1)
35
+ def test_to_fi
36
+ assert_equal("bonjour".to_fi, 0.0)
37
+ assert_equal("bonj1our".to_fi, 0.0)
38
+ assert_equal("1.1.1".to_fi, 1.1)
39
+ assert_equal("1.1".to_fi, 1.1)
40
+ assert_equal("1,1".to_fi, 1.1)
41
+ assert_equal(",1,1".to_fi, 0.1)
42
42
  end
43
43
 
44
44
  def test_to_ii
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.1'
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - poulet_a
metadata.gz.sig CHANGED
Binary file