lite-ruby 1.0.27 → 1.1.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
  SHA256:
3
- metadata.gz: bfc486f31bfbbad993a40604cf0334d8f59b5956cf6020f52c5c7140d4e8f114
4
- data.tar.gz: 3b4b5b748b28261e8e602c78cb11e91b546b0c03905c07ac6045a4903f295992
3
+ metadata.gz: 706904db37834627c1356104bc628510a7aa144278306c0cdb8a95594204444a
4
+ data.tar.gz: 5aac1bf1134a94b67dca8d577396f5da9f4f1f35c294040412c1ac3c49f2a3ee
5
5
  SHA512:
6
- metadata.gz: c9262f97caffc9c198d750cafa76354501df7ef960e6054c8e236a769c9ac26e07a48ee22f68f4e834b9400533f28d35c865f038aa7af0404c8e671735a2baf6
7
- data.tar.gz: fb8058ad49733add958510930473bd26d597432e4aae95c15a77c9aff63847a462cb0fd7d1cfda3a96afb98465c8bc9107c89ba73149482565f836d06e0529ae
6
+ metadata.gz: 1241428618317da93171051ef4ec7ff613f8db822d1514c71653f5d591067eb787fa6bd88b5a9462020fa6a0116edf3e064462996ca8f6734da52c8031102317
7
+ data.tar.gz: 2fe2fca36eec6f76495fcef11e57f1dc75153a36c642225e613a43bb97defc28d803aeb78063b4459e9ebd426277f803baf8e3f6c3eecdd32d47fba94ec50b4b
@@ -2,9 +2,12 @@ require:
2
2
  - rubocop-performance
3
3
  - rubocop-rspec
4
4
  AllCops:
5
- TargetRubyVersion: 2.6
5
+ TargetRubyVersion: 2.7
6
+ NewCops: enable
6
7
  DisplayCopNames: true
7
8
  DisplayStyleGuide: true
9
+ Gemspec/RequiredRubyVersion:
10
+ Enabled: false
8
11
  Layout/EmptyLinesAroundBlockBody:
9
12
  Exclude:
10
13
  - 'spec/**/**/*'
@@ -41,6 +44,8 @@ RSpec/ExampleLength:
41
44
  Enabled: false
42
45
  RSpec/MultipleExpectations:
43
46
  Enabled: false
47
+ Style/ArgumentsForwarding:
48
+ Enabled: false
44
49
  Style/Documentation:
45
50
  Enabled: false
46
51
  Style/ExpandPathArguments:
@@ -59,5 +64,7 @@ Style/RedundantRegexpCharacterClass:
59
64
  Enabled: true
60
65
  Style/RedundantRegexpEscape:
61
66
  Enabled: true
67
+ Style/RedundantFetchBlock:
68
+ Enabled: true
62
69
  Style/SlicingWithRange:
63
70
  Enabled: false
@@ -4,6 +4,7 @@ cache: bundler
4
4
  rvm:
5
5
  - 2.5
6
6
  - 2.6
7
+ - 2.7
7
8
  - ruby-head
8
9
  matrix:
9
10
  fast_finish: true
@@ -6,10 +6,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.1.0] - 2020-11-06
10
+ ### Added
11
+ - Added Array => `extract!` to `except!` alias
12
+ - Added Array => `only(!)` to `select_values(!)` alias
13
+ - Added Hash => `collect_keys` to `map_keys` alias
14
+ - Added Hash => `collect_values` to `map_values` alias
15
+ ### Changed
16
+ - Rename Date, Time => `[method_name]_12` to `[method_name]12` ex: `hour_12` is now `hour12`
17
+ - Rename String => `transliterize` to `transliterate`
18
+ - Skip loading clashing methods with active support
19
+ ### Remove
20
+ - Numeric `clamp`
21
+
22
+ ## [1.0.31] - 2020-09-21
23
+ ### Changed
24
+ - Changed `block_given?` => `defined?(yield)` for more performance
25
+
26
+ ## [1.0.30] - 2020-07-03
27
+ ### Added
28
+ - Added more Ruby 2.7 support
29
+
30
+ ## [1.0.29] - 2020-07-03
31
+ ### Added
32
+ - Added Ruby 2.7 support
33
+
34
+ ## [1.0.28] - 2020-06-25
35
+ # Changed
36
+ - Rename String => `encode_only` to `safe_encode`
37
+ # Removed
38
+ - Remove String => `ascii_only`
39
+
9
40
  ## [1.0.26] - 2020-06-12
10
41
  ### Added
11
- - Added array => `all_after`
12
- - Added array => `all_before`
42
+ - Added Array => `all_after`
43
+ - Added Array => `all_before`
13
44
 
14
45
  ## [1.0.26] - 2020-05-22
15
46
  ### Changed
@@ -1,25 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (1.0.27)
4
+ lite-ruby (1.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- actionpack (6.0.3.1)
10
- actionview (= 6.0.3.1)
11
- activesupport (= 6.0.3.1)
9
+ actionpack (6.0.3.4)
10
+ actionview (= 6.0.3.4)
11
+ activesupport (= 6.0.3.4)
12
12
  rack (~> 2.0, >= 2.0.8)
13
13
  rack-test (>= 0.6.3)
14
14
  rails-dom-testing (~> 2.0)
15
15
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
16
- actionview (6.0.3.1)
17
- activesupport (= 6.0.3.1)
16
+ actionview (6.0.3.4)
17
+ activesupport (= 6.0.3.4)
18
18
  builder (~> 3.1)
19
19
  erubi (~> 1.4)
20
20
  rails-dom-testing (~> 2.0)
21
21
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
22
- activesupport (6.0.3.1)
22
+ activesupport (6.0.3.4)
23
23
  concurrent-ruby (~> 1.0, >= 1.0.2)
24
24
  i18n (>= 0.7, < 2)
25
25
  minitest (~> 5.1)
@@ -28,9 +28,9 @@ GEM
28
28
  ast (2.4.1)
29
29
  builder (3.2.4)
30
30
  colorize (0.8.1)
31
- concurrent-ruby (1.1.6)
31
+ concurrent-ruby (1.1.7)
32
32
  crass (1.0.6)
33
- diff-lcs (1.3)
33
+ diff-lcs (1.4.4)
34
34
  erubi (1.9.0)
35
35
  fasterer (0.8.3)
36
36
  colorize (~> 0.7)
@@ -38,20 +38,20 @@ GEM
38
38
  generator_spec (0.9.4)
39
39
  activesupport (>= 3.0.0)
40
40
  railties (>= 3.0.0)
41
- i18n (1.8.3)
41
+ i18n (1.8.5)
42
42
  concurrent-ruby (~> 1.0)
43
- loofah (2.5.0)
43
+ loofah (2.7.0)
44
44
  crass (~> 1.0.2)
45
45
  nokogiri (>= 1.5.9)
46
46
  method_source (1.0.0)
47
47
  mini_portile2 (2.4.0)
48
- minitest (5.14.1)
49
- nokogiri (1.10.9)
48
+ minitest (5.14.2)
49
+ nokogiri (1.10.10)
50
50
  mini_portile2 (~> 2.4.0)
51
- parallel (1.19.1)
52
- parser (2.7.1.3)
53
- ast (~> 2.4.0)
54
- rack (2.2.2)
51
+ parallel (1.19.2)
52
+ parser (2.7.2.0)
53
+ ast (~> 2.4.1)
54
+ rack (2.2.3)
55
55
  rack-test (1.1.0)
56
56
  rack (>= 1.0, < 3)
57
57
  rails-dom-testing (2.0.3)
@@ -59,54 +59,56 @@ GEM
59
59
  nokogiri (>= 1.6)
60
60
  rails-html-sanitizer (1.3.0)
61
61
  loofah (~> 2.3)
62
- railties (6.0.3.1)
63
- actionpack (= 6.0.3.1)
64
- activesupport (= 6.0.3.1)
62
+ railties (6.0.3.4)
63
+ actionpack (= 6.0.3.4)
64
+ activesupport (= 6.0.3.4)
65
65
  method_source
66
66
  rake (>= 0.8.7)
67
67
  thor (>= 0.20.3, < 2.0)
68
68
  rainbow (3.0.0)
69
69
  rake (13.0.1)
70
- regexp_parser (1.7.1)
70
+ regexp_parser (1.8.2)
71
71
  rexml (3.2.4)
72
- rspec (3.9.0)
73
- rspec-core (~> 3.9.0)
74
- rspec-expectations (~> 3.9.0)
75
- rspec-mocks (~> 3.9.0)
76
- rspec-core (3.9.2)
77
- rspec-support (~> 3.9.3)
78
- rspec-expectations (3.9.2)
72
+ rspec (3.10.0)
73
+ rspec-core (~> 3.10.0)
74
+ rspec-expectations (~> 3.10.0)
75
+ rspec-mocks (~> 3.10.0)
76
+ rspec-core (3.10.0)
77
+ rspec-support (~> 3.10.0)
78
+ rspec-expectations (3.10.0)
79
79
  diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.9.0)
81
- rspec-mocks (3.9.1)
80
+ rspec-support (~> 3.10.0)
81
+ rspec-mocks (3.10.0)
82
82
  diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.9.0)
84
- rspec-support (3.9.3)
85
- rubocop (0.85.1)
83
+ rspec-support (~> 3.10.0)
84
+ rspec-support (3.10.0)
85
+ rubocop (1.2.0)
86
86
  parallel (~> 1.10)
87
- parser (>= 2.7.0.1)
87
+ parser (>= 2.7.1.5)
88
88
  rainbow (>= 2.2.2, < 4.0)
89
- regexp_parser (>= 1.7)
89
+ regexp_parser (>= 1.8)
90
90
  rexml
91
- rubocop-ast (>= 0.0.3)
91
+ rubocop-ast (>= 1.0.1)
92
92
  ruby-progressbar (~> 1.7)
93
93
  unicode-display_width (>= 1.4.0, < 2.0)
94
- rubocop-ast (0.0.3)
95
- parser (>= 2.7.0.1)
96
- rubocop-performance (1.6.1)
97
- rubocop (>= 0.71.0)
98
- rubocop-rspec (1.40.0)
99
- rubocop (>= 0.68.1)
94
+ rubocop-ast (1.1.1)
95
+ parser (>= 2.7.1.5)
96
+ rubocop-performance (1.8.1)
97
+ rubocop (>= 0.87.0)
98
+ rubocop-ast (>= 0.4.0)
99
+ rubocop-rspec (2.0.0)
100
+ rubocop (~> 1.0)
101
+ rubocop-ast (>= 1.1.0)
100
102
  ruby-progressbar (1.10.1)
101
- ruby_parser (3.14.2)
103
+ ruby_parser (3.15.0)
102
104
  sexp_processor (~> 4.9)
103
- sexp_processor (4.15.0)
105
+ sexp_processor (4.15.1)
104
106
  thor (1.0.1)
105
107
  thread_safe (0.3.6)
106
108
  tzinfo (1.2.7)
107
109
  thread_safe (~> 0.1)
108
110
  unicode-display_width (1.7.0)
109
- zeitwerk (2.3.0)
111
+ zeitwerk (2.4.1)
110
112
 
111
113
  PLATFORMS
112
114
  ruby
data/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
  [![Build Status](https://travis-ci.org/drexed/lite-ruby.svg?branch=master)](https://travis-ci.org/drexed/lite-ruby)
5
5
 
6
6
  Lite::Ruby is a collection of useful Ruby methods for its primitive classes.
7
+ AcitveSupport equivalent methods do not get included when AcitveSupport is available.
7
8
 
8
9
  **NOTE:** If you are coming from `ActiveObject`, please read the [port](#port) section.
9
10
 
@@ -155,7 +155,7 @@ Returns a list of duplicate elements.
155
155
  [1, 1, 2, 2, 2, 3].duplicates(3) #=> [2]
156
156
  ```
157
157
 
158
- `except(!)`
158
+ `except(!)` aka `remove_values(!)`
159
159
  ------
160
160
  Removes given values from the array.
161
161
 
@@ -235,7 +235,7 @@ Converts blank values into `nil`.
235
235
  ['', 3, 4].nillify! #=> [nil, 3, 4]
236
236
  ```
237
237
 
238
- `only(!)`
238
+ `only(!)` aka `select_values(!)`
239
239
  ------
240
240
  Selects given values from the array.
241
241
 
@@ -285,14 +285,6 @@ Returns a sample of random n values by size or given.
285
285
  [1, 2, 3].rand_sample(1) #=> [2]
286
286
  ```
287
287
 
288
- `reject_values`
289
- ------
290
- Delete multiple values from a `dup` copy of the original array.
291
-
292
- ```ruby
293
- [1, 2, 3, 4, 5].reject_values(2, 4) #=> [1, 3, 5]
294
- ```
295
-
296
288
  `rposition`
297
289
  ------
298
290
  Returns the position of the last matching value.
@@ -110,7 +110,7 @@ Merge the values of this hash with those from another, setting all values to be
110
110
  { a: 1, b: 2 }.collate(a: 3, b: 4, c: 5) #=> { a: [1, 3], b: [2, 4], c: [5] }
111
111
  ```
112
112
 
113
- `collect_keys`
113
+ `collect_keys` aka `map_keys`
114
114
  ------
115
115
  Returns an array with all keys converted using the block operation.
116
116
 
@@ -119,7 +119,7 @@ Returns an array with all keys converted using the block operation.
119
119
  { foo: 'bar', 'baz' => :boo }.collect_keys { |k| k.to_s.upcase } #=> ['FOO', BAZ']
120
120
  ```
121
121
 
122
- `collect_values`
122
+ `collect_values` aka `map_values`
123
123
  ------
124
124
  Returns an array with all values converted using the block operation.
125
125
 
@@ -323,8 +323,8 @@ Moves a key value pair to the head of the hash.
323
323
  Rename the keys of a hash.
324
324
 
325
325
  ```ruby
326
- { foo: 'foo', baz: 'baz' }.rename_keys(foo: :bar) #=> { bar: 'foo', baz: 'baz' }
327
- { foo: 'foo', 'baz' => 'baz' }.rename_keys(foo: :bar, 'baz' => 'tick') #=> { bar: 'foo', tick: 'baz' }
326
+ { foo: 'foo', baz: 'baz' }.rename_keys(foo: :bar) #=> { bar: 'foo', baz: 'baz' }
327
+ { foo: 'foo', 'baz' => 'baz' }.rename_keys!(foo: :bar, 'baz' => 'tick') #=> { bar: 'foo', tick: 'baz' }
328
328
  ```
329
329
 
330
330
  `reverse_merge(!)`
@@ -8,16 +8,6 @@ Returns the sum of two numbers.
8
8
  4.add(2) #=> 6
9
9
  ```
10
10
 
11
- `clamp`
12
- ------
13
- Returns the closest number outside of the lower and upper bound.
14
-
15
- ```ruby
16
- 1.clamp(3, 6) # => 3
17
- 5.clamp(3..6) # => 5
18
- 8.clamp(3, 6) # => 6
19
- ```
20
-
21
11
  `close?`
22
12
  ------
23
13
  Returns if a number is within the degree of another.
@@ -17,15 +17,6 @@ Returns if a string includes a set of string(s).
17
17
  'example string'.any?('foo', 'string') #=> true
18
18
  ```
19
19
 
20
- `ascii_only(!)`
21
- ------
22
- Replace non-ascii characters.
23
-
24
- ```ruby
25
- '中文123'.ascii_only #=> '123'
26
- '中文123'.ascii_only!('x') #=> 'xx123'
27
- ```
28
-
29
20
  `at`
30
21
  ------
31
22
  Returns the characters at index position, matching string, or regex.
@@ -144,15 +135,6 @@ Splits a string into multiple words and yields its enumeration.
144
135
  'abc. 123'.each_word(&:campitalize!) #=> ['Abc.', '123']
145
136
  ```
146
137
 
147
- `encode_only(!)`
148
- ------
149
- Replace non-encode characters.
150
-
151
- ```ruby
152
- '中文123'.encode_only('UTF-8') #=> '123'
153
- '中文123'.encode_only!('ASCII', 'x') #=> 'xx123'
154
- ```
155
-
156
138
  `ellipsize`
157
139
  ------
158
140
  Truncate a string in the middle.
@@ -432,6 +414,15 @@ Rotate string to the left with count.
432
414
  'example'.rotate(2) #=> 'ampleex'
433
415
  ```
434
416
 
417
+ `safe_encode(!)`
418
+ ------
419
+ Replace non-encode characters.
420
+
421
+ ```ruby
422
+ '中文123'.safe_encode('UTF-8') #=> '123'
423
+ '中文123'.safe_encode!('ASCII', 'x') #=> 'xx123'
424
+ ```
425
+
435
426
  `sample(!)`
436
427
  ------
437
428
  Removes a random value and returns that value.
@@ -520,12 +511,12 @@ If the position is negative, it is counted from the end of the string.
520
511
  'example'.to(-2) #=> 'exampl'
521
512
  ```
522
513
 
523
- `transliterize(!)`
514
+ `transliterate(!)`
524
515
  ------
525
516
  Returns a string with swapped special characters.
526
517
 
527
518
  ```ruby
528
- 'źåöé'.transliterize #=> 'zaoe'
519
+ 'źåöé'.transliterate #=> 'zaoe'
529
520
  ```
530
521
 
531
522
  `truncate`
@@ -20,8 +20,8 @@ Converts a `time` object to `strftime` it using a human readable string.
20
20
  | --- | --- | --- | --- | --- |
21
21
  | Hour | 24h zero-padded | `h`, `hour`, `hour_padded` | %H | (00..23) |
22
22
  | Hour | 24h blank-padded | `hh`, `HOUR`, `hour_blank` | %k | ( 0..23) |
23
- | Hour | 12h zero-padded | `hhh`, `hour_12`, `hour_12_padded` | %I | (01..12) |
24
- | Hour | 12h blank-padded | `hhhh`, `HOUR_12`, `hour_12_blank` | %l | ( 1..12) |
23
+ | Hour | 12h zero-padded | `hhh`, `hour12`, `hour12_padded` | %I | (01..12) |
24
+ | Hour | 12h blank-padded | `hhhh`, `HOUR12`, `hour12_blank` | %l | ( 1..12) |
25
25
  | Minute | Minute | `n`, `minute` | %M | (00..59) |
26
26
  | Second | Second | `s`, `second` | %S | (00..59) |
27
27
  | Meridian | Lowercase | `ampm`, `meridian` | %P | am..pm |
@@ -48,8 +48,8 @@ Converts a `time` object to a predefined format.
48
48
  | --- | --- | --- | --- | --- |
49
49
  | Hour | 24h zero-padded | `:hour`, `:hour_padded` | %H | (00..23) |
50
50
  | Hour | 24h blank-padded | `:hour_blank` | %k | ( 0..23) |
51
- | Hour | 12h zero-padded | `hour_12`, `:hour_12_padded` | %I | (01..12) |
52
- | Hour | 12h blank-padded | `:hour_12_blank` | %l | ( 1..12) |
51
+ | Hour | 12h zero-padded | `hour12`, `:hour12_padded` | %I | (01..12) |
52
+ | Hour | 12h blank-padded | `:hour12_blank` | %l | ( 1..12) |
53
53
  | Minute | Minute | `:minute` | %M | (00..59) |
54
54
  | Second | Second | `:second` | %S | (00..59) |
55
55
  | Meridian | Lowercase | `:ampm` | %P | am..pm |
@@ -67,28 +67,28 @@ Converts a `time` object to a predefined format.
67
67
  | Combo | 24h time | `:time_blank` | %k:%M %z | 0:31 |
68
68
  | Combo | 24h time | `:time_tz` | %H:%M %z | 00:31 +0000 |
69
69
  | Combo | 24h time | `:time_tzn` | %H:%M %Z | 00:31 UTC |
70
- | Combo | 12h time | `:time_12`, `:time_12_padded` | %I:%M %P | 07:31 am |
71
- | Combo | 12h time | `:time_12_blank` | %l:%M %P | 7:31 am |
72
- | Combo | 12h Time | `:time_12_tz` | %I:%M %P %z | 07:31 am +0000 |
73
- | Combo | 12h Time | `:time_12_tzn` | %I:%M %P %Z | 07:31 am UTC |
70
+ | Combo | 12h time | `:time12`, `:time12_padded` | %I:%M %P | 07:31 am |
71
+ | Combo | 12h time | `:time12_blank` | %l:%M %P | 7:31 am |
72
+ | Combo | 12h Time | `:time12_tz` | %I:%M %P %z | 07:31 am +0000 |
73
+ | Combo | 12h Time | `:time12_tzn` | %I:%M %P %Z | 07:31 am UTC |
74
74
  | Combo | 24h daytime | `:daytime` | %B %-d %H:%M | January 9 00:31 |
75
75
  | Combo | 24h daytime | `:daytime_abbr` | %b %-d %H:%M | Jan 9 00:31 |
76
76
  | Combo | 24h daytime | `:daytime_iso` | %m-%d %H:%M | 01-09 00:31 |
77
- | Combo | 12h daytime | `:daytime_12` | %B %-d %H:%M | January 9 12:31 am |
78
- | Combo | 12h daytime | `:daytime_12_abbr` | %b %-d %H:%M | Jan 9 12:31 am |
79
- | Combo | 12h daytime | `:daytime_12_iso` | %m-%d %H:%M | 01-09 12:31 am |
77
+ | Combo | 12h daytime | `:daytime12` | %B %-d %H:%M | January 9 12:31 am |
78
+ | Combo | 12h daytime | `:daytime12_abbr` | %b %-d %H:%M | Jan 9 12:31 am |
79
+ | Combo | 12h daytime | `:daytime12_iso` | %m-%d %H:%M | 01-09 12:31 am |
80
80
  | Combo | 24h datetime | `:datetime` | %B %-d, %Y %H:%M | January 9, 2014 00:31 |
81
81
  | Combo | 24h datetime | `:datetime_abbr` | %b %-d, %Y %H:%M | Jan 9, 2014 00:31 |
82
82
  | Combo | 24h datetime | `:datetime_iso` | %Y-%m-%d %H:%M | 2014-01-09 00:31 |
83
83
  | Combo | 24h datetime | `:datetime_tzn` | %B %-d, %Y %H:%M %Z | January 9, 2014 00:31 UTC |
84
84
  | Combo | 24h datetime | `:datetime_abbr_tzn` | %b %-d, %Y %H:%M %Z | Jan 9, 2014 00:31 UTC |
85
85
  | Combo | 24h datetime | `:datetime_iso_tzn` | %Y-%m-%d %H:%M %z | 2014-01-09 00:31 +0000 |
86
- | Combo | 12h datetime | `:datetime_12` | %B %-d, %Y %H:%M | January 9, 2014 12:31 am |
87
- | Combo | 12h datetime | `:datetime_12_abbr` | %b %-d, %Y %H:%M | Jan 9, 2014 12:31 am |
88
- | Combo | 12h datetime | `:datetime_12_iso` | %Y-%m-%d %H:%M | 2014-01-09 12:31 am |
89
- | Combo | 12h datetime | `:datetime_12_tzn` | %B %-d, %Y %H:%M %Z | January 9, 2014 12:31 am UTC |
90
- | Combo | 12h datetime | `:datetime_12_abbr_tzn` | %b %-d, %Y %H:%M %Z | Jan 9, 2014 12:31 am UTC |
91
- | Combo | 12h datetime | `:datetime_12_iso_tzn` | %Y-%m-%d %H:%M %z | 2014-01-09 12:31 am +0000 |
86
+ | Combo | 12h datetime | `:datetime12` | %B %-d, %Y %H:%M | January 9, 2014 12:31 am |
87
+ | Combo | 12h datetime | `:datetime12_abbr` | %b %-d, %Y %H:%M | Jan 9, 2014 12:31 am |
88
+ | Combo | 12h datetime | `:datetime12_iso` | %Y-%m-%d %H:%M | 2014-01-09 12:31 am |
89
+ | Combo | 12h datetime | `:datetime12_tzn` | %B %-d, %Y %H:%M %Z | January 9, 2014 12:31 am UTC |
90
+ | Combo | 12h datetime | `:datetime12_abbr_tzn` | %b %-d, %Y %H:%M %Z | Jan 9, 2014 12:31 am UTC |
91
+ | Combo | 12h datetime | `:datetime12_iso_tzn` | %Y-%m-%d %H:%M %z | 2014-01-09 12:31 am +0000 |
92
92
 
93
93
  ```ruby
94
94
  Time.now.stamp(:datetime) #=> 'January 09, 2014 02:31 pm'