active_object 2.5.2 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/LICENSE.txt +2 -2
- data/README.md +127 -54
- data/active_object.gemspec +5 -4
- data/bin/rake +6 -6
- data/lib/active_object.rb +25 -1
- data/lib/active_object/array.rb +91 -80
- data/lib/active_object/configuration.rb +21 -0
- data/lib/active_object/date.rb +31 -98
- data/lib/active_object/enumerable.rb +20 -26
- data/lib/active_object/hash.rb +73 -94
- data/lib/active_object/integer.rb +8 -17
- data/lib/active_object/numeric.rb +125 -129
- data/lib/active_object/object.rb +19 -25
- data/lib/active_object/range.rb +12 -14
- data/lib/active_object/string.rb +154 -224
- data/lib/active_object/time.rb +54 -146
- data/lib/active_object/version.rb +2 -2
- data/lib/generators/active_object/install_generator.rb +12 -0
- data/lib/generators/active_object/templates/install.rb +12 -0
- metadata +21 -4
data/lib/active_object/time.rb
CHANGED
@@ -1,159 +1,67 @@
|
|
1
|
-
|
1
|
+
module ActiveObject::Time
|
2
|
+
|
3
|
+
KEY_UNITS = {
|
4
|
+
month: "%m", month_padded: "%m", month_unpadded: "%-m", month_blank: "%_m",
|
5
|
+
month_name: "%B", month_name_abbr: "%b", month_year: "%m %Y",
|
6
|
+
month_padded_year: "%m %Y", month_unpadded_year: "%-m %Y",
|
7
|
+
month_blank_year: "%_m %Y", month_name_year: "%B %Y",
|
8
|
+
month_name_abbr_year: "%b %Y", weekday: "%d", weekday_padded: "%d",
|
9
|
+
weekday_unpadded: "%-d", weekday_blank: "%_d", weekday_name: "%A",
|
10
|
+
weekday_name_abbr: "%a", yr: "%y", year_abbr: "%y", year: "%Y", hour: "%H",
|
11
|
+
hour_padded: "%H", hour_blank: "%k", hour_imperical: "%I",
|
12
|
+
hour_imperical_padded: "%I", hour_imperical_blank: "%l", ampm: "%P",
|
13
|
+
meridian: "%P", minute: "%M", second: "%S", time_zone: "%z",
|
14
|
+
time_zone_offset: "%:z", time_zone_offset_full: "%::z", time_zone_name: "%Z",
|
15
|
+
date: "%B %-d, %Y", date_abbr:"%b %-d, %Y", date_iso: "%Y-%m-%d",
|
16
|
+
datetime: "%B %-d, %Y %H:%M", datetime_abbr: "%b %-d, %Y %H:%M",
|
17
|
+
datetime_iso: "%Y-%m-%d %H:%M", datetime_imperical: "%B %-d, %Y %I:%M %P",
|
18
|
+
datetime_imperical_abbr: "%b %-d, %Y %I:%M %P", datetime_imperical_iso: "%Y-%m-%d %I:%M %P",
|
19
|
+
datetime_tzn: "%B %-d, %Y %H:%M %Z", datetime_abbr_tzn: "%b %-d, %Y %H:%M %Z",
|
20
|
+
datetime_iso_tzn: "%Y-%m-%d %H:%M %z", datetime_imperical_tzn: "%B %-d, %Y %I:%M %P %Z",
|
21
|
+
datetime_imperical_abbr_tzn: "%b %-d, %Y %I:%M %P %Z", datetime_imperical_iso_tzn: "%Y-%m-%d %I:%M %P %z",
|
22
|
+
day: "%B %-d", day_abbr: "%b %-d", day_iso: "%m-%d", daytime: "%B %-d %H:%M",
|
23
|
+
daytime_abbr: "%b %-d %H:%M", daytime_iso: "%m-%d %H:%M",
|
24
|
+
daytime_imperical: "%B %-d %I:%M %P", daytime_imperical_abbr: "%b %-d %I:%M %P",
|
25
|
+
daytime_imperical_iso: "%m-%d %I:%M %P", time: "%H:%M", time_padded: "%H:%M",
|
26
|
+
time_blank: "%k:%M", time_tz: "%H:%M %z", time_tzn: "%H:%M %Z",
|
27
|
+
time_imperical: "%I:%M %P", time_imperical_padded: "%I:%M %P",
|
28
|
+
time_imperical_blank: "%l:%M %P", time_imperical_tz: "%I:%M %P %z",
|
29
|
+
time_imperical_tzn: "%I:%M %P %Z"
|
30
|
+
}
|
31
|
+
STRING_UNITS = {
|
32
|
+
d: "d", day: "d", day_padded: "d", dd: "-d", Day: "-d", day_unpadded: "-d",
|
33
|
+
ddd: "_d", DAY: "_d", day_blank: "_d", dddd: "j", day_of_the_year: "j",
|
34
|
+
m: "m", month: "m", month_padded: "m", mm: "-m", Month: "-m",
|
35
|
+
month_unpadded: "-m", mmm: "_m", MONTH: "_m", month_blank: "_m", mmmm: "B",
|
36
|
+
month_name: "B", mmmmm: "b", month_name_abbr: "b", w: "u", weekday: "u",
|
37
|
+
ww: "w", weekday_offset: "w", www: "A", weekday_name: "A", wwww: "a",
|
38
|
+
weekday_name_abbr: "a", wwwww: "W", week: "W", wwwwww: "U", week_offset: "U",
|
39
|
+
yy: "y", yr: "y", yyyy: "Y", year: "Y", h: "H", hour: "H", hour_padded: "H",
|
40
|
+
hh: "k", HOUR: "k", hour_blank: "k", hhh: "I", hour_imperical: "I",
|
41
|
+
hour_imperical_padded: "I", hhhh: "l", HOUR_IMPERICAL: "l",
|
42
|
+
hour_imperical_blank: "l", ampm: "P", meridian: "P", AMPM: "p",
|
43
|
+
MERIDIAN: "p", n: "M", minute: "M", s: "S", second: "S", z: "z",
|
44
|
+
time_zone: "z", zz: ":z", time_zone_offset: ":z", zzz: "::z",
|
45
|
+
time_zone_offset_full: "::z", zzzz: "Z", time_zone_name: "Z"
|
46
|
+
}
|
2
47
|
|
3
48
|
def format(string)
|
4
49
|
delimiters = string.scan(/\W+/)
|
5
50
|
formatters = string.scan(/[a-z0-9_]+/i)
|
6
51
|
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
-
'h' => 'H',
|
49
|
-
'hour' => 'H',
|
50
|
-
'hour_padded' => 'H',
|
51
|
-
'hh' => 'k',
|
52
|
-
'HOUR' => 'k',
|
53
|
-
'hour_blank' => 'k',
|
54
|
-
'hhh' => 'I',
|
55
|
-
'hour_imperical' => 'I',
|
56
|
-
'hour_imperical_padded' => 'I',
|
57
|
-
'hhhh' => 'l',
|
58
|
-
'HOUR_IMPERICAL' => 'l',
|
59
|
-
'hour_imperical_blank' => 'l',
|
60
|
-
'ampm' => 'P',
|
61
|
-
'meridian' => 'P',
|
62
|
-
'AMPM' => 'p',
|
63
|
-
'MERIDIAN' => 'p',
|
64
|
-
'n' => 'M',
|
65
|
-
'minute' => 'M',
|
66
|
-
's' => 'S',
|
67
|
-
'second' => 'S',
|
68
|
-
'z' => 'z',
|
69
|
-
'time_zone' => 'z',
|
70
|
-
'zz' => ':z',
|
71
|
-
'time_zone_offset' => ':z',
|
72
|
-
'zzz' => '::z',
|
73
|
-
'time_zone_offset_full' => '::z',
|
74
|
-
'zzzz' => 'Z',
|
75
|
-
'time_zone_name' => 'Z'
|
76
|
-
}.freeze
|
52
|
+
string = formatters.map do |unit|
|
53
|
+
"%#{STRING_UNITS.fetch(unit.to_sym)}#{delimiters.shift || ''}"
|
54
|
+
end
|
77
55
|
|
78
|
-
strftime(
|
56
|
+
strftime(string.join)
|
79
57
|
end
|
80
58
|
|
81
59
|
def to_format(key=:datetime_iso)
|
82
|
-
|
83
|
-
month: '%m',
|
84
|
-
month_padded: '%m',
|
85
|
-
month_unpadded: '%-m',
|
86
|
-
month_blank: '%_m',
|
87
|
-
month_name: '%B',
|
88
|
-
month_name_abbr: '%b',
|
89
|
-
month_year: '%m %Y',
|
90
|
-
month_padded_year: '%m %Y',
|
91
|
-
month_unpadded_year: '%-m %Y',
|
92
|
-
month_blank_year: '%_m %Y',
|
93
|
-
month_name_year: '%B %Y',
|
94
|
-
month_name_abbr_year: '%b %Y',
|
95
|
-
weekday: '%d',
|
96
|
-
weekday_padded: '%d',
|
97
|
-
weekday_unpadded: '%-d',
|
98
|
-
weekday_blank: '%_d',
|
99
|
-
weekday_name: '%A',
|
100
|
-
weekday_name_abbr: '%a',
|
101
|
-
yr: '%y',
|
102
|
-
year_abbr: '%y',
|
103
|
-
year: '%Y',
|
104
|
-
hour: '%H',
|
105
|
-
hour_padded: '%H',
|
106
|
-
hour_blank: '%k',
|
107
|
-
hour_imperical: '%I',
|
108
|
-
hour_imperical_padded: '%I',
|
109
|
-
hour_imperical_blank: '%l',
|
110
|
-
ampm: '%P',
|
111
|
-
meridian: '%P',
|
112
|
-
minute: '%M',
|
113
|
-
second: '%S',
|
114
|
-
time_zone: '%z',
|
115
|
-
time_zone_offset: '%:z',
|
116
|
-
time_zone_offset_full: '%::z',
|
117
|
-
time_zone_name: '%Z',
|
118
|
-
date: '%B %-d, %Y',
|
119
|
-
date_abbr: '%b %-d, %Y',
|
120
|
-
date_iso: '%Y-%m-%d',
|
121
|
-
datetime: '%B %-d, %Y %H:%M',
|
122
|
-
datetime_abbr: '%b %-d, %Y %H:%M',
|
123
|
-
datetime_iso: '%Y-%m-%d %H:%M',
|
124
|
-
datetime_imperical: '%B %-d, %Y %I:%M %P',
|
125
|
-
datetime_imperical_abbr: '%b %-d, %Y %I:%M %P',
|
126
|
-
datetime_imperical_iso: '%Y-%m-%d %I:%M %P',
|
127
|
-
datetime_tzn: '%B %-d, %Y %H:%M %Z',
|
128
|
-
datetime_abbr_tzn: '%b %-d, %Y %H:%M %Z',
|
129
|
-
datetime_iso_tzn: '%Y-%m-%d %H:%M %z',
|
130
|
-
datetime_imperical_tzn: '%B %-d, %Y %I:%M %P %Z',
|
131
|
-
datetime_imperical_abbr_tzn: '%b %-d, %Y %I:%M %P %Z',
|
132
|
-
datetime_imperical_iso_tzn: '%Y-%m-%d %I:%M %P %z',
|
133
|
-
day: '%B %-d',
|
134
|
-
day_abbr: '%b %-d',
|
135
|
-
day_iso: '%m-%d',
|
136
|
-
daytime: '%B %-d %H:%M',
|
137
|
-
daytime_abbr: '%b %-d %H:%M',
|
138
|
-
daytime_iso: '%m-%d %H:%M',
|
139
|
-
daytime_imperical: '%B %-d %I:%M %P',
|
140
|
-
daytime_imperical_abbr: '%b %-d %I:%M %P',
|
141
|
-
daytime_imperical_iso: '%m-%d %I:%M %P',
|
142
|
-
time: '%H:%M',
|
143
|
-
time_padded: '%H:%M',
|
144
|
-
time_blank: '%k:%M',
|
145
|
-
time_tz: '%H:%M %z',
|
146
|
-
time_tzn: '%H:%M %Z',
|
147
|
-
time_imperical: '%I:%M %P',
|
148
|
-
time_imperical_padded: '%I:%M %P',
|
149
|
-
time_imperical_blank: '%l:%M %P',
|
150
|
-
time_imperical_tz: '%I:%M %P %z',
|
151
|
-
time_imperical_tzn: '%I:%M %P %Z'
|
152
|
-
}.freeze
|
153
|
-
|
154
|
-
strftime(format_units.fetch(key.to_sym))
|
60
|
+
strftime(KEY_UNITS.fetch(key.to_sym))
|
155
61
|
end
|
156
62
|
|
157
63
|
alias_method :stamp, :to_format
|
158
64
|
|
159
|
-
end
|
65
|
+
end
|
66
|
+
|
67
|
+
Time.send(:include, ActiveObject::Time) if ActiveObject.configuration.autoload_time
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module ActiveObject
|
2
|
-
VERSION = "
|
3
|
-
end
|
2
|
+
VERSION = "3.0.0"
|
3
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
|
3
|
+
module ActiveObject
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path("../templates", __FILE__)
|
6
|
+
|
7
|
+
def copy_initializer_file
|
8
|
+
copy_file("install.rb", "config/initializers/active_object.rb")
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
ActiveObject.configure do |config|
|
2
|
+
config.autoload_array = true
|
3
|
+
config.autoload_date = true
|
4
|
+
config.autoload_enumerable = true
|
5
|
+
config.autoload_hash = true
|
6
|
+
config.autoload_integer = true
|
7
|
+
config.autoload_numeric = true
|
8
|
+
config.autoload_object = true
|
9
|
+
config.autoload_range = true
|
10
|
+
config.autoload_string = true
|
11
|
+
config.autoload_time = true
|
12
|
+
end
|
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:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 3.4.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: generator_spec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Class extensions of commonly used ruby object helpers.
|
70
84
|
email:
|
71
85
|
- j.gomez@drexed.com
|
@@ -88,6 +102,7 @@ files:
|
|
88
102
|
- bin/setup
|
89
103
|
- lib/active_object.rb
|
90
104
|
- lib/active_object/array.rb
|
105
|
+
- lib/active_object/configuration.rb
|
91
106
|
- lib/active_object/date.rb
|
92
107
|
- lib/active_object/enumerable.rb
|
93
108
|
- lib/active_object/hash.rb
|
@@ -98,7 +113,9 @@ files:
|
|
98
113
|
- lib/active_object/string.rb
|
99
114
|
- lib/active_object/time.rb
|
100
115
|
- lib/active_object/version.rb
|
101
|
-
|
116
|
+
- lib/generators/active_object/install_generator.rb
|
117
|
+
- lib/generators/active_object/templates/install.rb
|
118
|
+
homepage: http://drexed.github.io/active_object
|
102
119
|
licenses:
|
103
120
|
- MIT
|
104
121
|
metadata: {}
|
@@ -118,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
135
|
version: '0'
|
119
136
|
requirements: []
|
120
137
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.6.
|
138
|
+
rubygems_version: 2.6.4
|
122
139
|
signing_key:
|
123
140
|
specification_version: 4
|
124
141
|
summary: Gem for commonly used ruby object helpers.
|