active_object 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 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