friendly_extensions 0.2.6 → 0.2.7

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/array.rb +1 -5
  3. data/lib/numbers.rb +59 -60
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6354af79708e832401f28a6f2900e405f780e7b2
4
- data.tar.gz: 048844ed29ed97517b3c405bd3a8505ecd51f204
3
+ metadata.gz: 6c9dd59949c5e27d976e6862b96e57a80a9a638f
4
+ data.tar.gz: 570d44c51967a217e540f1a7d6bb91ae4ea67713
5
5
  SHA512:
6
- metadata.gz: b4fc1d9724f7905989ef102edd37a7ae59f778185c40fbb3052279091cf8535ac76ad25354ce64669df280a77ffed5deb02c702531584838029c39b5cb9e1664
7
- data.tar.gz: 1213e7066c6ff69c76efa17c209c8864d3497193d43d3e7dd64e2c0890d7fdbcf023136e3fcdf8eef9d348fa0f5f4dcd77f8a912c47511a4a3ff0ee0376fde64
6
+ metadata.gz: 60720aa317b66cd7be453986e37f12d5ad0b48b27ddef2215a78fdd480fe1d35505335bb3b1384d2c5dae1c14f13213d9ff7144099e95b409bd2175c27e2cee8
7
+ data.tar.gz: 21e68d908e8ba6f0a809179ee6f83571b47dc9870f7f90b918c8d7ae66ea13c5a1a63657d6114a8f54b761234f27ddf746a2accb0819b91afb1846fbf23bbfac
data/lib/array.rb CHANGED
@@ -194,11 +194,7 @@ module ArrayExt
194
194
  end
195
195
 
196
196
  def to_text(sep = "<br />")
197
- if Rails.env == "development"
198
- raise "#REMOVED - use .join() - (17.12.2013, 15:18, Florian Eck)"
199
- else
200
- self.join(sep)
201
- end
197
+ self.join(sep)
202
198
  end
203
199
 
204
200
 
data/lib/numbers.rb CHANGED
@@ -1,56 +1,56 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  # Numeric Extensions
3
3
  module Numbers
4
-
4
+
5
5
  Numeric.class_eval do
6
-
6
+
7
7
  # Convert Number to numeric german style with precision
8
8
  def to_euro(label = nil, options = {})
9
9
  options[:precision] ||= 2
10
-
10
+
11
11
  options[:precision] = 0 if options[:fix_int] == true && self.is_a?(Integer)
12
-
12
+
13
13
  result = ActionController::Base.helpers.number_with_precision(self, :precision => options[:precision], :separator => ",", :delimiter => ".")
14
-
14
+
15
15
  if options[:pre] == true && self > 0
16
16
  result = "+#{result}"
17
17
  elsif options[:pre] == true && self < 0
18
18
  result = "-#{result}"
19
- end
20
-
21
-
19
+ end
20
+
21
+
22
22
  if !label.blank?
23
23
  return [result, label].join("&nbsp;").html_safe
24
24
  else
25
25
  return result
26
- end
26
+ end
27
27
  end
28
-
28
+
29
29
  # Convert Number to numeric german style without precision
30
30
  def to_de(label=nil)
31
31
  self.to_euro(label, :precision => 0)
32
- end
33
-
32
+ end
33
+
34
34
  def to_a
35
35
  [self]
36
- end
37
-
36
+ end
37
+
38
38
  # Inflate number, y = duration of years, f = percentage
39
39
  # tested
40
40
  def infla(y=40,f=2)
41
41
  self.to_f*(f.to_q**y)
42
42
  end
43
-
43
+
44
44
  # Deflate number, y = duration of years, f = percentage
45
45
  # tested
46
46
  def defla(y=40,f=2)
47
47
  self.to_f*((1-(f.fdiv(100)))**y)
48
48
  end
49
-
49
+
50
50
  # Prüfen, welche Zahl aus dem Array am nächsten an der aktuellen Dran ist
51
51
  # tested
52
52
  def get_closest(nrs = [], lim = :ceil)
53
-
53
+
54
54
  com = {}
55
55
  com_a = []
56
56
  nrs.each do |n|
@@ -61,88 +61,92 @@ module Numbers
61
61
  x = ((self-0.001)-n).abs
62
62
  else
63
63
  raise ArgumentError, "lim must be :ceil or :floor"
64
- end
64
+ end
65
65
  com.merge!(x => n)
66
66
  com_a << x
67
67
  end
68
- return com[com_a.min]
69
- end
70
-
68
+ return com[com_a.min]
69
+ end
70
+
71
71
  # tested
72
72
  def min(ref)
73
73
  [self.to_f, ref.to_f].min
74
74
  end
75
-
75
+
76
76
  # tested
77
77
  def max(ref)
78
78
  [self.to_f, ref.to_f].max
79
79
  end
80
-
80
+
81
81
  # Wert zwischen den Grenzen, ansonsten ober-oder unterkante
82
82
  # tested
83
83
  def min_max(m1, m2)
84
84
  self.min(m2).max(m1)
85
- end
86
-
85
+ end
86
+
87
87
  # => tested
88
88
  def fdiv(d)
89
89
  self.to_f/d
90
90
  end
91
-
92
-
91
+
92
+
93
93
  # Finanzmathematik, Zinsen und so
94
94
  def to_q
95
95
  1+(self/100.0)
96
- end
97
-
96
+ end
97
+
98
98
  def alpha_sum(u,o)
99
99
  (self**u - self**(o+1)).fdiv(1-self)
100
- end
101
-
102
-
100
+ end
101
+
102
+
103
103
  def to_time(options = {})
104
104
  values = [ self.to_i/3600, self.to_i / 60 % 60, self.to_i%60 ].map{ |t| t.to_s.rjust(2, '0') }
105
105
  if options[:split] == true
106
106
  return {:h => values[0].round, :m => values[1].round, :s => values[2].round}
107
107
  elsif options[:discard_hour] == true && values[0] == "00"
108
108
  return values[1,2].join(':')
109
- else
109
+ else
110
110
  return values.join(':')
111
- end
112
- end
113
-
111
+ end
112
+ end
113
+
114
114
  def deg2rad
115
115
  self * Math::PI / 180
116
- end
117
-
118
-
119
- end
116
+ end
117
+
118
+ def nan?
119
+ self.to_f.nan?
120
+ end
121
+
122
+
123
+ end
120
124
 
121
125
  Integer.class_eval do
122
-
123
-
124
-
126
+
127
+
128
+
125
129
  def odd?
126
130
  self%2 == 0
127
131
  end
128
-
132
+
129
133
  def even?
130
134
  !self.odd?
131
- end
132
-
135
+ end
136
+
133
137
 
134
138
  # Cals
135
139
  def to_years(options = {:s_years => "Jahre", :s_months => "Monate", :s_sep => "und"})
136
140
  x = [self/12, self%12]
137
141
  "#{x[0]} #{options[:s_years]} #{options[:s_sep]} #{x[1]} #{options[:s_months]}"
138
142
  end
139
-
143
+
140
144
  def days_to_months(options = {:s_days => "Tage", :s_months => "Monate", :s_sep => "und"})
141
145
  x = [self/30, self%30]
142
146
  "#{x[0]} #{options[:s_months]} #{options[:s_sep]} #{x[1]} #{options[:s_days]}"
143
- end
144
-
145
-
147
+ end
148
+
149
+
146
150
  # Split number in smallest prime factors
147
151
  def prime_factors(options = {})
148
152
  options[:nrs] ||= Math.sqrt(self).floor.prime_numbers
@@ -151,11 +155,11 @@ module Numbers
151
155
  return [n, (self/n).prime_factors(:nrs => options[:nrs])].flatten.except(1)
152
156
  elsif i == options[:nrs].size-1
153
157
  return [self]
154
- end
158
+ end
155
159
  end
156
160
  end
157
-
158
- # Create list with prime numbers up to 'self'
161
+
162
+ # Create list with prime numbers up to 'self'
159
163
  def prime_numbers
160
164
  s = (0..self).to_a
161
165
  s[0] = s[1] = nil
@@ -165,16 +169,11 @@ module Numbers
165
169
  (p*p).step(self, p) { |m| s[m] = nil }
166
170
  end
167
171
  s.compact
168
- end
169
-
172
+ end
173
+
170
174
  end
171
175
 
172
176
 
173
- Fixnum.class_eval do
174
- def nan?
175
- self.to_f.nan?
176
- end
177
- end
178
177
 
179
178
  end
180
179
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: friendly_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Eck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-14 00:00:00.000000000 Z
11
+ date: 2017-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  requirements: []
74
74
  rubyforge_project:
75
- rubygems_version: 2.6.8
75
+ rubygems_version: 2.4.8
76
76
  signing_key:
77
77
  specification_version: 4
78
78
  summary: Collection of useful features for Ruby/Rails Classes