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.
@@ -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.