active_object 3.1.0 → 4.0.0

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: 161b344cfb86cc5d27a34babe38cd5ac595e0ef4
4
- data.tar.gz: 8df3cc4a616c35bd0ee8fc3d39ffe960915b0459
3
+ metadata.gz: b52b58238d84ad6594aaafcb63c961ac46f6ad81
4
+ data.tar.gz: 503f279e954d375b381a7b67a6228b3752e11d22
5
5
  SHA512:
6
- metadata.gz: eaf2c2d7b0315f196b33705bcb0afaee61916cdd90fa4da4b4b4ce108de7ce928e012af1175686e8d2e08e1a331a651a4846b8560f7e9a9f2f489cfe171aee4d
7
- data.tar.gz: a0a23c8780c01154cc7b6c56ab44f2bc0f55f21e2ee33eaabec5f3b3e9202e97260f8c144e2c61ea5da4156cb3b99b147be907bfe77cf5f6fedf9b998a3286e9
6
+ metadata.gz: b8bad73d734c8812f45f71fb0db9eef0085d561edf6eb4f80c8cd89b8508b2e163b285c2d858042e282e71c70f02d5a10329c62a67a3ecccee19811ef856734b
7
+ data.tar.gz: 6adf3e1b464d321452602f6a9153163f4270720f829d319cf86f0e197606153125984cce45fc1f520cb22146bd5c0bdf6a58ead42a71f41ef530436b05739b96
data/.DS_Store ADDED
Binary file
data/.fasterer.yml ADDED
@@ -0,0 +1,19 @@
1
+ speedups:
2
+ rescue_vs_respond_to: true
3
+ module_eval: true
4
+ shuffle_first_vs_sample: true
5
+ for_loop_vs_each: true
6
+ each_with_index_vs_while: false
7
+ map_flatten_vs_flat_map: true
8
+ reverse_each_vs_reverse_each: true
9
+ select_first_vs_detect: true
10
+ sort_vs_sort_by: true
11
+ fetch_with_argument_vs_block: true
12
+ keys_each_vs_each_key: true
13
+ hash_merge_bang_vs_hash_brackets: true
14
+ block_vs_symbol_to_proc: true
15
+ proc_call_vs_yield: true
16
+ gsub_vs_tr: true
17
+ select_last_vs_reverse_detect: true
18
+ getter_vs_attr_reader: true
19
+ setter_vs_attr_writer: true
data/.reek ADDED
@@ -0,0 +1,39 @@
1
+ ---
2
+ Attribute:
3
+ enabled: false
4
+ BooleanParameter:
5
+ enabled: false
6
+ ControlParameter:
7
+ enabled: false
8
+ DuplicateMethodCall:
9
+ exclude:
10
+ - 'ActiveObject::Array#to_sentence'
11
+ - 'ActiveObject::Array#split'
12
+ - 'ActiveObject::Array#probability'
13
+ - 'ActiveObject::Numeric'
14
+ FeatureEnvy:
15
+ enabled: false
16
+ IrresponsibleModule:
17
+ enabled: false
18
+ NilCheck:
19
+ enabled: false
20
+ ManualDispatch:
21
+ enabled: false
22
+ NestedIterators:
23
+ max_allowed_nesting: 2
24
+ PrimaDonnaMethod:
25
+ enabled: false
26
+ TooManyConstants:
27
+ exclude:
28
+ - 'ActiveObject::Date'
29
+ - 'ActiveObject::Numeric'
30
+ - 'ActiveObject::Time'
31
+ TooManyStatements:
32
+ max_statements: 10
33
+ exclude:
34
+ - 'ActiveObject::Array#in_groups'
35
+ UncommunicativeVariableName:
36
+ exclude:
37
+ - 'ActiveObject::Integer#factorial'
38
+ UtilityFunction:
39
+ enabled: false
data/.rubocop.yml ADDED
@@ -0,0 +1,38 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ DisplayStyleGuide: true
4
+ TargetRubyVersion: 2.3
5
+ Exclude:
6
+ - 'spec/**/**/*'
7
+ LineLength:
8
+ Max: 100
9
+ Metrics/ModuleLength:
10
+ Enabled: false
11
+ Style/Alias:
12
+ EnforcedStyle: prefer_alias_method
13
+ Style/BracesAroundHashParameters:
14
+ Enabled: false
15
+ Style/ClassAndModuleChildren:
16
+ EnforcedStyle: compact
17
+ Style/ClosingParenthesisIndentation:
18
+ Enabled: false
19
+ Style/Documentation:
20
+ Enabled: false
21
+ Style/EmptyLinesAroundBlockBody:
22
+ Enabled: false
23
+ Style/EmptyLinesAroundClassBody:
24
+ Enabled: false
25
+ Style/EmptyLinesAroundModuleBody:
26
+ Enabled: false
27
+ Style/HashSyntax:
28
+ Enabled: false
29
+ Style/FirstParameterIndentation:
30
+ Enabled: false
31
+ Style/FrozenStringLiteralComment:
32
+ Enabled: false
33
+ Style/MultilineMethodCallIndentation:
34
+ EnforcedStyle: aligned
35
+ Style/NumericLiterals:
36
+ Enabled: false
37
+ Style/RescueModifier:
38
+ Enabled: false
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in active_object.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -17,7 +17,7 @@ Highly recommended extensions:
17
17
 
18
18
  Add this line to your application's Gemfile:
19
19
 
20
- gem "active_object"
20
+ gem 'active_object'
21
21
 
22
22
  And then execute:
23
23
 
@@ -48,8 +48,6 @@ Or install it yourself as:
48
48
  # config/initalizers/active_object.rb
49
49
 
50
50
  ActiveObject.configure do |config|
51
- # option = default
52
-
53
51
  config.autoload_array = true
54
52
  config.autoload_date = true
55
53
  config.autoload_enumerable = true
@@ -69,32 +67,32 @@ end
69
67
  `after` returns the value after the given value.
70
68
 
71
69
  ```ruby
72
- ["1", "2", "3"].after("2") #=> "3"
73
- ["1", "2", "3"].after("3") #=> "1"
74
- ["1", "2", "3"].after("4") #=> nil
70
+ ['1', '2', '3'].after('2') #=> '3'
71
+ ['1', '2', '3'].after('3') #=> '1'
72
+ ['1', '2', '3'].after('4') #=> nil
75
73
  ```
76
74
 
77
75
  ####Before:####
78
76
  `before` returns the value before the given value.
79
77
 
80
78
  ```ruby
81
- ["1", "2", "3"].before("2") #=> "1"
82
- ["1", "2", "3"].before("1") #=> "3"
83
- ["1", "2", "3"].before("4") #=> nil
79
+ ['1', '2', '3'].before('2') #=> '1'
80
+ ['1', '2', '3'].before('1') #=> '3'
81
+ ['1', '2', '3'].before('4') #=> nil
84
82
  ```
85
83
 
86
84
  ####Delete First:####
87
85
  `delete_first` and `delete_first!` removes the first element from an array. Like Array.shift, but returns the array instead of the removed element.
88
86
 
89
87
  ```ruby
90
- ["1", "2", "3"].delete_first #=> ["2", "3"]
88
+ ['1', '2', '3'].delete_first #=> ['2', '3']
91
89
  ```
92
90
 
93
91
  ####Delete Last:####
94
92
  `delete_last` and `delete_last!` removes the last element from an array. Like Array.pop, but returns the array instead of the removed element.
95
93
 
96
94
  ```ruby
97
- ["1", "2", "3"].delete_last #=> ["1", "2"]
95
+ ['1', '2', '3'].delete_last #=> ['1', '2']
98
96
  ```
99
97
 
100
98
  ####Delete Values:####
@@ -108,7 +106,7 @@ end
108
106
  `dig` returns the value of a nested array.
109
107
 
110
108
  ```ruby
111
- ["zero", ["ten", "eleven", "twelve"], "two"].dig(1, 2) #=> "twelve"
109
+ ['zero', ['ten', 'eleven', 'twelve'], 'two'].dig(1, 2) #=> 'twelve'
112
110
  ```
113
111
 
114
112
  ####Duplicates:####
@@ -123,34 +121,34 @@ end
123
121
  `from` returns the tail of the array from position.
124
122
 
125
123
  ```ruby
126
- ["1", "2", "3"].from(0) #=> ["1", "2", "3"]
127
- ["1", "2", "3"].from(1) #=> ["2", "3"]
128
- ["1", "2", "3"].from(-1) #=> ["3"]
124
+ ['1', '2', '3'].from(0) #=> ['1', '2', '3']
125
+ ['1', '2', '3'].from(1) #=> ['2', '3']
126
+ ['1', '2', '3'].from(-1) #=> ['3']
129
127
  ```
130
128
 
131
129
  ####Groups:####
132
130
  `groups` splits or iterates over the array in number of groups.
133
131
 
134
132
  ```ruby
135
- %w(1 2 3 4 5 6 7 8 9 10).groups(3) #=> [["1", "2", "3", "4"], ["5", "6", "7"], ["8", "9", "10"]]
133
+ %w(1 2 3 4 5 6 7 8 9 10).groups(3) #=> [['1', '2', '3', '4'], ['5', '6', '7'], ['8', '9', '10']]
136
134
  ```
137
135
 
138
136
  ####In Groups:####
139
137
  `in_groups` splits or iterates over the array in number of groups, padding any remaining slots with fill_with unless it is false.
140
138
 
141
139
  ```ruby
142
- %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]]
143
- %w(1 2 3 4 5 6 7 8 9 10).in_groups(3, ' ') #=> [["1", "2", "3", "4"], ["5", "6", "7", " "], ["8", "9", "10", " "]]
144
- %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"]]
140
+ %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]]
141
+ %w(1 2 3 4 5 6 7 8 9 10).in_groups(3, ' ') #=> [['1', '2', '3', '4'], ['5', '6', '7', ' '], ['8', '9', '10', ' ']]
142
+ %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']]
145
143
  ```
146
144
 
147
145
  ####In Groups Of:####
148
146
  `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.
149
147
 
150
148
  ```ruby
151
- %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]]
152
- %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", " ", " "]]
153
- %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"]]
149
+ %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]]
150
+ %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', ' ', ' ']]
151
+ %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']]
154
152
  ```
155
153
 
156
154
  ####Percentile:####
@@ -195,17 +193,17 @@ end
195
193
  `strip` and `strip!` removes blank elements from an array.
196
194
 
197
195
  ```ruby
198
- ["this", "", "that", nil, false].strip #=> ["this", "that"]
199
- "this is a test".split(" ").strip #=> ["this", "is", "a", "test"]
196
+ ['this', '', 'that', nil, false].strip #=> ['this', 'that']
197
+ 'this is a test'.split(' ').strip #=> ['this', 'is', 'a', 'test']
200
198
  ```
201
199
 
202
200
  ####To:####
203
201
  `to` returns the beginning of the array up to position.
204
202
 
205
203
  ```ruby
206
- ["1", "2", "3"].to(0) #=> ["1"]
207
- ["1", "2", "3"].to(1) #=> ["1", "2"]
208
- ["1", "2", "3"].to(-1) #=> ["3"]
204
+ ['1', '2', '3'].to(0) #=> ['1']
205
+ ['1', '2', '3'].to(1) #=> ['1', '2']
206
+ ['1', '2', '3'].to(-1) #=> ['3']
209
207
  ```
210
208
 
211
209
  ####To Sentence:####
@@ -217,12 +215,12 @@ end
217
215
  * last_word_connector: “, and ”
218
216
 
219
217
  ```ruby
220
- [].to_sentence #=> ""
221
- ["one"].to_sentence #=> "one"
222
- ["one", "two"].to_sentence #=> "one and two"
223
- ["one", "two", "three"].to_sentence #=> "one, two, and three"
224
- ["one", "two"].to_sentence(two_words_connector: '-') #=> "one-two"
225
- ["one", "two", "three"].to_sentence(words_connector: ' or ', last_word_connector: ' or at least ') #=> "one or two or at least three"
218
+ [].to_sentence #=> ''
219
+ ['one'].to_sentence #=> 'one'
220
+ ['one', 'two'].to_sentence #=> 'one and two'
221
+ ['one', 'two', 'three'].to_sentence #=> 'one, two, and three'
222
+ ['one', 'two'].to_sentence(two_words_connector: '-') #=> 'one-two'
223
+ ['one', 'two', 'three'].to_sentence(words_connector: ' or ', last_word_connector: ' or at least ') #=> 'one or two or at least three'
226
224
  ```
227
225
 
228
226
  ## Enumerable
@@ -315,8 +313,8 @@ end
315
313
  `incase?` the same as #include? but tested using #=== instead of #==.
316
314
 
317
315
  ```ruby
318
- [1, 2, "a"].incase?(String) #=> true
319
- [1, 2, "a"].incase?(3) #=> false
316
+ [1, 2, 'a'].incase?(String) #=> true
317
+ [1, 2, 'a'].incase?(3) #=> false
320
318
  ```
321
319
 
322
320
  ####Many:####
@@ -419,9 +417,8 @@ end
419
417
 
420
418
  ```ruby
421
419
  [].sum #=> 0
422
- [].sum(nil) #=> nil
423
420
  [1,2,3].sum #=> 6
424
- ["foo", "bar"].sum #=> "foobar"
421
+ ['foo', 'bar'].sum #=> 'foobar'
425
422
  ```
426
423
 
427
424
  ####Take Last:####
@@ -458,8 +455,8 @@ end
458
455
 
459
456
  ```ruby
460
457
  {}.assert_valid_keys(:foo) #=> {}
461
- { foo: "bar" }.assert_valid_keys(:foo) #=> { foo: "bar" }
462
- { foo: "bar", baz: "boz" }.assert_valid_keys(:foo, :boo) #=> raises "ArgumentError: Unknown key: :baz. Valid keys are: :foo, :boo"
458
+ { foo: 'bar' }.assert_valid_keys(:foo) #=> { foo: 'bar' }
459
+ { foo: 'bar', baz: 'boz' }.assert_valid_keys(:foo, :boo) #=> raises 'ArgumentError: Unknown key: :baz. Valid keys are: :foo, :boo'
463
460
  ```
464
461
 
465
462
  ####Compact:####
@@ -468,7 +465,7 @@ end
468
465
  ```ruby
469
466
  {}.compact #=> {}
470
467
  { foo: nil }.compact #=> {}
471
- { foo: "bar", baz: false, boo: nil }.compact #=> { foo: "bar", baz: false }
468
+ { foo: 'bar', baz: false, boo: nil }.compact #=> { foo: 'bar', baz: false }
472
469
  ```
473
470
 
474
471
  ####Deep Merge:####
@@ -511,7 +508,7 @@ h1.dig(:a, :b, :c) #=> :d
511
508
  `nillify` and `nillify!` transforms all blank values to nil.
512
509
 
513
510
  ```ruby
514
- { a: 1, b: "test", c: nil, d: false, e: "", f: " " }.nillify #=> {a: 1, b: 'test', c: nil, d: nil, e: nil, f: nil}
511
+ { a: 1, b: 'test', c: nil, d: false, e: '', f: ' ' }.nillify #=> {a: 1, b: 'test', c: nil, d: nil, e: nil, f: nil}
515
512
  ```
516
513
 
517
514
  ####Only:####
@@ -535,8 +532,8 @@ h1.dig(:a, :b, :c) #=> :d
535
532
  `reverse_merge` and `reverse_merge!` merges one hash into other hash.
536
533
 
537
534
  ```ruby
538
- {}.reverse_merge!(foo: "bar") #=> { foo: "bar" }
539
- { foo: "bar" }.reverse_merge!(baz: "boo", boo: "bam") #=> { foo: "bar", baz: "boo", boo: "bam" }
535
+ {}.reverse_merge!(foo: 'bar') #=> { foo: 'bar' }
536
+ { foo: 'bar' }.reverse_merge!(baz: 'boo', boo: 'bam') #=> { foo: 'bar', baz: 'boo', boo: 'bam' }
540
537
  ```
541
538
 
542
539
  ####Sample:####
@@ -598,7 +595,7 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
598
595
  `stringify_keys` and `stringify_keys!` converts the hash keys to strings.
599
596
 
600
597
  ```ruby
601
- { foo: "foo", "bar" => 'bar' }.stringify_keys #=> { "foo" => "foo", "baz" => "baz" }
598
+ { foo: 'foo', 'bar' => 'bar' }.stringify_keys #=> { 'foo' => 'foo', 'baz' => 'baz' }
602
599
  ```
603
600
 
604
601
  ####Strip:####
@@ -607,35 +604,35 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
607
604
  ```ruby
608
605
  {}.strip #=> {}
609
606
  { foo: nil, baz: false, boo: '', faz: ' ' }.strip #=> {}
610
- { foo: "bar", baz: false, boo: nil, boz: '', faz: ' ' }.strip #=> { foo: "bar" }
607
+ { foo: 'bar', baz: false, boo: nil, boz: '', faz: ' ' }.strip #=> { foo: 'bar' }
611
608
  ```
612
609
 
613
610
  ####Symbolize Keys:####
614
611
  `symbolize_keys` and `symbolize_keys!` converts the hash keys to symbols.
615
612
 
616
613
  ```ruby
617
- { foo: "foo", "bar" => "bar" }.symbolize_keys #=> { foo: "foo", baz: "baz" }
614
+ { foo: 'foo', 'bar' => 'bar' }.symbolize_keys #=> { foo: 'foo', baz: 'baz' }
618
615
  ```
619
616
 
620
617
  ####Symbolize and Underscore Keys:####
621
618
  `symbolize_and_underscore_keys` and `symbolize_and_underscore_keys!` symbolize and underscore hash keys.
622
619
 
623
620
  ```ruby
624
- { "firstName" => "foo", "last Name" => "test" }.symbolize_and_underscore_keys #=> { first_name: "foo", last_name: "test" }
621
+ { 'firstName' => 'foo', 'last Name' => 'test' }.symbolize_and_underscore_keys #=> { first_name: 'foo', last_name: 'test' }
625
622
  ```
626
623
 
627
624
  ####Transform Keys:####
628
625
  `transform_keys` and `transform_keys!` a new hash with all keys converted using the block operation.
629
626
 
630
627
  ```ruby
631
- { foo: "bar", baz: "boo" }.transform_keys { |k| k.to_s.upcase } #=> { "FOO" => "bar", "BAZ" => "boo" }
628
+ { foo: 'bar', baz: 'boo' }.transform_keys { |k| k.to_s.upcase } #=> { 'FOO' => 'bar', 'BAZ' => 'boo' }
632
629
  ```
633
630
 
634
631
  ####Transform Values:####
635
632
  `transform_values` and `transform_values!` a new hash with all values converted using the block operation.
636
633
 
637
634
  ```ruby
638
- { foo: "bar", baz: "boo" }.transform_values { |v| v.to_s.upcase } #=> {foo: "BAR", baz: "BOO" }
635
+ { foo: 'bar', baz: 'boo' }.transform_values { |v| v.to_s.upcase } #=> {foo: 'BAR', baz: 'BOO' }
639
636
  ```
640
637
 
641
638
  ## Integer
@@ -651,21 +648,21 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
651
648
  `of` is like #times but returns a collection of the yield results.
652
649
 
653
650
  ```ruby
654
- 3.of { |i| "#{i+1}" } #=> ["1", "2", "3"]
651
+ 3.of { |i| '#{i+1}' } #=> ['1', '2', '3']
655
652
  ```
656
653
 
657
654
  ####Roman:####
658
655
  `roman` converts this integer to a roman numeral.
659
656
 
660
657
  ```ruby
661
- 49.roman #=> "XLIX"
658
+ 49.roman #=> 'XLIX'
662
659
  ```
663
660
 
664
661
  ####Time:####
665
662
  `time` returns a Time object for the given Integer.
666
663
 
667
664
  ```ruby
668
- 3.time #=> "1969-12-31 19:00:03.000000000 -0500"
665
+ 3.time #=> '1969-12-31 19:00:03.000000000 -0500'
669
666
  ```
670
667
 
671
668
  ## Numeric
@@ -988,20 +985,20 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
988
985
  `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.
989
986
 
990
987
  ```ruby
991
- "1".ordinal #=> "th"
992
- "2".ordinal #=> "nd"
993
- "3".ordinal #=> "rd"
994
- "11".ordinal #=> "th"
988
+ '1'.ordinal #=> 'th'
989
+ '2'.ordinal #=> 'nd'
990
+ '3'.ordinal #=> 'rd'
991
+ '11'.ordinal #=> 'th'
995
992
  ```
996
993
 
997
994
  ####Ordinalize:####
998
995
  `ordinalize` transforms a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
999
996
 
1000
997
  ```ruby
1001
- "1".ordinalize #=> "1th"
1002
- "2".ordinalize #=> "2nd"
1003
- "3".ordinalize #=> "3rd"
1004
- "11".ordinalize #=> "4th"
998
+ '1'.ordinalize #=> '1th'
999
+ '2'.ordinalize #=> '2nd'
1000
+ '3'.ordinalize #=> '3rd'
1001
+ '11'.ordinalize #=> '4th'
1005
1002
  ```
1006
1003
 
1007
1004
  ####Ounces in Ounces:####
@@ -1023,9 +1020,9 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1023
1020
  `pad` returns a string reprensentation of the number padded with pad_num to a specified length.
1024
1021
 
1025
1022
  ```ruby
1026
- 3.pad #=> "003"
1027
- 3.pad(pad_number: 1) #=> "113"
1028
- 3.pad(precision: 4) #=> "0003"
1023
+ 3.pad #=> '003'
1024
+ 3.pad(pad_number: 1) #=> '113'
1025
+ 3.pad(precision: 4) #=> '0003'
1029
1026
  ```
1030
1027
 
1031
1028
  ####Pad Precision:####
@@ -1034,12 +1031,12 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1034
1031
  **Options**
1035
1032
  * pad_number: 0
1036
1033
  * precision: 2
1037
- * separator: "..."
1034
+ * separator: '...'
1038
1035
 
1039
1036
  ```ruby
1040
- 3.pad_precision #=> "3.00"
1041
- 3.5.pad_precision #=> "3.50"
1042
- 3.pad_precision(pad_number: 1) #=> "3.11"
1037
+ 3.pad_precision #=> '3.00'
1038
+ 3.5.pad_precision #=> '3.50'
1039
+ 3.pad_precision(pad_number: 1) #=> '3.11'
1043
1040
  ```
1044
1041
 
1045
1042
  ####Petabytes in Bytes:####
@@ -1121,14 +1118,14 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1121
1118
 
1122
1119
  **Options**
1123
1120
  * precision: 2
1124
- * unit: "$"
1121
+ * unit: '$'
1125
1122
 
1126
1123
  ```ruby
1127
- 3.to_currency #=> "$3.00"
1128
- 3.1.to_currency #=> "$3.10"
1129
- 3.11.to_currency #=> "$3.11"
1130
- 3.11111.to_currency #=> "$3.11"
1131
- 3.to_currency(unit: "@") #=> "@3.00"
1124
+ 3.to_currency #=> '$3.00'
1125
+ 3.1.to_currency #=> '$3.10'
1126
+ 3.11.to_currency #=> '$3.11'
1127
+ 3.11111.to_currency #=> '$3.11'
1128
+ 3.to_currency(unit: '@') #=> '@3.00'
1132
1129
  ```
1133
1130
 
1134
1131
  ####To Length:####
@@ -1164,14 +1161,14 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1164
1161
 
1165
1162
  **Options**
1166
1163
  * precision: 2
1167
- * unit: "%"
1164
+ * unit: '%'
1168
1165
 
1169
1166
  ```ruby
1170
- 3.to_percentage #=> "3.00%"
1171
- 3.1.to_percentage #=> "3.10%"
1172
- 3.11.to_percentage #=> "3.11%"
1173
- 3.11111.to_percentage #=> "3.11%"
1174
- 3.to_percentage(unit: "@") #=> "3.00@"
1167
+ 3.to_percentage #=> '3.00%'
1168
+ 3.1.to_percentage #=> '3.10%'
1169
+ 3.11.to_percentage #=> '3.11%'
1170
+ 3.11111.to_percentage #=> '3.11%'
1171
+ 3.to_percentage(unit: '@') #=> '3.00@'
1175
1172
  ```
1176
1173
 
1177
1174
  ####To Temperature:####
@@ -1235,15 +1232,15 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1235
1232
 
1236
1233
  ```ruby
1237
1234
  [].array? #=> true
1238
- "Awesome Sting".array? #=> false
1235
+ 'Awesome Sting'.array? #=> false
1239
1236
  ```
1240
1237
 
1241
1238
  ####Blank:####
1242
1239
  `blank?` determines if an object is empty or nil.
1243
1240
 
1244
1241
  ```ruby
1245
- "".blank? #=> true
1246
- "Awesome Sting".blank? #=> false
1242
+ ''.blank? #=> true
1243
+ 'Awesome Sting'.blank? #=> false
1247
1244
  ```
1248
1245
 
1249
1246
  ####Boolean:####
@@ -1252,7 +1249,7 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1252
1249
  ```ruby
1253
1250
  1.boolean? #=> true
1254
1251
  false.boolean? #=> true
1255
- "foo".boolean? #=> false
1252
+ 'foo'.boolean? #=> false
1256
1253
  ```
1257
1254
 
1258
1255
  ####False:####
@@ -1302,24 +1299,24 @@ true.falsey? #=> false
1302
1299
  ```ruby
1303
1300
  1.numeric? #=> true
1304
1301
  1.0.numeric? #=> true
1305
- "1.0".numeric? #=> false
1302
+ '1.0'.numeric? #=> false
1306
1303
  ```
1307
1304
 
1308
1305
  ####Numeral:####
1309
1306
  `numeral?` determines if an object's string value is numeral.
1310
1307
 
1311
1308
  ```ruby
1312
- "-32.50".numeral? #=> true
1313
- "$2.55".numeral? #=> false
1309
+ '-32.50'.numeral? #=> true
1310
+ '$2.55'.numeral? #=> false
1314
1311
  ```
1315
1312
 
1316
1313
  ####Palindrome:####
1317
1314
  `palindrome?` determines if an object is equal when reversed.
1318
1315
 
1319
1316
  ```ruby
1320
- "racecar".palindrome? #=> true
1317
+ 'racecar'.palindrome? #=> true
1321
1318
  12321.palindrome? #=> true
1322
- "example".palindrome? #=> false
1319
+ 'example'.palindrome? #=> false
1323
1320
  12345.palindrome? #=> false
1324
1321
  ```
1325
1322
 
@@ -1327,8 +1324,8 @@ true.falsey? #=> false
1327
1324
  `present?` determines if an object is not empty or nil.
1328
1325
 
1329
1326
  ```ruby
1330
- "Awesome Sting".present? #=> true
1331
- "".present? #=> false
1327
+ 'Awesome Sting'.present? #=> true
1328
+ ''.present? #=> false
1332
1329
  ```
1333
1330
 
1334
1331
  ####Range:####
@@ -1343,8 +1340,8 @@ true.falsey? #=> false
1343
1340
  `salvage` returns a placeholder if object is blank?.
1344
1341
 
1345
1342
  ```ruby
1346
- " ".salvage #=> "---"
1347
- nil.salvage("bar") #=> "bar"
1343
+ ' '.salvage #=> '---'
1344
+ nil.salvage('bar') #=> 'bar'
1348
1345
  123.salvage #=> 123
1349
1346
  ```
1350
1347
 
@@ -1352,7 +1349,7 @@ nil.salvage("bar") #=> "bar"
1352
1349
  `string?` determines if an object is a string.
1353
1350
 
1354
1351
  ```ruby
1355
- "foo".string? #=> true
1352
+ 'foo'.string? #=> true
1356
1353
  1.string? #=> false
1357
1354
  ```
1358
1355
 
@@ -1361,7 +1358,7 @@ nil.salvage("bar") #=> "bar"
1361
1358
 
1362
1359
  ```ruby
1363
1360
  Time.now.time? #=> true
1364
- "foo".time? #=> false
1361
+ 'foo'.time? #=> false
1365
1362
  ```
1366
1363
 
1367
1364
  ####True:####
@@ -1385,8 +1382,8 @@ false.truthy? #=> false
1385
1382
  `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.
1386
1383
 
1387
1384
  ```ruby
1388
- "example".try(:upcase) #=> "EXAMPLE"
1389
- "example".try(:fake_method) #=> nil
1385
+ 'example'.try(:upcase) #=> 'EXAMPLE'
1386
+ 'example'.try(:fake_method) #=> nil
1390
1387
  ```
1391
1388
 
1392
1389
  ## Range
@@ -1445,89 +1442,89 @@ false.truthy? #=> false
1445
1442
  `any?` determines if a string includes a set of string(s).
1446
1443
 
1447
1444
  ```ruby
1448
- "example string".any?("foo") #=> false
1449
- "example string".any?("foo", "string") #=> true
1445
+ 'example string'.any?('foo') #=> false
1446
+ 'example string'.any?('foo', 'string') #=> true
1450
1447
  ```
1451
1448
 
1452
1449
  ####At:####
1453
1450
  `at` returns the characters at index position, matching string, or regex.
1454
1451
 
1455
1452
  ```ruby
1456
- "example_string".at(0) #=> "e"
1457
- "example_string".at(-2) #=> "n"
1458
- "example_string".at(1..3) #=> "xam"
1459
- "example_string".at("e_s") #=> "e_s"
1460
- "example_string".at(/ple/) #=> "ple"
1461
- "example_string".at(99) #=> nil
1453
+ 'example_string'.at(0) #=> 'e'
1454
+ 'example_string'.at(-2) #=> 'n'
1455
+ 'example_string'.at(1..3) #=> 'xam'
1456
+ 'example_string'.at('e_s') #=> 'e_s'
1457
+ 'example_string'.at(/ple/) #=> 'ple'
1458
+ 'example_string'.at(99) #=> nil
1462
1459
  ```
1463
1460
 
1464
1461
  ####Camelize:####
1465
1462
  `camelize` and `camelize!` transfroms a string to camelcase.
1466
1463
 
1467
1464
  ```ruby
1468
- "example_string".camelize #=> "ExampleString"
1469
- "example_String".camecase #=> "ExampleString"
1470
- "example_string".camelize(:lower) #=> "exampleString"
1471
- "example_String".camecase(:lower) #=> "exampleString"
1465
+ 'example_string'.camelize #=> 'ExampleString'
1466
+ 'example_String'.camecase #=> 'ExampleString'
1467
+ 'example_string'.camelize(:lower) #=> 'exampleString'
1468
+ 'example_String'.camecase(:lower) #=> 'exampleString'
1472
1469
  ```
1473
1470
 
1474
1471
  ####Classify:####
1475
1472
  `classify` and `classify!` creates a class name from a string like Rails does for table names to models.
1476
1473
 
1477
1474
  ```ruby
1478
- "example_string".classify #=> "ExampleString"
1479
- "example_string/test".classify #=> "ExampleString::Test"
1480
- "example_string.test".classify #=> "Test"
1475
+ 'example_string'.classify #=> 'ExampleString'
1476
+ 'example_string/test'.classify #=> 'ExampleString::Test'
1477
+ 'example_string.test'.classify #=> 'Test'
1481
1478
  ```
1482
1479
 
1483
1480
  ####Constantize:####
1484
1481
  `constantize` converts a string in an object.
1485
1482
 
1486
1483
  ```ruby
1487
- "Example::String".constantize #=> Class Object
1484
+ 'Example::String'.constantize #=> Class Object
1488
1485
  ```
1489
1486
 
1490
1487
  ####Dasherize:####
1491
1488
  `dasherize` and `dasherize!` replaces underscores with dashes in the string.
1492
1489
 
1493
1490
  ```ruby
1494
- "example_string".dasherize #=> "example-string"
1491
+ 'example_string'.dasherize #=> 'example-string'
1495
1492
  ```
1496
1493
 
1497
1494
  ####Deconstantize:####
1498
1495
  `deconstantize` and `deconstantize!` removes the rightmost segment from the constant expression in the string.
1499
1496
 
1500
1497
  ```ruby
1501
- "Example::String".deconstantize # => "Example"
1502
- "::Example::String".deconstantize # => "::Example"
1503
- "String".deconstantize # => ""
1504
- "::String".deconstantize # => ""
1505
- "".deconstantize # => ""
1498
+ 'Example::String'.deconstantize # => 'Example'
1499
+ '::Example::String'.deconstantize # => '::Example'
1500
+ 'String'.deconstantize # => ''
1501
+ '::String'.deconstantize # => ''
1502
+ ''.deconstantize # => ''
1506
1503
  ```
1507
1504
 
1508
1505
  ####Demodulize:####
1509
1506
  `demodulize` and `demodulize!` removes the module part from the expression in the string.
1510
1507
 
1511
1508
  ```ruby
1512
- "Example::String".demodulize #=> "String"
1513
- "String".demodulize #=> "String"
1509
+ 'Example::String'.demodulize #=> 'String'
1510
+ 'String'.demodulize #=> 'String'
1514
1511
  ```
1515
1512
 
1516
1513
  ####Domain:####
1517
1514
  `domain` extracts the domain name from a URL.
1518
1515
 
1519
1516
  ```ruby
1520
- "http://www.example.com/fake-page".domain #=> "www.example.com"
1521
- "example string".domain #=> "example string"
1517
+ 'http://www.example.com/fake-page'.domain #=> 'www.example.com'
1518
+ 'example string'.domain #=> 'example string'
1522
1519
  ```
1523
1520
 
1524
1521
  ####Downcase:####
1525
1522
  `downcase?` returns true if all characters are lowercase.
1526
1523
 
1527
1524
  ```ruby
1528
- "example".downcase? #=> true
1529
- "Example".downcase? #=> false
1530
- "EXAMPLE".downcase? #=> false
1525
+ 'example'.downcase? #=> true
1526
+ 'Example'.downcase? #=> false
1527
+ 'EXAMPLE'.downcase? #=> false
1531
1528
  ```
1532
1529
 
1533
1530
  ####Ellipsize:####
@@ -1535,47 +1532,47 @@ false.truthy? #=> false
1535
1532
 
1536
1533
  **Options**
1537
1534
  * offset: 4
1538
- * separator: "..."
1535
+ * separator: '...'
1539
1536
 
1540
1537
  ```ruby
1541
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(30) #=> "0123...WXYZ"
1542
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(50) #=> "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
1543
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(30, offset: 2) #=> "01...YZ"
1544
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ellipsize(30, separator: "+++") #=> "0123+++WXYZ"
1538
+ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.ellipsize(30) #=> '0123...WXYZ'
1539
+ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.ellipsize(50) #=> '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
1540
+ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.ellipsize(30, offset: 2) #=> '01...YZ'
1541
+ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.ellipsize(30, separator: '+++') #=> '0123+++WXYZ'
1545
1542
  ```
1546
1543
 
1547
1544
  ####Exclude:####
1548
1545
  `exclude?` returns true if the string does not include the other string.
1549
1546
 
1550
1547
  ```ruby
1551
- "example_string".exclude?("exa") #=> false
1552
- "example_string".exclude?("xxx") #=> true
1548
+ 'example_string'.exclude?('exa') #=> false
1549
+ 'example_string'.exclude?('xxx') #=> true
1553
1550
  ```
1554
1551
 
1555
1552
  ####First:####
1556
1553
  `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.
1557
1554
 
1558
1555
  ```ruby
1559
- "example".first #=> "e"
1560
- "example".first(0) #=> ""
1561
- "example".first(3) #=> "exa"
1556
+ 'example'.first #=> 'e'
1557
+ 'example'.first(0) #=> ''
1558
+ 'example'.first(3) #=> 'exa'
1562
1559
  ```
1563
1560
 
1564
1561
  ####Format:####
1565
1562
  `format` returns an interpolated string that allows for options.
1566
1563
 
1567
1564
  ```ruby
1568
- "example %s".format("string") #=> "example string"
1569
- "test %{one} %{two}".format(one: "example", two: "string") #=> "test example string"
1570
- "%d + %d".format([1, 2]) #=> "1 + 2"
1565
+ 'example %s'.format('string') #=> 'example string'
1566
+ 'test %{one} %{two}'.format(one: 'example', two: 'string') #=> 'test example string'
1567
+ '%d + %d'.format([1, 2]) #=> '1 + 2'
1571
1568
  ```
1572
1569
 
1573
1570
  ####From:####
1574
1571
  `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.
1575
1572
 
1576
1573
  ```ruby
1577
- "example".from(0) #=> "example"
1578
- "example".from(3) #=> "mple"
1574
+ 'example'.from(0) #=> 'example'
1575
+ 'example'.from(3) #=> 'mple'
1579
1576
  ```
1580
1577
 
1581
1578
  ####Humanize:####
@@ -1585,279 +1582,267 @@ false.truthy? #=> false
1585
1582
  * capitalize: true
1586
1583
 
1587
1584
  ```ruby
1588
- "ExampleString".humanize #=> "Example string"
1589
- "_example_string_id".humanize #=> "Example string"
1590
- "example_string".humanize(capitalize: false) #=> "example string"
1585
+ 'ExampleString'.humanize #=> 'Example string'
1586
+ '_example_string_id'.humanize #=> 'Example string'
1587
+ 'example_string'.humanize(capitalize: false) #=> 'example string'
1591
1588
  ```
1592
1589
 
1593
1590
  ####Indent:####
1594
1591
  `indent` and `indent!` indents the lines in the receiver.
1595
1592
 
1596
1593
  ```ruby
1597
- "example".indent(2) #=> " example"
1598
- "example".indent(2, "\t") #=> "\t\texample"
1594
+ 'example'.indent(2) #=> ' example'
1595
+ 'example'.indent(2, '\t') #=> '\t\texample'
1599
1596
  ```
1600
1597
 
1601
1598
  ####Index all:####
1602
1599
  `index_all` returns the index values of matching patterns.
1603
1600
 
1604
1601
  ```ruby
1605
- "012324507654301243".index_all(0) #=> [0,7,13]
1606
- "the apple is the best fruit in the world".index_all("the") #=> [0,13,31]
1607
- "asdfasdfasdf".index_all(/sd/) #=> [1,5,9]
1602
+ '012324507654301243'.index_all(0) #=> [0,7,13]
1603
+ 'the apple is the best fruit in the world'.index_all('the') #=> [0,13,31]
1604
+ 'asdfasdfasdf'.index_all(/sd/) #=> [1,5,9]
1608
1605
  ```
1609
1606
 
1610
1607
  ####Labelize:####
1611
1608
  `labelize` and `labelize!` transforms a string to a human readable string.
1612
1609
 
1613
1610
  ```ruby
1614
- "example string".labelize #=> "Example string"
1615
- "_example_string_id".labelize #=> "Example string ID"
1616
- "ExampleString".labelize #=> "Example string"
1611
+ 'example string'.labelize #=> 'Example string'
1612
+ '_example_string_id'.labelize #=> 'Example string ID'
1613
+ 'ExampleString'.labelize #=> 'Example string'
1617
1614
  ```
1618
1615
 
1619
1616
  ####Last:####
1620
1617
  `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.
1621
1618
 
1622
1619
  ```ruby
1623
- "example".last #=> "e"
1624
- "example".last(0) #=> ""
1625
- "example".first(3) #=> "ple"
1620
+ 'example'.last #=> 'e'
1621
+ 'example'.last(0) #=> ''
1622
+ 'example'.first(3) #=> 'ple'
1626
1623
  ```
1627
1624
 
1628
1625
  ####Mixcase:####
1629
1626
  `mixcase?` returns true if characters are mixedcase.
1630
1627
 
1631
1628
  ```ruby
1632
- "Example".mixedcase? #=> true
1633
- "EXAMPLE".mixedcase? #=> false
1634
- "example".mixedcase? #=> false
1629
+ 'Example'.mixedcase? #=> true
1630
+ 'EXAMPLE'.mixedcase? #=> false
1631
+ 'example'.mixedcase? #=> false
1635
1632
  ```
1636
1633
 
1637
1634
  ####Ordinal:####
1638
1635
  `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.
1639
1636
 
1640
1637
  ```ruby
1641
- "1".ordinal #=> "th"
1642
- "2".ordinal #=> "nd"
1643
- "3".ordinal #=> "rd"
1644
- "11".ordinal #=> "th"
1638
+ '1'.ordinal #=> 'th'
1639
+ '2'.ordinal #=> 'nd'
1640
+ '3'.ordinal #=> 'rd'
1641
+ '11'.ordinal #=> 'th'
1645
1642
  ```
1646
1643
 
1647
1644
  ####Ordinalize:####
1648
1645
  `ordinalize` transforms a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
1649
1646
 
1650
1647
  ```ruby
1651
- "1".ordinalize #=> "1th"
1652
- "2".ordinalize #=> "2nd"
1653
- "3".ordinalize #=> "3rd"
1654
- "11".ordinalize #=> "4th"
1648
+ '1'.ordinalize #=> '1th'
1649
+ '2'.ordinalize #=> '2nd'
1650
+ '3'.ordinalize #=> '3rd'
1651
+ '11'.ordinalize #=> '4th'
1655
1652
  ```
1656
1653
 
1657
1654
  ####Parameterize:####
1658
1655
  `parameterize` and `parameterize!` makes string suitable for a dashed url parameter string.
1659
1656
 
1660
1657
  ```ruby
1661
- "example_string".parameterize #=> "example-string"
1662
- "example_string".parameterize("?") #=> "example?string"
1658
+ 'example_string'.parameterize #=> 'example-string'
1659
+ 'example_string'.parameterize('?') #=> 'example?string'
1663
1660
  ```
1664
1661
 
1665
1662
  ####Pollute:####
1666
1663
  `pollute` and `pollute!` pollutes the space between every letter in a string, so it will be exempt from any impending string searches.
1667
1664
 
1668
1665
  ```ruby
1669
- "test".pollute #=> "t^--^--^e^--^--^s^--^--^t^--^--^"
1670
- "test".pollute("-") #=> "t-e-s-t-"
1666
+ 'test'.pollute #=> 't^--^--^e^--^--^s^--^--^t^--^--^'
1667
+ 'test'.pollute('-') #=> 't-e-s-t-'
1671
1668
  ```
1672
1669
 
1673
1670
  ####Pop:####
1674
1671
  `pop` returns the last character of a string.
1675
1672
 
1676
1673
  ```ruby
1677
- "test".pop #=> "t"
1674
+ 'test'.pop #=> 't'
1678
1675
  ```
1679
1676
 
1680
1677
  ####Push:####
1681
1678
  `push` concats string to self.
1682
1679
 
1683
1680
  ```ruby
1684
- "test".push("er") #=> "tester"
1681
+ 'test'.push('er') #=> 'tester'
1685
1682
  ```
1686
1683
 
1687
1684
  ####Remove:####
1688
1685
  `remove` and `remove!` removes every instance of a string.
1689
1686
 
1690
1687
  ```ruby
1691
- "this thing that thing".remove("thing") #=> "this that "
1692
- "this thing that thing".remove(1..3) #=> "t thing that thing"
1693
- "this thing that them".remove("thing", "them") #=> "this that "
1694
- "this thing that them".remove("thing", 1..3) #=> "t that them"
1688
+ 'this thing that thing'.remove('thing') #=> 'this that '
1689
+ 'this thing that thing'.remove(1..3) #=> 't thing that thing'
1690
+ 'this thing that them'.remove('thing', 'them') #=> 'this that '
1691
+ 'this thing that them'.remove('thing', 1..3) #=> 't that them'
1695
1692
  ```
1696
1693
 
1697
1694
  ####Remove Tags:####
1698
1695
  `remove_tags` and `remove_tags!` removes HTML tags from a string.
1699
1696
 
1700
1697
  ```ruby
1701
- "example".strip_tags #=> "example"
1702
- "<a href='http://example.com'>click</a>".strip_tags #=> "click"
1703
- "this is <b>bold</b> and <em>emphatic</em>".strip_tags #=> "this is bold and emphatic"
1698
+ 'example'.strip_tags #=> 'example'
1699
+ '<a href='http://example.com'>click</a>'.strip_tags #=> 'click'
1700
+ 'this is <b>bold</b> and <em>emphatic</em>'.strip_tags #=> 'this is bold and emphatic'
1704
1701
  ```
1705
1702
 
1706
1703
  ####Sample:####
1707
1704
  `sample` and `sample!` deletes a random value and returns that value.
1708
1705
 
1709
1706
  ```ruby
1710
- "this thing that".sample #=> "thing"
1711
- "this thing that".sample(" thing ") #=> "that"
1707
+ 'this thing that'.sample #=> 'thing'
1708
+ 'this thing that'.sample(' thing ') #=> 'that'
1712
1709
  ```
1713
1710
 
1714
1711
  ####Shift:####
1715
1712
  `shift` and `shift!` removes the first instance of a string.
1716
1713
 
1717
1714
  ```ruby
1718
- "this thing that thing".shift #=> "t"
1719
- "this thing that thing".shift("thing") #=> "this that thing"
1720
- "this thing that thing".shift("this", "that") #=> " thing thing"
1715
+ 'this thing that thing'.shift #=> 't'
1716
+ 'this thing that thing'.shift('thing') #=> 'this that thing'
1717
+ 'this thing that thing'.shift('this', 'that') #=> ' thing thing'
1721
1718
  ```
1722
1719
 
1723
1720
  ####Shuffle:####
1724
1721
  `shuffle` and `shuffle!` randomizes the characters in a string.
1725
1722
 
1726
1723
  ```ruby
1727
- "ruby rules".sample #=> "e lybrsuur"
1728
- "ruby rules".sample! #=> "rblse syru"
1724
+ 'ruby rules'.sample #=> 'e lybrsuur'
1725
+ 'ruby rules'.sample! #=> 'rblse syru'
1729
1726
  ```
1730
1727
 
1731
1728
  ####Sift:####
1732
1729
  `sift` and `sift!` returns a string matching any character in a pattern.
1733
1730
 
1734
1731
  ```ruby
1735
- "qa2ws3ed4rf5tg6yh7uj8ik9ol".sift("0123456789") #=> "23456789"
1736
- "qa2ws3ed4rf5tg6yh7uj8ik9ol".sift(0..9) #=> "23456789"
1737
- "qa2ws3ed4rf5tg6yh7uj8ik9ol".sift([0,1,2,3,4,5,6,7,8,9]) #=> "23456789"
1732
+ 'qa2ws3ed4rf5tg6yh7uj8ik9ol'.sift('0123456789') #=> '23456789'
1733
+ 'qa2ws3ed4rf5tg6yh7uj8ik9ol'.sift(0..9) #=> '23456789'
1734
+ 'qa2ws3ed4rf5tg6yh7uj8ik9ol'.sift([0,1,2,3,4,5,6,7,8,9]) #=> '23456789'
1738
1735
  ```
1739
1736
 
1740
1737
  ####Slugify:####
1741
1738
  `slugify` and `slugify!` generates a permalink-style string, with odd characters removed.
1742
1739
 
1743
1740
  ```ruby
1744
- "example".slugify #=> "example"
1745
- "example string".slugify #=> "example-string"
1746
- "Example string @@@ test!".slugify #=> "example-string-test"
1741
+ 'example'.slugify #=> 'example'
1742
+ 'example string'.slugify #=> 'example-string'
1743
+ 'Example string @@@ test!'.slugify #=> 'example-string-test'
1747
1744
  ```
1748
1745
 
1749
1746
  ####Sort:####
1750
1747
  `sort` and `sort!` sorts a string.
1751
1748
 
1752
1749
  ```ruby
1753
- "adbec".sort #=> "abcde"
1750
+ 'adbec'.sort #=> 'abcde'
1754
1751
  ```
1755
1752
 
1756
1753
  ####Squish:####
1757
1754
  `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.
1758
1755
 
1759
1756
  ```ruby
1760
- "example string".squish #=> "example string"
1761
- "example \n \t string".squish #=> "example string"
1762
- " example string ".squish #=> "example string"
1757
+ 'example string'.squish #=> 'example string'
1758
+ 'example \n \t string'.squish #=> 'example string'
1759
+ ' example string '.squish #=> 'example string'
1763
1760
  ```
1764
1761
 
1765
1762
  ####Titleize:####
1766
1763
  `titleize` and `titleize!` capitalizes each word in a string.
1767
1764
 
1768
1765
  ```ruby
1769
- "example string".titleize #=> "Example String"
1770
- "_example_string_id".titleize #=> "Example String"
1771
- "ExampleString".titleize #=> "Example String"
1766
+ 'example string'.titleize #=> 'Example String'
1767
+ '_example_string_id'.titleize #=> 'Example String'
1768
+ 'ExampleString'.titleize #=> 'Example String'
1772
1769
  ```
1773
1770
 
1774
1771
  ####To:####
1775
1772
  `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.
1776
1773
 
1777
1774
  ```ruby
1778
- "example".to(0) #=> "example"
1779
- "example".to(3) #=> "exam"
1780
- "example".to(-2) #=> "exampl"
1775
+ 'example'.to(0) #=> 'example'
1776
+ 'example'.to(3) #=> 'exam'
1777
+ 'example'.to(-2) #=> 'exampl'
1781
1778
  ```
1782
1779
 
1783
1780
  ####Truncate:####
1784
1781
  `truncate` a given text after a given length if text is longer than length.
1785
1782
 
1786
1783
  **Options**
1787
- * omission: "..."
1788
- * separator: " "
1784
+ * omission: '...'
1785
+ * separator: ' '
1789
1786
 
1790
1787
  ```ruby
1791
- "example string".truncate(3) #=> "..."
1792
- "example string".truncate(6) #=> "exa..."
1793
- "example string".truncate(12, separator: " ") #=> "example..."
1794
- "example string".truncate(13, omission: "... (more)") #=> "exa... (more)"
1795
- "example string".truncate(15) #=> "example string"
1788
+ 'example string'.truncate(3) #=> '...'
1789
+ 'example string'.truncate(6) #=> 'exa...'
1790
+ 'example string'.truncate(12, separator: ' ') #=> 'example...'
1791
+ 'example string'.truncate(13, omission: '... (more)') #=> 'exa... (more)'
1792
+ 'example string'.truncate(15) #=> 'example string'
1796
1793
  ```
1797
1794
 
1798
1795
  ####Truncate Words:####
1799
1796
  `truncate_words` truncates a given text after a given number of words.
1800
1797
 
1801
1798
  **Options**
1802
- * omission: "..."
1803
- * separator: " "
1799
+ * omission: '...'
1800
+ * separator: ' '
1804
1801
 
1805
1802
  ```ruby
1806
- "example string test".truncate_words(1) #=> "example..."
1807
- '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..."
1808
- 'And they found that many people were sleeping better.'.truncate_words(5, omission: '... (continued)') #=> "And they found that many... (continued)"
1803
+ 'example string test'.truncate_words(1) #=> 'example...'
1804
+ '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...'
1805
+ 'And they found that many people were sleeping better.'.truncate_words(5, omission: '... (continued)') #=> 'And they found that many... (continued)'
1809
1806
  ```
1810
1807
 
1811
1808
  ####Underscore:####
1812
1809
  `underscore` and `underscore!` transforms a string to snakecase.
1813
1810
 
1814
1811
  ```ruby
1815
- "ExampleString".underscore #=> "example_string"
1816
- "exampleString".underscore #=> "example_string"
1817
- "ExampleString::Test".underscore #=> "example_string/test"
1812
+ 'ExampleString'.underscore #=> 'example_string'
1813
+ 'exampleString'.underscore #=> 'example_string'
1814
+ 'ExampleString::Test'.underscore #=> 'example_string/test'
1818
1815
  ```
1819
1816
 
1820
1817
  ####Unpollute:####
1821
1818
  `unpollute` and `unpollute!` removes the default or custom pollution character. Can also be used to remove an unwanted character.
1822
1819
 
1823
1820
  ```ruby
1824
- "t^--^--^e^--^--^s^--^--^t^--^--^".unpollute #=> "test"
1825
- "t-e-s-t-".unpollute #=> "test"
1821
+ 't^--^--^e^--^--^s^--^--^t^--^--^'.unpollute #=> 'test'
1822
+ 't-e-s-t-'.unpollute #=> 'test'
1826
1823
  ```
1827
1824
 
1828
1825
  ####Upcase:####
1829
1826
  `upcase?` returns true if all characters are uppercase.
1830
1827
 
1831
1828
  ```ruby
1832
- "EXAMPLE".upcase? #=> true
1833
- "example".upcase? #=> false
1834
- "Example".upcase? #=> false
1829
+ 'EXAMPLE'.upcase? #=> true
1830
+ 'example'.upcase? #=> false
1831
+ 'Example'.upcase? #=> false
1835
1832
  ```
1836
1833
 
1837
1834
  ####Unshift:####
1838
1835
  `unshift` and `unshift!` prepends string(s) to self.
1839
1836
 
1840
1837
  ```ruby
1841
- "this thing that thing".unshift("thing ") #=> "thing this thing that thing"
1842
- "this thing that thing".unshift("this ", "that ") #=> "this that this thing that thing"
1838
+ 'this thing that thing'.unshift('thing ') #=> 'thing this thing that thing'
1839
+ 'this thing that thing'.unshift('this ', 'that ') #=> 'this that this thing that thing'
1843
1840
  ```
1844
1841
 
1845
1842
  ## Time
1846
1843
 
1847
1844
  *Note:* also works with Date class.
1848
1845
 
1849
- ####Count:####
1850
- `count_[DURATION]_[TERM]` converts a Date or Time object to format it using a human readable string.
1851
-
1852
- **Durations/Terms**
1853
- * seconds, minutes, hours, days, weeks, years, decades, centuries, millenniums
1854
- * since, until
1855
-
1856
- ```ruby
1857
- Date.today.count_hours_since(Date.yesterday) #=> "24.0"
1858
- Time.now.count_minutes_until(20.minutes.from_now) #=> "20.0"
1859
- ```
1860
-
1861
1846
  ####Format:####
1862
1847
  `format` converts a Date or Time object to format it using a human readable string.
1863
1848
 
@@ -1866,8 +1851,8 @@ Time.now.count_minutes_until(20.minutes.from_now) #=> "20.0"
1866
1851
  * Characters can only be used to generate a format part
1867
1852
 
1868
1853
  ```ruby
1869
- Date.today.format("year") #=> "2014"
1870
- Time.now.format("month_name day, year hour:minute ampm") #=> "January 09, 2014 02:31 pm"
1854
+ Date.today.format('year') #=> '2014'
1855
+ Time.now.format('month_name day, year hour:minute ampm') #=> 'January 09, 2014 02:31 pm'
1871
1856
  ```
1872
1857
 
1873
1858
  | Name | Key | Equivalent `strftime` | Result |
@@ -1907,8 +1892,8 @@ Time.now.format("month_name day, year hour:minute ampm") #=> "January 09, 2014 0
1907
1892
  **For a full list check out the time extention file.**
1908
1893
 
1909
1894
  ```ruby
1910
- Time.now.to_format(:year) #=> "2014"
1911
- Time.now.stamp(:datetime) #=> "January 09, 2014 02:31 pm"
1895
+ Time.now.to_format(:year) #=> '2014'
1896
+ Time.now.stamp(:datetime) #=> 'January 09, 2014 02:31 pm'
1912
1897
  ```
1913
1898
 
1914
1899
  | Name | Key | Equivalent `strftime` | Result |