active_object 2.2.5 → 2.3.0

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: 9d6c27a65a9e320ba7194102d608f5adcc1641e8
4
- data.tar.gz: 893e9cf0301680d228cb7408b01a493ec6f39d5c
3
+ metadata.gz: 2328a0445ce30462a324b76b837c44b0a1acc3b8
4
+ data.tar.gz: 0829cad78f360aa10b7138f4f33b04cbd3ace852
5
5
  SHA512:
6
- metadata.gz: e7a158e52061ea2da10814d43a746e2cd6c96dbc71e79413027c2af8585effd8de418b90f07676ae8b684239602a132d533991f7e598c3e109b2a2f348767433
7
- data.tar.gz: 5748b4732637978191af916a9757bcb86cbac86803cca2044843292ce6d3d5b4d9a9ea1f18ef00af1be510f35d2ba8cde74f9eb03fa18ef65e23e47ae59d292a
6
+ metadata.gz: 59a21514f21c8b8be2a495c6651bdf95669e176bd386065124e08b3b51defa1960094f4882352c9d7cffb52c76a942c1982d61fe57d757687950469775a5fc82
7
+ data.tar.gz: b651f4a4d3a201f348afce2aa6609a2689b7807260eeda22a110865efe161092a134f705935cf1fcb0b84658380d06caed818f42b7b9795cfcac801b22a47b19
data/README.md CHANGED
@@ -734,6 +734,24 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
734
734
  3.grams_in_grams #=> 3
735
735
  ```
736
736
 
737
+ ####Greater Than:####
738
+ `greater_than?` returns true if self is greater than n.
739
+
740
+ ```ruby
741
+ 3.greater_than?(2) #=> true
742
+ 3.greater_than?(3) #=> false
743
+ 3.greater_than?(4) #=> false
744
+ ```
745
+
746
+ ####Greater Than or Equal To:####
747
+ `greater_than_or_equal_to?` returns true if self is greater than or equal to n.
748
+
749
+ ```ruby
750
+ 3.greater_than_or_equal_to?(2) #=> true
751
+ 3.greater_than_or_equal_to?(3) #=> true
752
+ 3.greater_than_or_equal_to?(4) #=> false
753
+ ```
754
+
737
755
  ####Hectograms in Grams:####
738
756
  `hectogram_in_grams` and `hectograms_in_grams` returns the amount of grams in n hectograms.
739
757
 
@@ -762,6 +780,14 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
762
780
  3.inches_in_inches #=> 3
763
781
  ```
764
782
 
783
+ ####Inside:####
784
+ `inside?` returns true if n is greater than start and less than finish. Similar to between but does not return true if equal to self.
785
+
786
+ ```ruby
787
+ 3.inside?(1, 5) #=> true
788
+ 3.inside?(3, 5) #=> false
789
+ ```
790
+
765
791
  ####Kilobytes in Bytes:####
766
792
  `kilobyte_in_bytes` and `kilobytes_in_bytes` returns the amount of bytes in n kilobytes.
767
793
 
@@ -783,6 +809,24 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
783
809
  3.kilometers_in_meters #=> 3000
784
810
  ```
785
811
 
812
+ ####Less Than:####
813
+ `less_than?` returns true if self is less than n.
814
+
815
+ ```ruby
816
+ 3.less_than?(2) #=> false
817
+ 3.less_than?(3) #=> false
818
+ 3.less_than?(4) #=> true
819
+ ```
820
+
821
+ ####Less Than or Equal To:####
822
+ `less_than_or_equal_to?` returns true if self is less than or equal to n.
823
+
824
+ ```ruby
825
+ 3.less_than_or_equal_to?(2) #=> false
826
+ 3.less_than_or_equal_to?(3) #=> true
827
+ 3.less_than_or_equal_to?(4) #=> true
828
+ ```
829
+
786
830
  ####Metric Ton in Ounces:####
787
831
  `metric_ton_in_ounces` and `metric_tons_in_ounces` returns the amount of grams in n metric_tons.
788
832
 
@@ -896,6 +940,14 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
896
940
  3.ounces_in_ounces #=> 48
897
941
  ```
898
942
 
943
+ ####Outside:####
944
+ `outside?` returns true if n is less than start or greater than finish.
945
+
946
+ ```ruby
947
+ 3.outside?(4, 5) #=> true
948
+ 3.outside?(3, 5) #=> false
949
+ ```
950
+
899
951
  ####Pad:####
900
952
  `pad` returns a string reprensentation of the number padded with pad_num to a specified length.
901
953
 
@@ -1513,7 +1565,7 @@ false.truthy? #=> false
1513
1565
  ```
1514
1566
 
1515
1567
  ####Pollute:####
1516
- `pollute` pollutes the space between every letter in a string, so it will be exempt from any impending string searches.
1568
+ `pollute` and `pollute!` pollutes the space between every letter in a string, so it will be exempt from any impending string searches.
1517
1569
 
1518
1570
  ```ruby
1519
1571
  "test".pollute #=> "t^--^--^e^--^--^s^--^--^t^--^--^"
@@ -1635,7 +1687,7 @@ false.truthy? #=> false
1635
1687
  ```
1636
1688
 
1637
1689
  ####Unpollute:####
1638
- `unpollute` removes the default or custom pollution character. Can also be used to remove an unwanted character.
1690
+ `unpollute` and `unpollute!` removes the default or custom pollution character. Can also be used to remove an unwanted character.
1639
1691
 
1640
1692
  ```ruby
1641
1693
  "t^--^--^e^--^--^s^--^--^t^--^--^".unpollute #=> "test"
data/lib/active_object.rb CHANGED
@@ -1,11 +1,11 @@
1
- require 'active_object/version'
2
- require 'active_object/array'
3
- require 'active_object/date'
4
- require 'active_object/enumerable'
5
- require 'active_object/hash'
6
- require 'active_object/integer'
7
- require 'active_object/numeric'
8
- require 'active_object/object'
9
- require 'active_object/range'
10
- require 'active_object/string'
11
- require 'active_object/time'
1
+ require "active_object/version"
2
+ require "active_object/array"
3
+ require "active_object/date"
4
+ require "active_object/enumerable"
5
+ require "active_object/hash"
6
+ require "active_object/integer"
7
+ require "active_object/numeric"
8
+ require "active_object/object"
9
+ require "active_object/range"
10
+ require "active_object/string"
11
+ require "active_object/time"
@@ -49,6 +49,7 @@ class Array
49
49
 
50
50
  def groups(number)
51
51
  return([]) if number <= 0
52
+
52
53
  n, r = size.divmod(number)
53
54
  collection = (0..(n - 1)).collect { |i| self[(i * number), number] }
54
55
  r > 0 ? collection << self[-r, r] : collection
@@ -154,9 +155,9 @@ class Array
154
155
  options.assert_valid_keys(:words_connector, :two_words_connector, :last_word_connector)
155
156
 
156
157
  default_connectors = {
157
- words_connector: ', ',
158
- two_words_connector: ' and ',
159
- last_word_connector: ', and '
158
+ words_connector: ', '.freeze,
159
+ two_words_connector: ' and '.freeze,
160
+ last_word_connector: ', and '.freeze
160
161
  }
161
162
  options = default_connectors.merge!(options)
162
163
 
@@ -5,99 +5,99 @@ class Date
5
5
  formatters = string.scan /[a-z0-9_]+/i
6
6
 
7
7
  format_units = {
8
- "d" => "d",
9
- "day" => "d",
10
- "day_padded" => "d",
11
- "dd" => "-d",
12
- "Day" => "-d",
13
- "day_unpadded" => "-d",
14
- "ddd" => "_d",
15
- "DAY" => "_d",
16
- "day_blank" => "_d",
17
- "dddd" => "j",
18
- "day_of_the_year" => "j",
19
- "m" => "m",
20
- "month" => "m",
21
- "month_padded" => "m",
22
- "mm" => "-m",
23
- "Month" => "-m",
24
- "month_unpadded" => "-m",
25
- "mmm" => "_m",
26
- "MONTH" => "_m",
27
- "month_blank" => "_m",
28
- "mmmm" => "B",
29
- "month_name" => "B",
30
- "mmmmm" => "b",
31
- "month_name_abbr" => "b",
32
- "w" => "u",
33
- "weekday" => "u",
34
- "ww" => "w",
35
- "weekday_offset" => "w",
36
- "www" => "A",
37
- "weekday_name" => "A",
38
- "wwww" => "a",
39
- "weekday_name_abbr" => "a",
40
- "wwwww" => "W",
41
- "week" => "W",
42
- "wwwwww" => "U",
43
- "week_offset" => "U",
44
- "yy" => "y",
45
- "yr" => "y",
46
- "yyyy" => "Y",
47
- "year" => "Y",
48
- "ampm" => "P",
49
- "meridian" => "P",
50
- "AMPM" => "p",
51
- "MERIDIAN" => "p"
52
- }
8
+ 'd' => 'd',
9
+ 'day' => 'd',
10
+ 'day_padded' => 'd',
11
+ 'dd' => '-d',
12
+ 'Day' => '-d',
13
+ 'day_unpadded' => '-d',
14
+ 'ddd' => '_d',
15
+ 'DAY' => '_d',
16
+ 'day_blank' => '_d',
17
+ 'dddd' => 'j',
18
+ 'day_of_the_year' => 'j',
19
+ 'm' => 'm',
20
+ 'month' => 'm',
21
+ 'month_padded' => 'm',
22
+ 'mm' => '-m',
23
+ 'Month' => '-m',
24
+ 'month_unpadded' => '-m',
25
+ 'mmm' => '_m',
26
+ 'MONTH' => '_m',
27
+ 'month_blank' => '_m',
28
+ 'mmmm' => 'B',
29
+ 'month_name' => 'B',
30
+ 'mmmmm' => 'b',
31
+ 'month_name_abbr' => 'b',
32
+ 'w' => 'u',
33
+ 'weekday' => 'u',
34
+ 'ww' => 'w',
35
+ 'weekday_offset' => 'w',
36
+ 'www' => 'A',
37
+ 'weekday_name' => 'A',
38
+ 'wwww' => 'a',
39
+ 'weekday_name_abbr' => 'a',
40
+ 'wwwww' => 'W',
41
+ 'week' => 'W',
42
+ 'wwwwww' => 'U',
43
+ 'week_offset' => 'U',
44
+ 'yy' => 'y',
45
+ 'yr' => 'y',
46
+ 'yyyy' => 'Y',
47
+ 'year' => 'Y',
48
+ 'ampm' => 'P',
49
+ 'meridian' => 'P',
50
+ 'AMPM' => 'p',
51
+ 'MERIDIAN' => 'p'
52
+ }.freeze
53
53
 
54
- strftime(formatters.map { |f| "%#{format_units.fetch(f)}#{delimiters.shift || ''}" }.join(""))
54
+ strftime(formatters.map { |f| "%#{format_units.fetch(f)}#{delimiters.shift || ''}" }.join)
55
55
  end
56
56
 
57
- def to_format(key)
57
+ def to_format(key=:datetime_iso)
58
58
  format_units = {
59
- month: "%m",
60
- month_padded: "%m",
61
- month_unpadded: "%-m",
62
- month_blank: "%_m",
63
- month_name: "%B",
64
- month_name_abbr: "%b",
65
- weekday: "%d",
66
- weekday_padded: "%d",
67
- weekday_unpadded: "%-d",
68
- weekday_blank: "%_d",
69
- weekday_name: "%A",
70
- weekday_name_abbr: "%a",
71
- yr: "%y",
72
- year_abbr: "%y",
73
- year: "%Y",
74
- date: "%B %-d, %Y",
75
- date_abbr: "%b %-d, %Y",
76
- date_iso: "%Y-%m-%d",
77
- datetime: "%B %-d, %Y %H:%M",
78
- datetime_abbr: "%b %-d, %Y %H:%M",
79
- datetime_iso: "%Y-%m-%d %H:%M",
80
- datetime_imperical: "%B %-d, %Y %I:%M %P",
81
- datetime_imperical_abbr: "%b %-d, %Y %I:%M %P",
82
- datetime_imperical_iso: "%Y-%m-%d %I:%M %P",
83
- datetime_tzn: "%B %-d, %Y %H:%M %Z",
84
- datetime_abbr_tzn: "%b %-d, %Y %H:%M %Z",
85
- datetime_iso_tzn: "%Y-%m-%d %H:%M %z",
86
- datetime_imperical_tzn: "%B %-d, %Y %I:%M %P %Z",
87
- datetime_imperical_abbr_tzn: "%b %-d, %Y %I:%M %P %Z",
88
- datetime_imperical_iso_tzn: "%Y-%m-%d %I:%M %P %z",
89
- day: "%B %-d",
90
- day_abbr: "%b %-d",
91
- day_iso: "%m-%d",
92
- daytime: "%B %-d %H:%M",
93
- daytime_abbr: "%b %-d %H:%M",
94
- daytime_iso: "%m-%d %H:%M",
95
- daytime_imperical: "%B %-d %I:%M %P",
96
- daytime_imperical_abbr: "%b %-d %I:%M %P",
97
- daytime_imperical_iso: "%m-%d %I:%M %P"
98
- }
59
+ month: '%m',
60
+ month_padded: '%m',
61
+ month_unpadded: '%-m',
62
+ month_blank: '%_m',
63
+ month_name: '%B',
64
+ month_name_abbr: '%b',
65
+ weekday: '%d',
66
+ weekday_padded: '%d',
67
+ weekday_unpadded: '%-d',
68
+ weekday_blank: '%_d',
69
+ weekday_name: '%A',
70
+ weekday_name_abbr: '%a',
71
+ yr: '%y',
72
+ year_abbr: '%y',
73
+ year: '%Y',
74
+ date: '%B %-d, %Y',
75
+ date_abbr: '%b %-d, %Y',
76
+ date_iso: '%Y-%m-%d',
77
+ datetime: '%B %-d, %Y %H:%M',
78
+ datetime_abbr: '%b %-d, %Y %H:%M',
79
+ datetime_iso: '%Y-%m-%d %H:%M',
80
+ datetime_imperical: '%B %-d, %Y %I:%M %P',
81
+ datetime_imperical_abbr: '%b %-d, %Y %I:%M %P',
82
+ datetime_imperical_iso: '%Y-%m-%d %I:%M %P',
83
+ datetime_tzn: '%B %-d, %Y %H:%M %Z',
84
+ datetime_abbr_tzn: '%b %-d, %Y %H:%M %Z',
85
+ datetime_iso_tzn: '%Y-%m-%d %H:%M %z',
86
+ datetime_imperical_tzn: '%B %-d, %Y %I:%M %P %Z',
87
+ datetime_imperical_abbr_tzn: '%b %-d, %Y %I:%M %P %Z',
88
+ datetime_imperical_iso_tzn: '%Y-%m-%d %I:%M %P %z',
89
+ day: '%B %-d',
90
+ day_abbr: '%b %-d',
91
+ day_iso: '%m-%d',
92
+ daytime: '%B %-d %H:%M',
93
+ daytime_abbr: '%b %-d %H:%M',
94
+ daytime_iso: '%m-%d %H:%M',
95
+ daytime_imperical: '%B %-d %I:%M %P',
96
+ daytime_imperical_abbr: '%b %-d %I:%M %P',
97
+ daytime_imperical_iso: '%m-%d %I:%M %P'
98
+ }.freeze
99
99
 
100
- strftime(format_units.fetch(key))
100
+ strftime(format_units.fetch(key.to_sym))
101
101
  end
102
102
 
103
103
  alias_method :stamp, :to_format
@@ -18,7 +18,7 @@ module Enumerable
18
18
  if block_given?
19
19
  map(&block).difference(identity)
20
20
  else
21
- inject { |d,v| d - v } || identity
21
+ inject { |d, v| d - v } || identity
22
22
  end
23
23
  end
24
24
 
@@ -26,13 +26,15 @@ module Enumerable
26
26
  if block_given?
27
27
  map(&block).divisible(identity)
28
28
  else
29
- inject { |d,v| d / v } || identity
29
+ inject { |d, v| d / v } || identity
30
30
  end
31
31
  end
32
32
 
33
33
  def drop_last(n)
34
34
  collection_size = to_a.size
35
+
35
36
  return(self) if n > collection_size
37
+
36
38
  self[0...(collection_size - n)]
37
39
  end
38
40
 
@@ -67,7 +69,7 @@ module Enumerable
67
69
  if block_given?
68
70
  map(&block).exponential(identity)
69
71
  else
70
- inject { |d,v| d ** v } || identity
72
+ inject { |d, v| d ** v } || identity
71
73
  end
72
74
  end
73
75
 
@@ -103,12 +105,13 @@ module Enumerable
103
105
 
104
106
  def mean(identity=0)
105
107
  return(identity) unless size > 0
108
+
106
109
  collection_size = size
107
- sum / collection_size.to_f
110
+ sum.to_f / collection_size.to_f
108
111
  end
109
112
 
110
113
  def median(identity=0)
111
- collection_size = size
114
+ collection_size = size.to_f
112
115
  collection_sorted = sort
113
116
 
114
117
  return(identity) unless collection_size > 0
@@ -123,8 +126,8 @@ module Enumerable
123
126
  def mode(identity=0)
124
127
  return(identity) unless size > 0
125
128
 
126
- frequency_distribution = inject(Hash.new(0)) { |h,v| h[v] += 1; h }
127
- frequency_top_two = frequency_distribution.sort { |k,v| v[1] <=> k[1] }.take(2)
129
+ frequency_distribution = inject(Hash.new(0)) { |h, v| h[v] += 1; h }
130
+ frequency_top_two = frequency_distribution.sort { |k, v| v[1] <=> k[1] }.take(2)
128
131
 
129
132
  if frequency_top_two.size == 1
130
133
  frequency_top_two.first.first
@@ -139,12 +142,13 @@ module Enumerable
139
142
  if block_given?
140
143
  map(&block).multiple(identity)
141
144
  else
142
- inject { |d,v| d * v } || identity
145
+ inject { |d, v| d * v } || identity
143
146
  end
144
147
  end
145
148
 
146
149
  def range(identity=0)
147
150
  return(identity) unless size > 0
151
+
148
152
  collection_sorted = sort
149
153
  collection_sorted.last - collection_sorted.first
150
154
  end
@@ -157,6 +161,7 @@ module Enumerable
157
161
 
158
162
  def standard_deviation(identity=0)
159
163
  return(identity) if size < 2
164
+
160
165
  Math.sqrt(variance)
161
166
  end
162
167
 
@@ -165,14 +170,16 @@ module Enumerable
165
170
  if block_given?
166
171
  map(&block).sum(identity)
167
172
  else
168
- inject { |s,v| s + v } || identity
173
+ inject { |s, v| s + v } || identity
169
174
  end
170
175
  end
171
176
  end
172
177
 
173
178
  def take_last(n)
174
179
  collection_size = to_a.size
180
+
175
181
  return(self) if n > collection_size
182
+
176
183
  self[(collection_size - n)..-1]
177
184
  end
178
185
 
@@ -186,9 +193,11 @@ module Enumerable
186
193
 
187
194
  def variance(identity=0)
188
195
  collection_size = size
196
+
189
197
  return(identity) if collection_size <= 1
198
+
190
199
  sum = inject(0.0) { |s,v| s + (v - mean) ** 2.0 }
191
- sum / (collection_size.to_f - 1.0)
200
+ sum.to_f / (collection_size.to_f - 1.0)
192
201
  end
193
202
 
194
203
  end