active_object 2.2.0 → 2.2.1

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: f623beefc25c05dda49e4911338d99fcaf7a1583
4
- data.tar.gz: 3c88b3cc25eb17d516942c18b107f9db531bc85e
3
+ metadata.gz: 870ef24dd02b4405a716b0ad589d5e3721fe689f
4
+ data.tar.gz: ba49e38df4f368992b5a8ccea743a2c1c2478b18
5
5
  SHA512:
6
- metadata.gz: ddfe1204643df9fb81c5f8745643c9ff50131d2db0703ab3297630d9fe43532c0fde8ec0324949345f8b53d76ba470b206ff2e30b3c76c3e8bd60aec78084ba4
7
- data.tar.gz: b2692ab2c7b413d7b9cab37544a2a5684852ad8e6207817ba4081e070fc4117747c5e3c249f4e50996f46a7cf34d38d73f1c204ea1631185a8149e37ff9b8db6
6
+ metadata.gz: 9ae4f6793ed35ab3599f4d92482e71c5791c3da43f96a7eb62f934b07c8feef55bb01c744d7461789fbd7d57de872d8eec30ee28f9b6236c8e351a7e18c31c52
7
+ data.tar.gz: e86c3ef0f206ef80e695121e565821ab8c74ec630053695ed3eee3f8e003c55f265ba0c45ffe650612a810d37a569c1ed15b97311c1e6d6f162797ee19dc1b65
data/README.md CHANGED
@@ -1536,6 +1536,8 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1536
1536
 
1537
1537
  ## Time
1538
1538
 
1539
+ *Note:* also works with Date class.
1540
+
1539
1541
  ####Format:####
1540
1542
  `format` converts a Date or Time object to format it using a human readable string.
1541
1543
 
@@ -1544,18 +1546,18 @@ h.slice!(:a, :b) #=> { c: 3, d: 4 }
1544
1546
  * Characters can only be used to generate a format part
1545
1547
 
1546
1548
  ```ruby
1547
- Time.now.format("year") #=> "2014"
1549
+ Date.today.format("year") #=> "2014"
1548
1550
  Time.now.format("month_name day, year hour:minute ampm") #=> "January 09, 2014 02:31 pm"
1549
1551
  ```
1550
1552
 
1551
1553
  | Name | Key | Equivalent `strftime` | Result |
1552
1554
  | --- | --- | --- | --- |
1553
- | Month - digits zero-padded | `m` or `month` or `month_zero` | %m | (01..12) |
1555
+ | Month - digits zero-padded | `m` or `month` or `month_padded` | %m | (01..12) |
1554
1556
  | Month - digits unpadded | `mm` or `Month` or `month_unpadded` | %-m | (1..12) |
1555
1557
  | Month - digits blank-padded | `mmm` or `MONTH` or `day_blank` | %_m | ( 1..12) |
1556
1558
  | Month - name | `mmmm` or `month_name` | %B | January |
1557
1559
  | Month - name abbreviated | `mmmmm` or `month_name_abbr` | %b | Jan |
1558
- | Day - digits zero-padded | `d` or `day` or `day_zero` | %d | (01..31) |
1560
+ | Day - digits zero-padded | `d` or `day` or `day_padded` | %d | (01..31) |
1559
1561
  | Day - digits unpadded | `dd` or `Day` or `day_unpadded` | %-d | (1..31) |
1560
1562
  | Day - digits blank-padded | `ddd` or `DAY` or `day_blank` | %_d | ( 1..31) |
1561
1563
  | Day - digits of the year | `dddd` or `day_of_the_year` | %j | (001..366) |
@@ -1567,9 +1569,9 @@ Time.now.format("month_name day, year hour:minute ampm") #=> "January 09, 2014 0
1567
1569
  | Weekday - name abbreviated | `wwww` or `weekday_name_abbr` | %M | Sun |
1568
1570
  | Year - digits two | `yy` or `yr` | %y | (00..99) |
1569
1571
  | Year - digits four | `yyyy` or `year` | %Y | 1999 |
1570
- | Hour - digits zero-padded | `h` or `hour` or `hour_zero` | %H | (00..23) |
1572
+ | Hour - digits zero-padded | `h` or `hour` or `hour_padded` | %H | (00..23) |
1571
1573
  | Hour - digits blank-padded | `hh` or `HOUR` or `hour_blank` | %k | ( 0..23) |
1572
- | Hour - digits zero-padded | `hhh` or `hour_imperical` or `hour_imperical_zero` | %I | (01..12) |
1574
+ | Hour - digits zero-padded | `hhh` or `hour_imperical` or `hour_imperical_padded` | %I | (01..12) |
1573
1575
  | Hour - digits blank-padded | `hhhh` or `HOUR_IMPERICAL` or `hour_imperical_blank` | %l | ( 1..12) |
1574
1576
  | Minute - minute | `n` or `minute` | %M | (00..59) |
1575
1577
  | Second - second | `s` or `second` | %S | (00..60) |
@@ -1585,27 +1587,27 @@ Time.now.format("month_name day, year hour:minute ampm") #=> "January 09, 2014 0
1585
1587
  **For a full list check out the time extention file.**
1586
1588
 
1587
1589
  ```ruby
1588
- Time.now.to_format(:year) #=> "2014"
1589
- Time.now.to_format(:datetime) #=> "January 09, 2014 02:31 pm"
1590
+ Time.now.to_format(:year) #=> "2014"
1591
+ Time.now.stamp(:datetime) #=> "January 09, 2014 02:31 pm"
1590
1592
  ```
1591
1593
 
1592
1594
  | Name | Key | Equivalent `strftime` | Result |
1593
1595
  | --- | --- | --- | --- |
1594
- | Month - digits zero-padded | `:month` or `:month_zero` | %A | (01..12) |
1596
+ | Month - digits zero-padded | `:month` or `:month_padded` | %A | (01..12) |
1595
1597
  | Month - digits unpadded | `:month_unpadded` | %a | (1..12) |
1596
1598
  | Month - digits blank-padded | `:month_blank` | %a | ( 1..12) |
1597
1599
  | Month - name | `:month_name` | %A | January |
1598
1600
  | Month - name abbreviated | `:month_name_abbr` | %a | Jan |
1599
- | Weekday - digits zero-padded | `:weekday_zero` | %A | (01..31) |
1601
+ | Weekday - digits zero-padded | `:weekday_padded` | %A | (01..31) |
1600
1602
  | Weekday - digits unpadded | `:weekday_unpadded` | %a | (1..31) |
1601
1603
  | Weekday - digits blank-padded | `:weekday_blank` | %a | ( 1..31) |
1602
1604
  | Weekday - name | `:weekday_name` | %A | Sunday |
1603
1605
  | Weekday - name abbreviated | `:weekday_name_abbr` | %a | Sun |
1604
1606
  | Year - digits two | `:yr` | %y | (00..99) |
1605
1607
  | Year - digits four | `:year` | %Y | 1999 |
1606
- | Hour - digits zero-padded | `:hour` or `:hour_zero` | %H | (00..23) |
1608
+ | Hour - digits zero-padded | `:hour` or `:hour_padded` | %H | (00..23) |
1607
1609
  | Hour - digits blank-padded | `:hour_blank` | %k | ( 0..23) |
1608
- | Hour - digits zero-padded imperical | `:hour_imperical_zero` | %I | (01..12) |
1610
+ | Hour - digits zero-padded imperical | `:hour_imperical_padded` | %I | (01..12) |
1609
1611
  | Hour - digits blank-padded imperical | `:hour_imperical_blank` | %l | ( 1..12) |
1610
1612
  | Minute - minute | `:minute` | %M | (00..59) |
1611
1613
  | Second - second | `:second` | %S | (00..60) |
@@ -1636,7 +1638,7 @@ Time.now.to_format(:datetime) #=> "January 09, 2014 02:31 pm"
1636
1638
  | Daytime - name imperical | `:daytime_imperical` | %B %-d %H:%M | January 9 12:31 am |
1637
1639
  | Daytime - name abbreviated imperical | `:daytime_imperical_abbr` | %b %-d %H:%M | Jan 9 12:31 am |
1638
1640
  | Daytime - iso imperical | `:daytime_imperical_iso` | %m-%d %H:%M | 01-09 12:31 am |
1639
- | Time - zero-padded | `:time` or `:time_zero` | %H:%M | 00:31 |
1641
+ | Time - zero-padded | `:time` or `:time_padded` | %H:%M | 00:31 |
1640
1642
  | Time - blank-padded | `:time_blank` | %k:%M %z | 0:31 |
1641
1643
  | Time - with time zone | `:time_tz` | %H:%M %z | 00:31 +0000 |
1642
1644
  | Time - with time zone name | `:time_tzn` | %H:%M %Z | 00:31 UTC |
@@ -0,0 +1,105 @@
1
+ class Date
2
+
3
+ def format(string)
4
+ delimiters = string.scan /\W+/
5
+ formatters = string.scan /[a-z0-9_]+/i
6
+
7
+ format_units = {
8
+ "d" => "d",
9
+ "day" => "d",
10
+ "day_padded" => "d",
11
+ "dd" => "-d",
12
+ "Day" => "-d",
13
+ "day_unpadded" => "-d",
14
+ "ddd" => "_d",
15
+ "DAY" => "_d",
16
+ "day_blank" => "_d",
17
+ "dddd" => "j",
18
+ "day_of_the_year" => "j",
19
+ "m" => "m",
20
+ "month" => "m",
21
+ "month_padded" => "m",
22
+ "mm" => "-m",
23
+ "Month" => "-m",
24
+ "month_unpadded" => "-m",
25
+ "mmm" => "_m",
26
+ "MONTH" => "_m",
27
+ "month_blank" => "_m",
28
+ "mmmm" => "B",
29
+ "month_name" => "B",
30
+ "mmmmm" => "b",
31
+ "month_name_abbr" => "b",
32
+ "w" => "u",
33
+ "weekday" => "u",
34
+ "ww" => "w",
35
+ "weekday_offset" => "w",
36
+ "www" => "A",
37
+ "weekday_name" => "A",
38
+ "wwww" => "a",
39
+ "weekday_name_abbr" => "a",
40
+ "wwwww" => "W",
41
+ "week" => "W",
42
+ "wwwwww" => "U",
43
+ "week_offset" => "U",
44
+ "yy" => "y",
45
+ "yr" => "y",
46
+ "yyyy" => "Y",
47
+ "year" => "Y",
48
+ "ampm" => "P",
49
+ "meridian" => "P",
50
+ "AMPM" => "p",
51
+ "MERIDIAN" => "p"
52
+ }
53
+
54
+ strftime(formatters.map { |f| "%#{format_units.fetch(f)}#{delimiters.shift || ''}" }.join(""))
55
+ end
56
+
57
+ def to_format(key)
58
+ format_units = {
59
+ month: "%m",
60
+ month_padded: "%m",
61
+ month_unpadded: "%-m",
62
+ month_blank: "%_m",
63
+ month_name: "%B",
64
+ month_name_abbr: "%b",
65
+ weekday: "%d",
66
+ weekday_padded: "%d",
67
+ weekday_unpadded: "%-d",
68
+ weekday_blank: "%_d",
69
+ weekday_name: "%A",
70
+ weekday_name_abbr: "%a",
71
+ yr: "%y",
72
+ year_abbr: "%y",
73
+ year: "%Y",
74
+ date: "%B %-d, %Y",
75
+ date_abbr: "%b %-d, %Y",
76
+ date_iso: "%Y-%m-%d",
77
+ datetime: "%B %-d, %Y %H:%M",
78
+ datetime_abbr: "%b %-d, %Y %H:%M",
79
+ datetime_iso: "%Y-%m-%d %H:%M",
80
+ datetime_imperical: "%B %-d, %Y %I:%M %P",
81
+ datetime_imperical_abbr: "%b %-d, %Y %I:%M %P",
82
+ datetime_imperical_iso: "%Y-%m-%d %I:%M %P",
83
+ datetime_tzn: "%B %-d, %Y %H:%M %Z",
84
+ datetime_abbr_tzn: "%b %-d, %Y %H:%M %Z",
85
+ datetime_iso_tzn: "%Y-%m-%d %H:%M %z",
86
+ datetime_imperical_tzn: "%B %-d, %Y %I:%M %P %Z",
87
+ datetime_imperical_abbr_tzn: "%b %-d, %Y %I:%M %P %Z",
88
+ datetime_imperical_iso_tzn: "%Y-%m-%d %I:%M %P %z",
89
+ day: "%B %-d",
90
+ day_abbr: "%b %-d",
91
+ day_iso: "%m-%d",
92
+ daytime: "%B %-d %H:%M",
93
+ daytime_abbr: "%b %-d %H:%M",
94
+ daytime_iso: "%m-%d %H:%M",
95
+ daytime_imperical: "%B %-d %I:%M %P",
96
+ daytime_imperical_abbr: "%b %-d %I:%M %P",
97
+ daytime_imperical_iso: "%m-%d %I:%M %P"
98
+ }
99
+
100
+ strftime(format_units.fetch(key))
101
+ end
102
+
103
+ alias_method :stamp, :to_format
104
+
105
+ end
@@ -7,7 +7,7 @@ class Time
7
7
  format_units = {
8
8
  "d" => "d",
9
9
  "day" => "d",
10
- "day_zero" => "d",
10
+ "day_padded" => "d",
11
11
  "dd" => "-d",
12
12
  "Day" => "-d",
13
13
  "day_unpadded" => "-d",
@@ -18,7 +18,7 @@ class Time
18
18
  "day_of_the_year" => "j",
19
19
  "m" => "m",
20
20
  "month" => "m",
21
- "month_zero" => "m",
21
+ "month_padded" => "m",
22
22
  "mm" => "-m",
23
23
  "Month" => "-m",
24
24
  "month_unpadded" => "-m",
@@ -47,13 +47,13 @@ class Time
47
47
  "year" => "Y",
48
48
  "h" => "H",
49
49
  "hour" => "H",
50
- "hour_zero" => "H",
50
+ "hour_padded" => "H",
51
51
  "hh" => "k",
52
52
  "HOUR" => "k",
53
53
  "hour_blank" => "k",
54
54
  "hhh" => "I",
55
55
  "hour_imperical" => "I",
56
- "hour_imperical_zero" => "I",
56
+ "hour_imperical_padded" => "I",
57
57
  "hhhh" => "l",
58
58
  "HOUR_IMPERICAL" => "l",
59
59
  "hour_imperical_blank" => "l",
@@ -81,24 +81,25 @@ class Time
81
81
  def to_format(key)
82
82
  format_units = {
83
83
  month: "%m",
84
- month_zero: "%m",
84
+ month_padded: "%m",
85
85
  month_unpadded: "%-m",
86
86
  month_blank: "%_m",
87
87
  month_name: "%B",
88
88
  month_name_abbr: "%b",
89
89
  weekday: "%d",
90
- weekday_zero: "%d",
90
+ weekday_padded: "%d",
91
91
  weekday_unpadded: "%-d",
92
92
  weekday_blank: "%_d",
93
93
  weekday_name: "%A",
94
94
  weekday_name_abbr: "%a",
95
95
  yr: "%y",
96
+ year_abbr: "%y",
96
97
  year: "%Y",
97
98
  hour: "%H",
98
- hour_zero: "%H",
99
+ hour_padded: "%H",
99
100
  hour_blank: "%k",
100
101
  hour_imperical: "%I",
101
- hour_imperical_zero: "%I",
102
+ hour_imperical_padded: "%I",
102
103
  hour_imperical_blank: "%l",
103
104
  ampm: "%P",
104
105
  meridian: "%P",
@@ -133,12 +134,12 @@ class Time
133
134
  daytime_imperical_abbr: "%b %-d %I:%M %P",
134
135
  daytime_imperical_iso: "%m-%d %I:%M %P",
135
136
  time: "%H:%M",
136
- time_zero: "%H:%M",
137
+ time_padded: "%H:%M",
137
138
  time_blank: "%k:%M",
138
139
  time_tz: "%H:%M %z",
139
140
  time_tzn: "%H:%M %Z",
140
141
  time_imperical: "%I:%M %P",
141
- time_imperical_zero: "%I:%M %P",
142
+ time_imperical_padded: "%I:%M %P",
142
143
  time_imperical_blank: "%l:%M %P",
143
144
  time_imperical_tz: "%I:%M %P %z",
144
145
  time_imperical_tzn: "%I:%M %P %Z"
@@ -1,3 +1,3 @@
1
1
  module ActiveObject
2
- VERSION = "2.2.0"
2
+ VERSION = "2.2.1"
3
3
  end
data/lib/active_object.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'active_object/version'
2
2
  require 'active_object/array'
3
+ require 'active_object/date'
3
4
  require 'active_object/enumerable'
4
5
  require 'active_object/hash'
5
6
  require 'active_object/integer'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-22 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -88,6 +88,7 @@ files:
88
88
  - bin/setup
89
89
  - lib/active_object.rb
90
90
  - lib/active_object/array.rb
91
+ - lib/active_object/date.rb
91
92
  - lib/active_object/enumerable.rb
92
93
  - lib/active_object/hash.rb
93
94
  - lib/active_object/integer.rb