rubyhelper 1.1 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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