active_object 2.5.2 → 3.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.
@@ -1,159 +1,67 @@
1
- class Time
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
- 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
- '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(formatters.map { |f| "%#{format_units.fetch(f)}#{delimiters.shift || ''}" }.join)
56
+ strftime(string.join)
79
57
  end
80
58
 
81
59
  def to_format(key=:datetime_iso)
82
- format_units = {
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 = "2.5.2"
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: 2.5.2
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-03-30 00:00:00.000000000 Z
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
- homepage: https://github.com/drexed/active_object
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.2
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.