active_object 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e96a453245ef6274f0070ee0d457422545066a47
4
+ data.tar.gz: 68e653784fb298f7aa5a01580b82ca50f3bbd702
5
+ SHA512:
6
+ metadata.gz: 85e2b171390a237569eac7564ae034a71c1d66f09eae85fefcbc82ec2487a0a605f55028216f500f9d501451996a7f050482c4fce65068716e91341a34653881
7
+ data.tar.gz: 1a137f2100d5cc3fd5e4cf9d821864ec1fd081de1307248737fde159696be859e86be9f1fe227a8ee0337016fa081fa2ba7a7d606b1722d3eed3daeb06325805
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --order random
2
+ --colour
3
+ --backtrace
4
+ --format progress
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ before_install:
2
+ - sudo apt-get install libxml2-dev
3
+ cache: bundler
4
+ language: ruby
5
+ notifications:
6
+ email:
7
+ recipients:
8
+ - j.gomez@drexed.com
9
+ on_failure: change
10
+ on_success: never
11
+ rvm:
12
+ - ruby-head
13
+ script: 'bundle exec rake'
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in active_object.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Juan Gomez
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,1361 @@
1
+ # ActiveObject
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/active_object.svg)](http://badge.fury.io/rb/active_object)
4
+ [![Build Status](https://travis-ci.org/drexed/active_object.svg?branch=master)](https://travis-ci.org/drexed/active_object)
5
+ [![Coverage Status](https://coveralls.io/repos/drexed/active_object/badge.png)](https://coveralls.io/r/drexed/active_object)
6
+
7
+ ActiveObject is a collection of commonly used object helpers in a ruby based project. It currently includes extensions for: arrays, enumerables, hashes, integers, numerics, objects, strings, and time.
8
+
9
+ `Rails Safe` = methods extracted from rails but that do not override that rails method.
10
+
11
+ Highly recommended extensions:
12
+ * **Hash:** Hashie - https://github.com/intridea/hashie
13
+ * **String:** Escape Utils - https://github.com/brianmario/escape_utils
14
+ * **String:** Fast Blank - https://github.com/SamSaffron/fast_blank
15
+ * **Translation:** Fast Gettext - https://github.com/grosser/fast_gettext
16
+
17
+ ## Installation
18
+
19
+ Add this line to your application's Gemfile:
20
+
21
+ gem 'active_object'
22
+
23
+ And then execute:
24
+
25
+ $ bundle
26
+
27
+ Or install it yourself as:
28
+
29
+ $ gem install active_object
30
+
31
+ ## Usage
32
+
33
+ ### Array
34
+
35
+ ####Delete First:####
36
+ `delete_first` removes the first element from an array. Like Array.shift, but returns the array instead of the removed element.
37
+
38
+ ```ruby
39
+ ["1", "2", "3"].delete_first #=> ["2", "3"]
40
+ ```
41
+
42
+ ####Delete Last:####
43
+ `delete_last` removes the last element from an array. Like Array.pop, but returns the array instead of the removed element.
44
+
45
+ ```ruby
46
+ ["1", "2", "3"].delete_last #=> ["1", "2"]
47
+ ```
48
+
49
+ ####From:####
50
+ `from` returns the tail of the array from position. `Rails Safe`
51
+
52
+ ```ruby
53
+ ["1", "2", "3"].from(0) #=> ["1", "2", "3"]
54
+ ["1", "2", "3"].from(1) #=> ["2", "3"]
55
+ ["1", "2", "3"].from(-1) #=> ["3"]
56
+ ```
57
+
58
+ ####Groups:####
59
+ `groups` splits or iterates over the array in number of groups.
60
+
61
+ ```ruby
62
+ %w(1 2 3 4 5 6 7 8 9 10).groups(3) #=> [["1", "2", "3", "4"], ["5", "6", "7"], ["8", "9", "10"]]
63
+ ```
64
+
65
+ ####In Groups:####
66
+ `in_groups` splits or iterates over the array in number of groups, padding any remaining slots with fill_with unless it is false. `Rails Safe`
67
+
68
+ ```ruby
69
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups(3) #=> [["1", "2", "3", "4"], ["5", "6", "7", nil], ["8", "9", "10", nil]]
70
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups(3, ' ') #=> [["1", "2", "3", "4"], ["5", "6", "7", " "], ["8", "9", "10", " "]]
71
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups(3, false) #=> [["1", "2", "3", "4"], ["5", "6", "7"], ["8", "9", "10"]]
72
+ ```
73
+
74
+ ####In Groups Of:####
75
+ `in_groups_of` splits or iterates over the array in groups of size number, padding any remaining slots with fill_with unless it is false. `Rails Safe`
76
+
77
+ ```ruby
78
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups_of(3) #=> [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["10", nil, nil]]
79
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups_of(3, ' ') #=> [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["10", " ", " "]]
80
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups_of(3, false) #=> [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["10"]]
81
+ ```
82
+
83
+ ####Split:####
84
+ `split` divides the array into one or more subarrays based on a delimiting value or the result of an optional block. `Rails Safe`
85
+
86
+ ```ruby
87
+ [1, 2, 3, 4, 5].split(3) # => [[1, 2], [4, 5]]
88
+ (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]]
89
+ ```
90
+
91
+ ####Strip:####
92
+ `strip` removes blank elements from an array.
93
+
94
+ ```ruby
95
+ ["this", "", "that", nil, false].strip #=> ["this", "that"]
96
+ "this is a test".split(" ").strip #=> ["this", "is", "a", "test"]
97
+ ```
98
+
99
+ ####To:####
100
+ `to` returns the beginning of the array up to position. `Rails Safe`
101
+
102
+ ```ruby
103
+ ["1", "2", "3"].from(0) #=> ["1"]
104
+ ["1", "2", "3"].from(1) #=> ["1", "2"]
105
+ ["1", "2", "3"].from(-1) #=> ["3"]
106
+ ```
107
+
108
+ ####To Sentence:####
109
+ `to_sentence` converts the array to a comma-separated sentence where the last element is joined by the connector word. `Rails Safe`
110
+
111
+ **Options:**
112
+ * words_connector: “, ”
113
+ * two_words_connector: “ and ”
114
+ * last_word_connector: “, and ”
115
+
116
+ ```ruby
117
+ [].to_sentence #=> ""
118
+ ["one"].to_sentence #=> "one"
119
+ ["one", "two"].to_sentence #=> "one and two"
120
+ ["one", "two", "three"].to_sentence #=> "one, two, and three"
121
+ ["one", "two"].to_sentence(two_words_connector: '-') #=> "one-two"
122
+ ["one", "two", "three"].to_sentence(words_connector: ' or ', last_word_connector: ' or at least ') #=> "one or two or at least three"
123
+ ```
124
+
125
+ ### Enumerable
126
+
127
+ ####Difference:####
128
+ `difference` returns the difference of a collection of numbers.
129
+
130
+ ```ruby
131
+ [].difference #=> 0
132
+ [].difference(nil) #=> nil
133
+ [1,2,3].difference #=> -4
134
+ ```
135
+
136
+ ####Divisible:####
137
+ `divisible` returns the division of a collection of numbers.
138
+
139
+ ```ruby
140
+ [].divisible #=> 0
141
+ [].divisible(nil) #=> nil
142
+ [16,4,2].divisible #=> 2
143
+ ```
144
+
145
+ ####Drop Last:####
146
+ `drop_last` drops the last number of elements of a collection.
147
+
148
+ ```ruby
149
+ [].drop_last(1) #=> []
150
+ [1,2,3].drop_last(1) #=> [1,2]
151
+ [1,2,3].drop_last(2) #=> [1]
152
+ ```
153
+
154
+ ####Drop Last If:####
155
+ `drop_last_if` drops the last number of elements of a collection while it meets a criteria.
156
+
157
+ ```ruby
158
+ [].drop_last_if(&:odd?) #=> []
159
+ [1,2,3].drop_last_if(&:odd?) #=> [1,2]
160
+ [1,2,3,4].drop_last_if(&:odd?) #=> [1,2,3,4]
161
+ ```
162
+
163
+ ####Exactly:####
164
+ `exactly?` returns if there are exactly the number of an element type.
165
+
166
+ ```ruby
167
+ [].exactly?(1) #=> false
168
+ [1,2,3].excatly?(3) #=> true
169
+ [1,1,3,3].exactly?(2, &:even?) #=> false
170
+ ```
171
+
172
+ ####Exclude:####
173
+ `exclude?` returns true if the collection does not include the object. `Rails Safe`
174
+
175
+ ```ruby
176
+ [1, 2, 3].exclude?(4) #=> true
177
+ [1, 2, 3].exclude?(3) #=> false
178
+ ```
179
+
180
+ ####Exponential:####
181
+ `exponential` returns the exponential of a collection of numbers.
182
+
183
+ ```ruby
184
+ [].exponential #=> 0
185
+ [].exponential(nil) #=> nil
186
+ [2,3,4].exponential #=> 4096
187
+ ```
188
+
189
+ ####Frequencies:####
190
+ `frequencies` returns a hash of the number of times a value in an array appears.
191
+
192
+ ```ruby
193
+ [].frequencies #=> {}
194
+ [1, :symbol, 'string', 3, :symbol, 1].frequencies #=> { 1 => 2, :symbol => 2, 'string' => 1, 3 => 1 }
195
+ ```
196
+
197
+ ####Many:####
198
+ `many?` returns if collection has more than one element while respecting nil and false as an element. `Rails Safe`
199
+
200
+ ```ruby
201
+ [].many? #=> false
202
+ [1,2,3].many? #=> true
203
+ [1, false, nil].many? #=> true
204
+ [1,1,3,3].many?(&:even?) #=> false
205
+
206
+ ```
207
+
208
+ ####Max:####
209
+ `max` returns the largest value of a collection of numbers.
210
+
211
+ ```ruby
212
+ [].max #=> 0
213
+ [].max(nil) #=> nil
214
+ [1,2,3].max #=> 3
215
+ ```
216
+
217
+ ####Min:####
218
+ `min` returns the smallest value of a collection of numbers.
219
+
220
+ ```ruby
221
+ [].min #=> 0
222
+ [].min(nil) #=> nil
223
+ [1,2,3].min #=> 1
224
+ ```
225
+
226
+ ####Mean:####
227
+ `mean` returns the average of a collection of numbers.
228
+
229
+ ```ruby
230
+ [].mean #=> 0
231
+ [].mean(nil) #=> nil
232
+ [1,2,3].mean #=> 2
233
+ ```
234
+
235
+ ####Median:####
236
+ `median` returns the middle value of a collection of numbers.
237
+
238
+ ```ruby
239
+ [].median #=> 0
240
+ [].median(nil) #=> nil
241
+ [1,2,6].median #=> 2
242
+ [1,2,3,6].median #=> 2.5
243
+ ```
244
+
245
+ ####Mode:####
246
+ `mode` returns the most frequent value of a collection of numbers.
247
+
248
+ ```ruby
249
+ [].mode #=> 0
250
+ [].mode(nil) #=> nil
251
+ [1,2,3].mode #=> nil
252
+ [1,1,2,6].mode #=> 1
253
+ ```
254
+
255
+ ####Multiple:####
256
+ `multiple` returns the multiplication of a collection of numbers.
257
+
258
+ ```ruby
259
+ [].multiple #=> 0
260
+ [].multiple(nil) #=> nil
261
+ [1,2,3].multiple #=> 6
262
+ ```
263
+
264
+ ####Range:####
265
+ `range` returns the difference between the smallest and largest value of a collection of numbers.
266
+
267
+ ```ruby
268
+ [].range #=> 0
269
+ [].range(nil) #=> nil
270
+ [1,2,6].range #=> 5
271
+ ```
272
+
273
+ ####Several:####
274
+ `several?` returns if collection has more than one element while not respecting nil and false as an element.
275
+
276
+ ```ruby
277
+ [].several? #=> false
278
+ [1,2,3].several? #=> true
279
+ [1, false, nil].several? #=> false
280
+ [1,1,3,3].several?(&:even?) #=> false
281
+ ```
282
+
283
+ ####Standard Deviation:####
284
+ `standard_deviation` returns the standard deviation of elements of a collection.
285
+
286
+ ```ruby
287
+ [].standard_deviation #=> 0
288
+ [].standard_deviation(nil) #=> nil
289
+ [1,2,6].standard_deviation #=> 2.6457513110645907
290
+ ```
291
+
292
+ ####Sum:####
293
+ `sum` returns the sum of a collection of numbers. `Rails Safe`
294
+
295
+ ```ruby
296
+ [].sum #=> 0
297
+ [].sum(nil) #=> nil
298
+ [1,2,3].sum #=> 6
299
+ ["foo", "bar"].sum #=> "foobar"
300
+ ```
301
+
302
+ ####Take Last:####
303
+ `take_last` returns the last number of elements of a collection.
304
+
305
+ ```ruby
306
+ [].take_last(1) #=> []
307
+ [1,2,3].take_last(1) #=> [3]
308
+ [1,2,3].take_last(2) #=> [2,3]
309
+ ```
310
+
311
+ ####Take Last If:####
312
+ `take_last_if` returns the last number of elements of a collection while it meets a criteria.
313
+
314
+ ```ruby
315
+ [].take_last_if(&:odd?) #=> []
316
+ [1,2,3].take_last_if(&:odd?) #=> [3]
317
+ [1,2,3,4].take_last_if(&:odd?) #=> []
318
+ ```
319
+
320
+ ####Variance:####
321
+ `variance` returns the variance of elements of a collection.
322
+
323
+ ```ruby
324
+ [].variance #=> 0
325
+ [].variance(nil) #=> nil
326
+ [1,2,6].variance #=> 7
327
+ ```
328
+
329
+ ### Hash
330
+
331
+ ####Assert Valid Keys:####
332
+ `assert_valid_keys` raises an error if key is not included in a list of keys. `Rails Safe`
333
+
334
+ ```ruby
335
+ {}.assert_valid_keys(:foo) #=> {}
336
+ { foo: "bar" }.assert_valid_keys(:foo) #=> { foo: "bar" }
337
+ { foo: "bar", baz: "boz" }.assert_valid_keys(:foo, :boo) #=> raises "ArgumentError: Unknown key: :baz. Valid keys are: :foo, :boo"
338
+ ```
339
+
340
+ ####Compact:####
341
+ `compact` and `compact!` returns a hash with non nil values. `Rails Safe`
342
+
343
+ ```ruby
344
+ {}.compact #=> {}
345
+ { foo: nil }.compact #=> {}
346
+ { foo: "bar", baz: false, boo: nil }.compact #=> { foo: "bar", baz: false }
347
+ ```
348
+
349
+ ####Deep Merge:####
350
+ `deep_merge` and `deep_merge!` returns a new hash with self and other_hash merged recursively. `Rails Safe`
351
+
352
+ ```ruby
353
+ h1 = { a: true, b: { c: [1, 2, 3] } }
354
+ h2 = { a: false, b: { x: [3, 4, 5] } }
355
+
356
+ h1.deep_merge(h2) #=> { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } }
357
+ ```
358
+
359
+ ####Except:####
360
+ `except` and `except!` returns a hash that includes everything but the given keys. `Rails Safe`
361
+
362
+ ```ruby
363
+ {}.except(:foo) #=> {}
364
+ { foo: 'foo', baz: 'baz', bar: 'bar' }.except(:foo) #=> { baz: 'baz', bar: 'bar' }
365
+ { :foo => 'foo', :baz => 'baz', :bar => 'bar' }.except(:baz, :bar) #=> { :foo => 'foo' }
366
+ ```
367
+
368
+ ####Nillify:####
369
+ `nillify` and `nillify!` transforms all blank values to nil.
370
+
371
+ ```ruby
372
+ { a: 1, b: "test", c: nil, d: false, e: "", f: " " }.nillify #=> {a: 1, b: 'test', c: nil, d: nil, e: nil, f: nil}
373
+ ```
374
+
375
+ ####Only:####
376
+ `only` and `only!` returns only key/value pairs matching certain keys. `Rails Safe`
377
+
378
+ ```ruby
379
+ {}.only(:foo) #=> {}
380
+ { foo: 'foo', baz: 'baz', bar: 'bar' }.only(:foo) #=> { foo: 'foo' }
381
+ { :foo => 'foo', :baz => 'baz', :bar => 'bar' }.only(:baz, :bar) #=> { :baz => 'baz', :bar => 'bar' }
382
+ ```
383
+
384
+ ####Rename Keys:####
385
+ `rename_keys` and `rename_keys!` rename the keys of a hash.
386
+
387
+ ```ruby
388
+ { foo: 'foo', baz: 'baz' }.rename_keys(foo: :bar) #=> { bar: 'foo', baz: 'baz' }
389
+ { foo: 'foo', 'baz' => 'baz' }.rename_keys(foo: :bar, 'baz' => 'tick') #=> { bar: 'foo', tick: 'baz' }
390
+ ```
391
+
392
+ ####Reverse Merge:####
393
+ `reverse_merge` and `reverse_merge!` merges one hash into other hash. `Rails Safe`
394
+
395
+ ```ruby
396
+ {}.reverse_merge!(foo: "bar") #=> { foo: "bar" }
397
+ { foo: "bar" }.reverse_merge!(baz: "boo", boo: "bam") #=> { foo: "bar", baz: "boo", boo: "bam" }
398
+ ```
399
+
400
+ ####Slice:####
401
+ `slice` a hash to include only the given keys. Returns a hash containing the given keys. `Rails Safe`
402
+ `slice!` replaces the hash with only the given keys. Returns a hash containing the removed key/value pairs. `Rails Safe`
403
+
404
+ ```ruby
405
+ h = { a: 1, b: 2, c: 3, d: 4 }
406
+
407
+ h.slice(:a, :b) #=> { a: 1, b: 2 }
408
+ h.slice!(:a, :b) #=> { c: 3, d: 4 }
409
+ ```
410
+
411
+ ####Stringify Keys:####
412
+ `stringify_keys` and `stringify_keys!` converts the hash keys to strings. `Rails Safe`
413
+
414
+ ```ruby
415
+ { foo: "foo", "bar" => 'bar' }.stringify_keys #=> { "foo" => "foo", "baz" => "baz" }
416
+ ```
417
+
418
+ ####Strip:####
419
+ `strip` and `strip!` returns a hash with non nil, false, or blank values.
420
+
421
+ ```ruby
422
+ {}.strip #=> {}
423
+ { foo: nil, baz: false, boo: '', faz: ' ' }.strip #=> {}
424
+ { foo: "bar", baz: false, boo: nil, boz: '', faz: ' ' }.strip #=> { foo: "bar" }
425
+ ```
426
+
427
+ ####Symbolize Keys:####
428
+ `symbolize_keys` and `symbolize_keys!` converts the hash keys to symbols. `Rails Safe`
429
+
430
+ ```ruby
431
+ { foo: "foo", "bar" => "bar" }.symbolize_keys #=> { foo: "foo", baz: "baz" }
432
+ ```
433
+
434
+ ####Symbolize and Underscore Keys:####
435
+ `symbolize_and_underscore_keys` and `symbolize_and_underscore_keys!` symbolize and underscore hash keys.
436
+
437
+ ```ruby
438
+ { "firstName" => "foo", "last Name" => "test" }.symbolize_and_underscore_keys #=> { first_name: "foo", last_name: "test" }
439
+ ```
440
+
441
+ ####Transform Keys:####
442
+ `transform_keys` and `transform_keys!` a new hash with all keys converted using the block operation. `Rails Safe`
443
+
444
+ ```ruby
445
+ { foo: "bar", baz: "boo" }.transform_keys { |k| k.to_s.upcase } #=> { "FOO" => "bar", "BAZ" => "boo" }
446
+ ```
447
+
448
+ ####Transform Values:####
449
+ `transform_values` and `transform_values!` a new hash with all values converted using the block operation. `Rails Safe`
450
+
451
+ ```ruby
452
+ { foo: "bar", baz: "boo" }.transform_values { |v| v.to_s.upcase } #=> {foo: "BAR", baz: "BOO" }
453
+ ```
454
+
455
+ ### Integer
456
+
457
+ ####Time:####
458
+ `time` returns a Time object for the given Integer.
459
+
460
+ ```ruby
461
+ 3.time #=> "1969-12-31 19:00:03.000000000 -0500"
462
+ ```
463
+
464
+ ### Numeric
465
+
466
+ ####Add:####
467
+ `add` returns the sum of two numbers.
468
+
469
+ ```ruby
470
+ 4.add(2) #=> 6
471
+ ```
472
+
473
+ ####Bytes:####
474
+ `byte` and `bytes` returns self.
475
+
476
+ ```ruby
477
+ 3.bytes #=> 3
478
+ ```
479
+
480
+ ####Centigrams:####
481
+ `centigram` and `centigrams` returns the amount of grams in n centigrams.
482
+
483
+ ```ruby
484
+ 3.centigrams #=> 0.03
485
+ ```
486
+
487
+ ####Centimeters:####
488
+ `centimeter` and `centimeters` returns the amount of meters in n centimeters.
489
+
490
+ ```ruby
491
+ 3.centimeters #=> 0.03
492
+ ```
493
+
494
+ ####Centuries:####
495
+ `century` and `centuries` returns the amount of seconds in n centuries.
496
+
497
+ ```ruby
498
+ 3.centuries #=> 9467280000.0
499
+ ```
500
+
501
+ ####Decades:####
502
+ `decade` and `decades` returns the amount of seconds in n decades.
503
+
504
+ ```ruby
505
+ 3.decades #=> 946728000.0
506
+ ```
507
+ ####Decagrams:####
508
+ `decagram` and `decagrams` returns the amount of grams in n decagrams.
509
+
510
+ ```ruby
511
+ 3.decagrams #=> 30
512
+ ```
513
+
514
+ ####Decameters:####
515
+ `decameter` and `decameters` returns the amount of meters in n decameters.
516
+
517
+ ```ruby
518
+ 3.decameters #=> 30
519
+ ```
520
+
521
+ ####Decigrams:####
522
+ `decigram` and `decigrams` returns the amount of grams in n decigrams.
523
+
524
+ ```ruby
525
+ 3.decigrams #=> 0.3
526
+ ```
527
+
528
+ ####Decimeters:####
529
+ `decimeter` and `decimeters` returns the amount of meters in n decimeters.
530
+
531
+ ```ruby
532
+ 3.decimeters #=> 0.3
533
+ ```
534
+
535
+ ####Days:####
536
+ `day` and `days` returns the amount of seconds in n days.
537
+
538
+ ```ruby
539
+ 3.days #=> 259200
540
+ ```
541
+
542
+ ####Divide:####
543
+ `divide` returns the division of two numbers.
544
+
545
+ ```ruby
546
+ 4.divide(2) #=> 2
547
+ ```
548
+
549
+ ####Exabytes:####
550
+ `exabyte` and `exabytes` returns the amount of bytes in n exabytes.
551
+
552
+ ```ruby
553
+ 3.exabytes #=> 3458764513820540928
554
+ ```
555
+
556
+ ####Feet:####
557
+ `foot` and `feet` returns the amount of inches in n feet.
558
+
559
+ ```ruby
560
+ 3.feet #=> 36
561
+ ```
562
+
563
+ ####Gigabytes:####
564
+ `gigabyte` and `gigabytes` returns the amount of bytes in n gigabytes.
565
+
566
+ ```ruby
567
+ 3.gigabytes #=> 3221225472
568
+ ```
569
+
570
+ ####Grams:####
571
+ `gram` and `grams` returns self.
572
+
573
+ ```ruby
574
+ 3.grams #=> 3
575
+ ```
576
+
577
+ ####Hectograms:####
578
+ `hectogram` and `hectograms` returns the amount of grams in n hectograms.
579
+
580
+ ```ruby
581
+ 3.hectograms #=> 300
582
+ ```
583
+
584
+ ####Hectometers:####
585
+ `hectometer` and `hectometers` returns the amount of meters in n hectometers.
586
+
587
+ ```ruby
588
+ 3.hectometers #=> 300
589
+ ```
590
+
591
+ ####Hours:####
592
+ `hour` and `hours` returns the amount of seconds in n hours.
593
+
594
+ ```ruby
595
+ 3.hours #=> 10800
596
+ ```
597
+
598
+ ####Inches:####
599
+ `inch` and `inches` returns the amount of inches in n inches.
600
+
601
+ ```ruby
602
+ 3.inches #=> 3
603
+ ```
604
+
605
+ ####Kilobytes:####
606
+ `kilobyte` and `kilobytes` returns the amount of bytes in n kilobytes.
607
+
608
+ ```ruby
609
+ 3.kilobytes #=> 3072
610
+ ```
611
+
612
+ ####Kilograms:####
613
+ `kilogram` and `kilograms` returns the amount of grams in n kilograms.
614
+
615
+ ```ruby
616
+ 3.kilograms #=> 3000
617
+ ```
618
+
619
+ ####Kilometers:####
620
+ `kilometer` and `kilometers` returns the amount of meters in n kilometers.
621
+
622
+ ```ruby
623
+ 3.kilometers #=> 3000
624
+ ```
625
+
626
+ ####Metric Ton:####
627
+ `metric_ton` and `metric_tons` returns the amount of grams in n metric_tons.
628
+
629
+ ```ruby
630
+ 3.metric_tons #=> 3000000
631
+ ```
632
+
633
+ ####Megabytes:####
634
+ `megabyte` and `megabytes` returns the amount of bytes in n megabytes.
635
+
636
+ ```ruby
637
+ 3.megabytes #=> 3145728
638
+ ```
639
+
640
+ ####Meters:####
641
+ `meter` and `meters` returns self.
642
+
643
+ ```ruby
644
+ 3.meters #=> 3
645
+ ```
646
+
647
+ ####Miles:####
648
+ `mile` and `miles` returns the amount of inches in n miles.
649
+
650
+ ```ruby
651
+ 3.miles #=> 190080
652
+ ```
653
+
654
+ ####Millennium:####
655
+ `millennium` and `millenniums` returns the amount of seconds in n millenniums.
656
+
657
+ ```ruby
658
+ 3.millenniums #=> 94672800000.0
659
+ ```
660
+
661
+ ####Milligram:####
662
+ `milligram` and `milligrams` returns the amount of grams in n milligrams.
663
+
664
+ ```ruby
665
+ 3.milligrams #=> 0.003
666
+ ```
667
+
668
+ ####Millimeters:####
669
+ `millimeter` and `millimeters` returns the amount of meters in n millimeters.
670
+
671
+ ```ruby
672
+ 3.millimeters #=> 0.003
673
+ ```
674
+
675
+ ####Minutes:####
676
+ `minute` and `minutes` returns the amount of seconds in n minutes.
677
+
678
+ ```ruby
679
+ 3.minutes #=> 180
680
+ ```
681
+
682
+ ####Multiply:####
683
+ `multiply` returns the multiplication of two numbers.
684
+
685
+ ```ruby
686
+ 4.multiply(2) #=> 8
687
+ ```
688
+
689
+ ####Multiple Of:####
690
+ `multiple_of?` returns true if a number can be evenly divided by n. `Rails Safe`
691
+
692
+ ```ruby
693
+ 9.multiple_of?(3) #=> true
694
+ 7.multiple_of?(3) #=> false
695
+ ```
696
+
697
+ ####Nautical Miles:####
698
+ `nautical_mile` and `nautical_miles` returns the amount of inches in n nautical miles.
699
+
700
+ ```ruby
701
+ 3.nautical_miles #=> 218740.26239999998
702
+ ```
703
+
704
+ ####Negative:####
705
+ `negative?` returns true if a number is less than zero.
706
+
707
+ ```ruby
708
+ -1.negative? #=> true
709
+ 1.negative? #=> false
710
+ ```
711
+
712
+ ####Ordinal:####
713
+ `ordinal` returns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. `Rails Safe`
714
+
715
+ ```ruby
716
+ "1".ordinal #=> "th"
717
+ "2".ordinal #=> "nd"
718
+ "3".ordinal #=> "rd"
719
+ "11".ordinal #=> "th"
720
+ ```
721
+
722
+ ####Ordinalize:####
723
+ `ordinalize` transforms a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. `Rails Safe`
724
+
725
+ ```ruby
726
+ "1".ordinalize #=> "1th"
727
+ "2".ordinalize #=> "2nd"
728
+ "3".ordinalize #=> "3rd"
729
+ "11".ordinalize #=> "4th"
730
+ ```
731
+
732
+ ####Ounces:####
733
+ `ounce` and `ounces` returns self.
734
+
735
+ ```ruby
736
+ 3.ounces #=> 48
737
+ ```
738
+
739
+ ####Pad:####
740
+ `pad` returns a string reprensentation of the number padded with pad_num to a specified length.
741
+
742
+ ```ruby
743
+ 3.pad #=> "003"
744
+ 3.pad(pad_number: 1) #=> "113"
745
+ 3.pad(precision: 4) #=> "0003"
746
+ ```
747
+
748
+ ####Pad Precision:####
749
+ `pad_precision` returns a string of padded after the '.' to n amount.
750
+
751
+ **Options**
752
+ * pad_number: 0
753
+ * precision: 2
754
+ * separator: "..."
755
+
756
+ ```ruby
757
+ 3.pad_precision #=> "3.00"
758
+ 3.5.pad_precision #=> "3.50"
759
+ 3.pad_precision(pad_number: 1) #=> "3.11"
760
+ ```
761
+
762
+ ####Petabytes:####
763
+ `petabyte` and `pegabytes` returns the amount of bytes in n petabytes.
764
+
765
+ ```ruby
766
+ 3.petabytes #=> 3377699720527872
767
+ ```
768
+
769
+ ####Positive:####
770
+ `positive?` returns true if a number is greater than zero.
771
+
772
+ ```ruby
773
+ 1.positive? #=> true
774
+ -1.positive? #=> false
775
+ ```
776
+
777
+ ####Pounds:####
778
+ `pounds` and `pounds` returns the amount of ounces in n pounds.
779
+
780
+ ```ruby
781
+ 3.pounds #=> 48
782
+ ```
783
+
784
+ ####Power:####
785
+ `power` returns the nth power of a number.
786
+
787
+ ```ruby
788
+ 4.power(2) #=> 16
789
+ ```
790
+
791
+ ####Root:####
792
+ `root` returns the nth root of a number.
793
+
794
+ ```ruby
795
+ 4.root(2) #=> 2
796
+ ```
797
+
798
+ ####Seconds:####
799
+ `second` and `seconds` returns self.
800
+
801
+ ```ruby
802
+ 3.seconds #=> 3
803
+ ```
804
+
805
+ ####Stones:####
806
+ `stone` and `stone` returns the amount of ounces in n stones.
807
+
808
+ ```ruby
809
+ 3.stones #=> 672
810
+ ```
811
+
812
+ ####Subtract:####
813
+ `subtract` returns the difference of two numbers.
814
+
815
+ ```ruby
816
+ 4.subtract(2) #=> 2
817
+ ```
818
+
819
+ ####Terabytes:####
820
+ `terabyte` and `terabytes` returns the amount of bytes in n terabytes.
821
+
822
+ ```ruby
823
+ 3.terabytes #=> 3298534883328
824
+ ```
825
+
826
+ ####To Byte:####
827
+ `to_byte` converts a byte size from one unit to another unit.
828
+
829
+ ```ruby
830
+ 1.to_byte(:byte, :byte) #=> 1 #B
831
+ 5120.to_byte(:byte, :kilobyte) #=> 5 #MB
832
+ 1.to_byte(:megabyte, :kilobyte) #=> 1024 #KB
833
+ 80.to_byte(:megabyte, :gigabyte) #=> 0.078125 #GB
834
+ ```
835
+
836
+ ####To Length:####
837
+ `to_length` converts a length from one unit to another unit.
838
+
839
+ ```ruby
840
+ 12.to_length(:inches, :feet) #=> 12 #IN
841
+ 3000.to_length(:meters, :kilometers) #=> 3 #KM
842
+ 1.to_length(:feet, :centimeters) #=> 30.479999999999997 #CM
843
+ 1.to_length(:kilometer, :yards) #=> 1093.6138888888888 #YDS
844
+ ```
845
+
846
+ ####To Mass:####
847
+ `to_mass` converts a mass from one unit to another unit.
848
+
849
+ ```ruby
850
+ 16.to_mass(:ounces, :pounds) #=> 1 #LB
851
+ 1.to_mass(:centigrams, :milligrams) #=> 10 #MG
852
+ 3.to_mass(:pound, :kilogram) #=> 1.360776 #KG
853
+ 1.to_mass(:kilograms, :pounds) #=> 2.204625 #LB
854
+ ```
855
+
856
+ ####To Nearest Value:####
857
+ `to_nearest value` return the value in values that is nearest to the number.
858
+
859
+ ```ruby
860
+ 5.to_nearest_value([1, 3, 6, 9]) #=> 6
861
+ 3.5.to_nearest_value([3.0, 3.3, 3.6, 3.9]) #=> 3.6
862
+ ```
863
+
864
+ ####To Temperature:####
865
+ `to_temperature` converts a temperature from one unit to another unit.
866
+
867
+ ```ruby
868
+ 100.to_temperature(:celsius, :fahrenheit) #=> 212 #F
869
+ 212.to_temperature(:fahrenheit, :celsius) #=> 100 #C
870
+ 212.to_temperature(:fahrenheit, :kelvin) #=> 373.15 #K
871
+ ```
872
+
873
+ ####To Time:####
874
+ `to_time` converts a time unit from one unit to another unit.
875
+
876
+ ```ruby
877
+ 120.to_time(:seconds, :mintues) #=> 2 #MIN
878
+ 3.to_time(:hours, :days) #=> 3 #DAY
879
+ 2.to_time(:days, :seconds) #=> 172800 #SEC
880
+ 1825.to_time(:days, :years) #=> 4.996577686516085 #YR
881
+ ```
882
+
883
+ ####Tons:####
884
+ `ton` and `ton` returns the amount of ounces in n tons.
885
+
886
+ ```ruby
887
+ 3.tons #=> 96000
888
+ ```
889
+
890
+ ####Weeks:####
891
+ `week` and `weeks` returns the amount of seconds in n weeks.
892
+
893
+ ```ruby
894
+ 3.weeks #=> 1814400
895
+ ```
896
+
897
+ ####Yards:####
898
+ `yard` and `yards` returns the amount of inches in n yards.
899
+
900
+ ```ruby
901
+ 3.yards #=> 108
902
+ ```
903
+
904
+ ####Years:####
905
+ `year` and `years` returns the amount of seconds in n years.
906
+
907
+ ```ruby
908
+ 3.years #=> 94672800.0
909
+ ```
910
+
911
+ ### Object
912
+
913
+ ####Blank:####
914
+ `blank?` determines if an object is empty or nil. `Rails Safe`
915
+
916
+ ```ruby
917
+ "".blank? #=> true
918
+ "Awesome Sting".blank? #=> false
919
+ ```
920
+
921
+ ####Numeric:####
922
+ `numeric?` determines if an object's string value is numeric.
923
+
924
+ ```ruby
925
+ "-32.50".numeric? #=> true
926
+ "$2.55".numeric? #=> false
927
+ ```
928
+
929
+ ####Palindrome:####
930
+ `palindrome?` determines if an object is equal when reversed.
931
+
932
+ ```ruby
933
+ "racecar".palindrome? #=> true
934
+ 12321.palindrome? #=> true
935
+ "example".palindrome? #=> false
936
+ 12345.palindrome? #=> false
937
+ ```
938
+
939
+ ####Present:####
940
+ `present?` determines if an object is not empty or nil. `Rails Safe`
941
+
942
+ ```ruby
943
+ "Awesome Sting".blank? #=> true
944
+ "".present? #=> false
945
+ ```
946
+
947
+ ####Try:####
948
+ `try` and `try!` invokes the public method whose name goes as first argument just like public_send does, except that if the receiver does not respond to it the call returns nil rather than raising an exception. `Rails Safe`
949
+
950
+ ```ruby
951
+ "example".try(:upcase) #=> "EXAMPLE"
952
+ "example".try(:fake_method) #=> nil
953
+ ```
954
+
955
+ ### String
956
+
957
+ ####At:####
958
+ `at` returns the characters at index position, matching string, or regex. `Rails Safe`
959
+
960
+ ```ruby
961
+ "example_string".at(0) #=> "e"
962
+ "example_string".at(-2) #=> "n"
963
+ "example_string".at(1..3) #=> "xam"
964
+ "example_string".at("e_s") #=> "e_s"
965
+ "example_string".at(/ple/) #=> "ple"
966
+ "example_string".at(99) #=> nil
967
+ ```
968
+
969
+ ####Camelize:####
970
+ `camelize` and `camelize!` transfroms a string to camelcase. `Rails Safe`
971
+
972
+ ```ruby
973
+ "example_string".camelize #=> "ExampleString"
974
+ "example_String".camecase #=> "ExampleString"
975
+ "example_string".camelize(:lower) #=> "exampleString"
976
+ "example_String".camecase(:lower) #=> "exampleString"
977
+ ```
978
+
979
+ ####Classify:####
980
+ `classify` and `classify!` creates a class name from a string like Rails does for table names to models. `Rails Safe`
981
+
982
+ ```ruby
983
+ "example_string".classify #=> "ExampleString"
984
+ "example_string/test".classify #=> "ExampleString::Test"
985
+ "example_string.test".classify #=> "Test"
986
+ ```
987
+
988
+ ####Dasherize:####
989
+ `dasherize` and `dasherize!` replaces underscores with dashes in the string. `Rails Safe`
990
+
991
+ ```ruby
992
+ "example_string".dasherize #=> "example-string"
993
+ ```
994
+
995
+ ####Demodulize:####
996
+ `demodulize` and `demodulize!` removes the module part from the expression in the string. `Rails Safe`
997
+
998
+ ```ruby
999
+ "Example::String".demodulize #=> "String"
1000
+ "String".demodulize #=> "String"
1001
+ ```
1002
+
1003
+ ####Domain:####
1004
+ `domain` extracts the domain name from a URL.
1005
+
1006
+ ```ruby
1007
+ "http://www.example.com/fake-page".domain #=> "www.example.com"
1008
+ "example string".domain #=> "example string"
1009
+ ```
1010
+
1011
+ ####Downcase:####
1012
+ `downcase?` returns true if all characters are lowercase.
1013
+
1014
+ ```ruby
1015
+ "example".downcase? #=> true
1016
+ "Example".downcase? #=> false
1017
+ "EXAMPLE".downcase? #=> false
1018
+ ```
1019
+
1020
+ ####Ellipsize:####
1021
+ `ellipsize` truncate a string in the middle.
1022
+
1023
+ **Options**
1024
+ * offset: 4
1025
+ * separator: "..."
1026
+
1027
+ ```ruby
1028
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(30) #=> "0123...WXYZ"
1029
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(50) #=> "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
1030
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(30, offset: 2) #=> "01...YZ"
1031
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(30, separator: "+++") #=> "0123+++WXYZ"
1032
+ ```
1033
+
1034
+ ####Exclude:####
1035
+ `exclude?` returns true if the string does not include the other string. `Rails Safe`
1036
+
1037
+ ```ruby
1038
+ "example_string".exclude?("exa") #=> false
1039
+ "example_string".exclude?("xxx") #=> true
1040
+ ```
1041
+
1042
+ ####First:####
1043
+ `first` returns the first character. If a limit is supplied, returns a substring from the beginning of the string until it reaches the limit value. If the given limit is greater than or equal to the string length, returns a copy of self. `Rails Safe`
1044
+
1045
+ ```ruby
1046
+ "example".first #=> "e"
1047
+ "example".first(0) #=> ""
1048
+ "example".first(3) #=> "exa"
1049
+ ```
1050
+
1051
+ ####From:####
1052
+ `from` returns a substring from the given position to the end of the string. If the position is negative, it is counted from the end of the string. `Rails Safe`
1053
+
1054
+ ```ruby
1055
+ "example".from(0) #=> "example"
1056
+ "example".from(3) #=> "mple"
1057
+ ```
1058
+
1059
+ ####Humanize:####
1060
+ `humanize` and `humanize!` transforms a string to a human readable string. `Rails Safe`
1061
+
1062
+ **Options**
1063
+ * capitalize: true
1064
+
1065
+ ```ruby
1066
+ "ExampleString".humanize #=> "Example string"
1067
+ "example_string".humanize #=> "Example string"
1068
+ "example_string".humanize(capitalize: false) #=> "example string"
1069
+ ```
1070
+
1071
+ ####Indent:####
1072
+ `indent` and `indent!` indents the lines in the receiver. `Rails Safe`
1073
+
1074
+ ```ruby
1075
+ "example".indent(2) #=> " example"
1076
+ "example".indent(2, "\t") #=> "\t\texample"
1077
+ ```
1078
+
1079
+ ####Last:####
1080
+ `last` returns the last character of the string. If a limit is supplied, returns a substring from the end of the string until it reaches the limit value (counting backwards). If the given limit is greater than or equal to the string length, returns a copy of self. `Rails Safe`
1081
+
1082
+ ```ruby
1083
+ "example".last #=> "e"
1084
+ "example".last(0) #=> ""
1085
+ "example".first(3) #=> "ple"
1086
+ ```
1087
+
1088
+ ####Mixcase:####
1089
+ `mixcase?` returns true if characters are mixedcase.
1090
+
1091
+ ```ruby
1092
+ "Example".mixedcase? #=> true
1093
+ "EXAMPLE".mixedcase? #=> false
1094
+ "example".mixedcase? #=> false
1095
+ ```
1096
+
1097
+ ####Ordinal:####
1098
+ `ordinal` returns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. `Rails Safe`
1099
+
1100
+ ```ruby
1101
+ "1".ordinal #=> "th"
1102
+ "2".ordinal #=> "nd"
1103
+ "3".ordinal #=> "rd"
1104
+ "11".ordinal #=> "th"
1105
+ ```
1106
+
1107
+ ####Ordinalize:####
1108
+ `ordinalize` transforms a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. `Rails Safe`
1109
+
1110
+ ```ruby
1111
+ "1".ordinalize #=> "1th"
1112
+ "2".ordinalize #=> "2nd"
1113
+ "3".ordinalize #=> "3rd"
1114
+ "11".ordinalize #=> "4th"
1115
+ ```
1116
+
1117
+ ####Parameterize:####
1118
+ `parameterize` and `parameterize!` makes string suitable for a dashed url parameter string. `Rails Safe`
1119
+
1120
+ ```ruby
1121
+ "example_string".parameterize #=> "example-string"
1122
+ "example_string".parameterize("?") #=> "example?string"
1123
+ ```
1124
+
1125
+ ####Pollute:####
1126
+ `pollute` pollutes the space between every letter in a string, so it will be exempt from any impending string searches.
1127
+
1128
+ ```ruby
1129
+ "test".pollute #=> "t^--^--^e^--^--^s^--^--^t^--^--^"
1130
+ "test".pollute("-") #=> "t-e-s-t-"
1131
+ ```
1132
+
1133
+ ####Remove:####
1134
+ `remove` and `remove!` removes every instance of a string.
1135
+
1136
+ ```ruby
1137
+ "this thing that thing".remove("thing") #=> "this that "
1138
+ "this thing that them".remove("thing", "them") #=> "this that "
1139
+ ```
1140
+
1141
+ ####Remove Tags:####
1142
+ `remove_tags` and `remove_tags!` removes HTML tags from a string.
1143
+
1144
+ ```ruby
1145
+ "example".strip_tags #=> "example"
1146
+ "<a href='http://example.com'>click</a>".strip_tags #=> "click"
1147
+ "this is <b>bold</b> and <em>emphatic</em>".strip_tags #=> "this is bold and emphatic"
1148
+ ```
1149
+
1150
+ ####Shift:####
1151
+ `shift` and `shift!` removes the first instance of a string.
1152
+
1153
+ ```ruby
1154
+ "this thing that thing".remove("thing") #=> "this that thing"
1155
+ "this thing that thing".remove("this", "that") #=> " thing thing"
1156
+ ```
1157
+
1158
+ ####Slugify:####
1159
+ `slugify` and `slugify!` generates a permalink-style string, with odd characters removed.
1160
+
1161
+ ```ruby
1162
+ "example".slugify #=> "example"
1163
+ "example string".slugify #=> "example-string"
1164
+ "Example string @@@ test!".slugify #=> "example-string-test"
1165
+ ```
1166
+
1167
+ ####Squish:####
1168
+ `squish` and `squish!` returns the string, first removing all whitespace on both ends of the string, and then changing remaining consecutive whitespace groups into one space each. `Rails Safe`
1169
+
1170
+ ```ruby
1171
+ "example string".squish #=> "example string"
1172
+ "example \n \t string".squish #=> "example string"
1173
+ " example string ".squish #=> "example string"
1174
+ ```
1175
+
1176
+ ####Titleize:####
1177
+ `titleize` and `titleize!` capitalizes each word in a string. `Rails Safe`
1178
+
1179
+ ```ruby
1180
+ "example string".titleize #=> "Example String"
1181
+ "example_string".titleize #=> "Example String"
1182
+ "ExampleString".titleize #=> "Example String"
1183
+ ```
1184
+
1185
+ ####To:####
1186
+ `to` returns a substring from the beginning of the string to the given position. If the position is negative, it is counted from the end of the string. `Rails Safe`
1187
+
1188
+ ```ruby
1189
+ "example".to(0) #=> "example"
1190
+ "example".to(3) #=> "exam"
1191
+ "example".to(-2) #=> "exampl"
1192
+ ```
1193
+
1194
+ ####Truncate:####
1195
+ `truncate` a given text after a given length if text is longer than length. `Rails Safe`
1196
+
1197
+ **Options**
1198
+ * omission: "..."
1199
+ * separator: " "
1200
+
1201
+ ```ruby
1202
+ "example string".truncate(3) #=> "..."
1203
+ "example string".truncate(6) #=> "exa..."
1204
+ "example string".truncate(12, separator: " ") #=> "example..."
1205
+ "example string".truncate(13, omission: "... (more)") #=> "exa... (more)"
1206
+ "example string".truncate(15) #=> "example string"
1207
+ ```
1208
+
1209
+ ####Truncate Words:####
1210
+ `truncate_words` truncates a given text after a given number of words. `Rails Safe`
1211
+
1212
+ **Options**
1213
+ * omission: "..."
1214
+ * separator: " "
1215
+
1216
+ ```ruby
1217
+ "example string test".truncate_words(1) #=> "example..."
1218
+ 'Once<br>upon<br>a<br>time<br>in<br>a<br>world'.truncate_words(5, separator: '<br>') #=> "Once<br>upon<br>a<br>time<br>in..."
1219
+ 'And they found that many people were sleeping better.'.truncate_words(5, omission: '... (continued)') #=> "And they found that many... (continued)"
1220
+ ```
1221
+
1222
+ ####Underscore:####
1223
+ `underscore` and `underscore!` transforms a string to snakecase. `Rails Safe`
1224
+
1225
+ ```ruby
1226
+ "ExampleString".underscore #=> "example_string"
1227
+ "exampleString".underscore #=> "example_string"
1228
+ "ExampleString::Test".underscore #=> "example_string/test"
1229
+ ```
1230
+
1231
+ ####Unpollute:####
1232
+ `unpollute` removes the default or custom pollution character. Can also be used to remove an unwanted character.
1233
+
1234
+ ```ruby
1235
+ "t^--^--^e^--^--^s^--^--^t^--^--^".unpollute #=> "test"
1236
+ "t-e-s-t-".unpollute #=> "test"
1237
+ ```
1238
+
1239
+ ####Upcase:####
1240
+ `upcase?` returns true if all characters are uppercase.
1241
+
1242
+ ```ruby
1243
+ "EXAMPLE".upcase? #=> true
1244
+ "example".upcase? #=> false
1245
+ "Example".upcase? #=> false
1246
+ ```
1247
+
1248
+ ### Time
1249
+
1250
+ ####Format:####
1251
+ `format` converts a Date or Time object to format it using a human readable string.
1252
+
1253
+ **Rules**
1254
+ * Characters: a-z 0-9 _
1255
+ * Characters can only be used to generate a format part
1256
+
1257
+ ```ruby
1258
+ Time.now.format("year") #=> "2014"
1259
+ Time.now.format("month_name day, year hour:minute ampm") #=> "January 09, 2014 02:31 pm"
1260
+ ```
1261
+
1262
+ | Name | Key | Equivalent `strftime` | Result |
1263
+ | --- | --- | --- | --- |
1264
+ | Month - digits zero-padded | `m` or `month` or `month_zero` | %m | (01..12) |
1265
+ | Month - digits unpadded | `mm` or `Month` or `month_unpadded` | %-m | (1..12) |
1266
+ | Month - digits blank-padded | `mmm` or `MONTH` or `day_blank` | %_m | ( 1..12) |
1267
+ | Month - name | `mmmm` or `month_name` | %B | January |
1268
+ | Month - name abbreviated | `mmmmm` or `month_name_abbr` | %b | Jan |
1269
+ | Day - digits zero-padded | `d` or `day` or `day_zero` | %d | (01..31) |
1270
+ | Day - digits unpadded | `dd` or `Day` or `day_unpadded` | %-d | (1..31) |
1271
+ | Day - digits blank-padded | `ddd` or `DAY` or `day_blank` | %_d | ( 1..31) |
1272
+ | Day - digits of the year | `dddd` or `day_of_the_year` | %j | (001..366) |
1273
+ | Week - starting monday | `wwwww` or `week` | %M | (00..53) |
1274
+ | Week - starting sunday | `wwwwww` or `weekday_offset` | %M | (00..53) |
1275
+ | Weekday - starting monday | `w` or `weekday` | %M | (1..7) |
1276
+ | Weekday - starting sunday | `ww` or `weekday` | %M | (0..6) |
1277
+ | Weekday - name | `www` or `weekday_name` | %M | Sunday |
1278
+ | Weekday - name abbreviated | `wwww` or `weekday_name_abbr` | %M | Sun |
1279
+ | Year - digits two | `yy` or `yr` | %y | (00..99) |
1280
+ | Year - digits four | `yyyy` or `year` | %Y | 1999 |
1281
+ | Hour - digits zero-padded | `h` or `hour` or `hour_zero` | %H | (00..23) |
1282
+ | Hour - digits blank-padded | `hh` or `HOUR` or `hour_blank` | %k | ( 0..23) |
1283
+ | Hour - digits zero-padded | `hhh` or `hour_imperical` or `hour_imperical_zero` | %I | (01..12) |
1284
+ | Hour - digits blank-padded | `hhhh` or `HOUR_IMPERICAL` or `hour_imperical_blank` | %l | ( 1..12) |
1285
+ | Minute - minute | `n` or `minute` | %M | (00..59) |
1286
+ | Second - second | `s` or `second` | %S | (00..60) |
1287
+ | Meridian - lowercase | `ampm` or `meridian` | %p | am..pm |
1288
+ | Meridian - uppercase | `AMPM` or `MERIDIAN` | %P | AM..PM |
1289
+ | Time Zone - time zone | `z` or `time_zone` | %z | +0900 |
1290
+ | Time Zone - hour and minute offset | `zz` or `time_zone_offset` | %z | +09:00 |
1291
+ | Time Zone - hour, minute and second offset | `zzz` or `time_zone_offset_full` | %z | +09:00:00 |
1292
+
1293
+ ####To Format:####
1294
+ `to_format` converts a Date or Time object to a predefined format.
1295
+
1296
+ **For a full list check out the time extention file.**
1297
+
1298
+ ```ruby
1299
+ Time.now.to_format(:year) #=> "2014"
1300
+ Time.now.to_format(:datetime) #=> "January 09, 2014 02:31 pm"
1301
+ ```
1302
+
1303
+ | Name | Key | Equivalent `strftime` | Result |
1304
+ | --- | --- | --- | --- |
1305
+ | Month - digits zero-padded | `:month` or `:month_zero` | %A | (01..12) |
1306
+ | Month - digits unpadded | `:month_unpadded` | %a | (1..12) |
1307
+ | Month - digits blank-padded | `:month_blank` | %a | ( 1..12) |
1308
+ | Month - name | `:month_name` | %A | January |
1309
+ | Month - name abbreviated | `:month_name_abbr` | %a | Jan |
1310
+ | Weekday - digits zero-padded | `:weekday_zero` | %A | (01..31) |
1311
+ | Weekday - digits unpadded | `:weekday_unpadded` | %a | (1..31) |
1312
+ | Weekday - digits blank-padded | `:weekday_blank` | %a | ( 1..31) |
1313
+ | Weekday - name | `:weekday_name` | %A | Sunday |
1314
+ | Weekday - name abbreviated | `:weekday_name_abbr` | %a | Sun |
1315
+ | Year - digits two | `:yr` | %y | (00..99) |
1316
+ | Year - digits four | `:year` | %Y | 1999 |
1317
+ | Hour - digits zero-padded | `:hour` or `:hour_zero` | %H | (00..23) |
1318
+ | Hour - digits blank-padded | `:hour_blank` | %k | ( 0..23) |
1319
+ | Hour - digits zero-padded imperical | `:hour_imperical_zero` | %I | (01..12) |
1320
+ | Hour - digits blank-padded imperical | `:hour_imperical_blank` | %l | ( 1..12) |
1321
+ | Minute - minute | `:minute` | %M | (00..59) |
1322
+ | Second - second | `:second` | %S | (00..60) |
1323
+ | Time Zone - time zone | `:time_zone` | %z | +0900 |
1324
+ | Time Zone - hour and minute offset | `:time_zone_offset` | %z | +09:00 |
1325
+ | Time Zone - hour, minute and second offset | `:time_zone_offset_full` | %z | +09:00:00 |
1326
+ | Date - name | `:date` | %B %-d, %Y | January 9, 2014 |
1327
+ | Date - name abbreviated | `:date_abbr` | %b %-d, %Y | Jan 9, 2014 |
1328
+ | Date - iso | `:date_iso` | %Y-%m-%d | 2014-01-09 |
1329
+ | Datetime - name | `:datetime` | %B %-d, %Y %H:%M | January 9, 2014 00:31 |
1330
+ | Datetime - name abbreviated | `:datetime_abbr` | %b %-d, %Y %H:%M | Jan 9, 2014 00:31 |
1331
+ | Datetime - iso | `:datetime_iso` | %Y-%m-%d %H:%M | 2014-01-09 00:31 |
1332
+ | Datetime - name imperical | `:datetime_imperical` | %B %-d, %Y %H:%M | January 9, 2014 12:31 am |
1333
+ | Datetime - name abbreviated imperical | `:datetime_imperical_abbr` | %b %-d, %Y %H:%M | Jan 9, 2014 12:31 am |
1334
+ | Datetime - iso imperical | `:datetime_imperical_iso` | %Y-%m-%d %H:%M | 2014-01-09 12:31 am |
1335
+ | Datetime - name time zone | `:datetime_tzn` | %B %-d, %Y %H:%M %Z | January 9, 2014 00:31 UTC |
1336
+ | Datetime - name abbreviated time zone | `:datetime_abbr_tzn` | %b %-d, %Y %H:%M %Z | Jan 9, 2014 00:31 UTC |
1337
+ | Datetime - iso time zone | `:datetime_iso_tzn` | %Y-%m-%d %H:%M %z | 2014-01-09 00:31 +0000 |
1338
+ | Datetime - name imperical time zone | `:datetime_imperical_tzn` | %B %-d, %Y %H:%M %Z | January 9, 2014 12:31 am UTC |
1339
+ | Datetime - name abbreviated imperical time zone | `:datetime_imperical_abbr_tzn` | %b %-d, %Y %H:%M %Z | Jan 9, 2014 12:31 am UTC |
1340
+ | Datetime - iso imperical time zone | `:datetime_imperical_iso_tzn` | %Y-%m-%d %H:%M %z | 2014-01-09 12:31 am +0000 |
1341
+ | Day - name | `:day` | %B %-d | January 9 |
1342
+ | Day - name abbreviated | `:day_abbr` | %b %-d | Jan 9 |
1343
+ | Day - iso | `:day_iso` | %m-%d | 01-09 |
1344
+ | Daytime - name | `:daytime` | %B %-d %H:%M | January 9 00:31 |
1345
+ | Daytime - name abbreviated | `:daytime_abbr` | %b %-d %H:%M | Jan 9 00:31 |
1346
+ | Daytime - iso | `:daytime_iso` | %m-%d %H:%M | 01-09 00:31 |
1347
+ | Daytime - name imperical | `:daytime_imperical` | %B %-d %H:%M | January 9 12:31 am |
1348
+ | Daytime - name abbreviated imperical | `:daytime_imperical_abbr` | %b %-d %H:%M | Jan 9 12:31 am |
1349
+ | Daytime - iso imperical | `:daytime_imperical_iso` | %m-%d %H:%M | 01-09 12:31 am |
1350
+ | Time - zero-padded | `:time` or `:time_zero` | %H:%M | 00:31 |
1351
+ | Time - blank-padded | `:time_blank` | %k:%M %z | 0:31 |
1352
+ | Time - with time zone | `:time_tz` | %H:%M %z | 00:31 +0000 |
1353
+ | Time - with time zone name | `:time_tzn` | %H:%M %Z | 00:31 UTC |
1354
+
1355
+ ## Contributing
1356
+
1357
+ 1. Fork it ( http://github.com/<my-github-username>/active_object/fork )
1358
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
1359
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
1360
+ 4. Push to the branch (`git push origin my-new-feature`)
1361
+ 5. Create new Pull Request