active_object 5.1.0 → 5.1.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
  SHA256:
3
- metadata.gz: db4420e56315c4ec5c59bee0605a3c7e42e4b95d215c6d416eff81053c0616b7
4
- data.tar.gz: 480a14837699de8b3a5668deb2056dfd50099a93d2b1bb5b96f1f18cd249a4f4
3
+ metadata.gz: 1e5a025441c17449f18ada0538a1f4d5868e2df1f929a96f9e3adc0e642ae524
4
+ data.tar.gz: 4dbbe184e2a7169daf55b0c206f8e180aa08d4a90497097b9ed4830ccc2ac9a4
5
5
  SHA512:
6
- metadata.gz: 82d12d4ed263ce5a9d346c7ea22446758c515b59740a85f3bf99d78a97108e1df73c22ebb447562a6ad874618574bd3009486872ad5aa5b1a707180d526a0715
7
- data.tar.gz: fc7118f98b569c4afa4ad3808a20249750093db1d56ad18575bb86bde1694a0b4242ed99fc885f350b8083b5c582c32d95babfc0f951fd36feaee423be587c2b
6
+ metadata.gz: da9fb07ca6a6dcc538ae1653a9d1f1047736c39c0dc5784b7c5bf838f6983f1b856ed1e0d5b107abfed60cff6fdb434bb2c6fe0a01c243e7222f8aed869644d7
7
+ data.tar.gz: 16f434b4285fc300f07a5e9446731c1004654057dcd21517771e8b36585e6ad2eb0a65e7ca44bac36d5101e814bd99297122abe50c0bc887f6ad042876fecda3
data/.reek CHANGED
@@ -25,10 +25,14 @@ RepeatedConditional:
25
25
  enabled: false
26
26
  TooManyConstants:
27
27
  enabled: false
28
+ TooManyInstanceVariables:
29
+ exclude:
30
+ - 'ActiveObject::Configuration'
28
31
  TooManyStatements:
29
32
  max_statements: 10
30
33
  exclude:
31
34
  - 'ActiveObject::Array#in_groups'
35
+ - 'ActiveObject::Configuration#initialize'
32
36
  UncommunicativeVariableName:
33
37
  accept:
34
38
  - !ruby/regexp /^.$/
data/.rubocop.yml CHANGED
@@ -4,13 +4,15 @@ AllCops:
4
4
  TargetRubyVersion: 2.4
5
5
  Exclude:
6
6
  - 'spec/**/**/*'
7
+ Performance/RegexpMatch:
8
+ Enabled: false
7
9
  Layout/EmptyLinesAroundClassBody:
8
10
  Enabled: false
9
11
  Layout/EmptyLinesAroundModuleBody:
10
12
  Enabled: false
11
13
  LineLength:
12
14
  Max: 100
13
- Lint/RescueWithoutErrorClass:
15
+ Lint/OrderedMagicComments:
14
16
  Enabled: false
15
17
  Lint/ScriptPermission:
16
18
  Enabled: false
@@ -19,8 +21,12 @@ Metrics/ModuleLength:
19
21
  Style/Alias:
20
22
  EnforcedStyle: prefer_alias_method
21
23
  Style/ClassAndModuleChildren:
22
- EnforcedStyle: compact
24
+ Enabled: false
23
25
  Style/Documentation:
24
26
  Enabled: false
27
+ Style/ExpandPathArguments:
28
+ Enabled: false
25
29
  Style/RescueModifier:
26
30
  Enabled: false
31
+ Style/RescueStandardError:
32
+ Enabled: false
data/README.md CHANGED
@@ -147,6 +147,13 @@ end
147
147
  ['1', '2', '3'].from(-1) #=> ['3']
148
148
  ```
149
149
 
150
+ **Fulfill:**
151
+ `Fulfill` returns an array filled to given size.
152
+
153
+ ```ruby
154
+ ['1', '2'].fulfill('x', 4) #=> ['1', '2', 'x', 'x']
155
+ ```
156
+
150
157
  **Groups:**
151
158
  `groups` splits or iterates over the array in number of groups.
152
159
 
@@ -23,10 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ['lib']
24
24
 
25
25
  spec.add_development_dependency 'bundler'
26
- spec.add_development_dependency 'rake'
27
- spec.add_development_dependency 'rspec'
28
- spec.add_development_dependency 'generator_spec'
29
26
  spec.add_development_dependency 'fasterer'
27
+ spec.add_development_dependency 'generator_spec'
28
+ spec.add_development_dependency 'rake'
30
29
  spec.add_development_dependency 'reek'
30
+ spec.add_development_dependency 'rspec'
31
31
  spec.add_development_dependency 'rubocop'
32
32
  end
@@ -63,6 +63,12 @@ module ActiveObject
63
63
  self[position, length] || []
64
64
  end
65
65
 
66
+ def fulfill(value, number)
67
+ amount = (number - 1)
68
+ return self if amount <= length
69
+ fill(value, length..amount)
70
+ end
71
+
66
72
  def groups(number)
67
73
  return [] if number <= 0
68
74
 
@@ -7,6 +7,7 @@ module ActiveObject
7
7
  :autoload_integer, :autoload_kernel, :autoload_numeric, :autoload_object,
8
8
  :autoload_range, :autoload_string, :autoload_time
9
9
 
10
+ # rubocop:disable Metrics/MethodLength
10
11
  def initialize
11
12
  @autoload_array = true
12
13
  @autoload_date = true
@@ -20,6 +21,7 @@ module ActiveObject
20
21
  @autoload_string = true
21
22
  @autoload_time = true
22
23
  end
24
+ # rubocop:enable Metrics/MethodLength
23
25
 
24
26
  end
25
27
 
@@ -29,7 +29,8 @@ module ActiveObject
29
29
  month_name_abbr_year: '%b %Y', weekday: '%d', weekday_padded: '%d', weekday_unpadded: '%-d',
30
30
  weekday_blank: '%_d', weekday_name: '%A', weekday_name_abbr: '%a', yr: '%y', year_abbr: '%y',
31
31
  year: '%Y', date: '%B %-d, %Y', date_abbr: '%b %-d, %Y', date_iso: '%Y-%m-%d', day: '%B %-d',
32
- day_abbr: '%b %-d', sunday_week: '%U', monday_week: '%W', week_iso: '%V', week_year_iso: '%V-%G'
32
+ day_abbr: '%b %-d', sunday_week: '%U', monday_week: '%W', week_iso: '%V',
33
+ week_year_iso: '%V-%G'
33
34
  }.freeze
34
35
 
35
36
  def count_centuries_since(time)
@@ -145,6 +145,7 @@ if ActiveObject.configuration.autoload_enumerable
145
145
  end
146
146
  # rubocop:enable Style/CaseEquality
147
147
 
148
+ # rubocop:disable Metrics/MethodLength
148
149
  def interpose(sep, &block)
149
150
  enum = Enumerator.new do |val|
150
151
  items = each
@@ -168,6 +169,7 @@ if ActiveObject.configuration.autoload_enumerable
168
169
 
169
170
  block ? enum.each(&block) : enum
170
171
  end
172
+ # rubocop:enable Metrics/MethodLength
171
173
 
172
174
  def many?
173
175
  found_count = 0
@@ -217,7 +219,7 @@ if ActiveObject.configuration.autoload_enumerable
217
219
  return if frequency_top_two.length != 1 && top_two_first.last == frequency_top_two.last.last
218
220
  top_two_first.first
219
221
  end
220
- # rubocop:ensable Metrics/AbcSize
222
+ # rubocop:enable Metrics/AbcSize
221
223
 
222
224
  def multiple(identity = 0, &block)
223
225
  if block_given?
@@ -227,7 +229,7 @@ if ActiveObject.configuration.autoload_enumerable
227
229
  end
228
230
  end
229
231
 
230
- # rubocop:disable Metrics/MethodLength
232
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
231
233
  def percentile(num, identity = 0)
232
234
  return identity unless length.positive?
233
235
 
@@ -244,7 +246,7 @@ if ActiveObject.configuration.autoload_enumerable
244
246
  collection_sorted[rank - 1]
245
247
  end
246
248
  end
247
- # rubocop:enable Metrics/MethodLength
249
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
248
250
 
249
251
  def range(identity = 0)
250
252
  return identity unless length.positive?
@@ -107,7 +107,9 @@ module ActiveObject
107
107
  end
108
108
 
109
109
  def nillify!
110
- each { |key, val| self[key] = nil if !val.nil? && (val.try(:blank?) || val.try(:to_s).blank?) }
110
+ each do |key, val|
111
+ self[key] = nil if !val.nil? && (val.try(:blank?) || val.try(:to_s).blank?)
112
+ end
111
113
  end
112
114
 
113
115
  def only(*keys)
@@ -5,9 +5,11 @@ if ActiveObject.configuration.autoload_kernel
5
5
 
6
6
  private
7
7
 
8
+ # rubocop:disable Style/PerlBackrefs
8
9
  def caller_name
9
- caller[0] =~ /`([^']*)'/ and $1
10
+ caller(1..1).first =~ /`([^']*)'/ && $1
10
11
  end
12
+ # rubocop:enable Style/PerlBackrefs
11
13
 
12
14
  end
13
15
  end
@@ -32,8 +32,8 @@ module ActiveObject
32
32
  MILLENNIUM ||= CENTURY * 10.0
33
33
 
34
34
  BYTE_KEYS ||= %i[
35
- byte bytes kilobyte kilobytes megabyte megabytes gigabyte gigabytes terabyte terabytes petabyte
36
- petabytes exabyte exabytes
35
+ byte bytes kilobyte kilobytes megabyte megabytes gigabyte gigabytes terabyte terabytes
36
+ petabyte petabytes exabyte exabytes
37
37
  ].freeze
38
38
  LENGTH_KEYS ||= {
39
39
  metric: %i[
@@ -454,7 +454,8 @@ module ActiveObject
454
454
  else
455
455
  to_f * ((1.send("#{from}_in_inches").to_f * 0.0254) / 1.send("#{to}_in_meters").to_f)
456
456
  end
457
- when :inch, :inches, :foot, :feet, :yard, :yards, :mile, :miles, :nautical_mile, :nautical_miles
457
+ when :inch, :inches, :foot, :feet, :yard, :yards, :mile, :miles, :nautical_mile,
458
+ :nautical_miles
458
459
  if metrics_included_from
459
460
  to_f * ((1.send("#{from}_in_meters").to_f * 39.3701) / 1.send("#{to}_in_inches").to_f)
460
461
  else
@@ -330,7 +330,7 @@ module ActiveObject
330
330
  sep = options[:separator] || /\s+/
331
331
  sep = ::Regexp.escape(sep.to_s) unless sep.is_a(Regexp)
332
332
 
333
- return self unless self =~ /\A((?:.+?#{sep}){#{words_count - 1}}.+?)#{sep}.*/m
333
+ return self unless self =~ /\A((?:.+?#{sep}){#{words_count - 1}}.+?)#{sep}.*/m
334
334
 
335
335
  "#{::Regexp.last_match(1)}#{options[:omissio] || '...'}"
336
336
  end
@@ -27,26 +27,28 @@ module ActiveObject
27
27
  datetime_imperical_iso: '%Y-%m-%d %I:%M %P', datetime_tzn: '%B %-d, %Y %H:%M %Z',
28
28
  datetime_abbr_tzn: '%b %-d, %Y %H:%M %Z', datetime_iso_tzn: '%Y-%m-%d %H:%M %z',
29
29
  datetime_imperical_tzn: '%B %-d, %Y %I:%M %P %Z', day: '%B %-d', day_abbr: '%b %-d',
30
- datetime_imperical_abbr_tzn: '%b %-d, %Y %I:%M %P %Z', time_tz: '%H:%M %z', time_blank: '%k:%M',
31
- datetime_imperical_iso_tzn: '%Y-%m-%d %I:%M %P %z', day_iso: '%m-%d', daytime: '%B %-d %H:%M',
32
- daytime_abbr: '%b %-d %H:%M', daytime_iso: '%m-%d %H:%M', daytime_imperical: '%B %-d %I:%M %P',
33
- daytime_imperical_abbr: '%b %-d %I:%M %P', daytime_imperical_iso: '%m-%d %I:%M %P',
34
- time_imperical_padded: '%I:%M %P', time_imperical_blank: '%l:%M %P',
35
- time_imperical_tz: '%I:%M %P %z', time_imperical_tzn: '%I:%M %P %Z', sunday_week: '%U',
36
- monday_week: '%W', week_iso: '%V', week_year_iso: '%V-%G'
30
+ datetime_imperical_abbr_tzn: '%b %-d, %Y %I:%M %P %Z', time_tz: '%H:%M %z',
31
+ time_blank: '%k:%M', datetime_imperical_iso_tzn: '%Y-%m-%d %I:%M %P %z', day_iso: '%m-%d',
32
+ daytime: '%B %-d %H:%M', daytime_abbr: '%b %-d %H:%M', daytime_iso: '%m-%d %H:%M',
33
+ daytime_imperical: '%B %-d %I:%M %P', daytime_imperical_abbr: '%b %-d %I:%M %P',
34
+ daytime_imperical_iso: '%m-%d %I:%M %P', time_imperical_padded: '%I:%M %P',
35
+ time_imperical_blank: '%l:%M %P', time_imperical_tz: '%I:%M %P %z',
36
+ time_imperical_tzn: '%I:%M %P %Z', sunday_week: '%U', monday_week: '%W', week_iso: '%V',
37
+ week_year_iso: '%V-%G'
37
38
  }.freeze
38
39
  STRING_UNITS ||= {
39
- d: 'd', day: 'd', day_padded: 'd', dd: '-d', Day: '-d', day_unpadded: '-d', ddd: '_d', zz: ':z',
40
- DAY: '_d', day_blank: '_d', dddd: 'j', day_of_the_year: 'j', m: 'm', month: 'm', hhhh: 'l',
41
- month_padded: 'm', mm: '-m', Month: '-m', month_unpadded: '-m', mmm: '_m', MONTH: '_m',
42
- month_blank: '_m', mmmm: 'B', month_name: 'B', mmmmm: 'b', month_name_abbr: 'b', w: 'u', z: 'z',
43
- weekday: 'u', ww: 'w', weekday_offset: 'w', www: 'A', weekday_name: 'A', wwww: 'a', yyyy: 'Y',
44
- weekday_name_abbr: 'a', yy: 'y', yr: 'y', year: 'Y', h: 'H', hour: 'H', hour_padded: 'H',
45
- hh: 'k', HOUR: 'k', hour_blank: 'k', hhh: 'I', hour_imperical: 'I', hour_imperical_padded: 'I',
46
- HOUR_IMPERICAL: 'l', hour_imperical_blank: 'l', ampm: 'P', meridian: 'P', AMPM: 'p',
47
- MERIDIAN: 'p', n: 'M', minute: 'M', s: 'S', second: 'S', time_zone: 'z', time_zone_offset: ':z',
48
- zzz: '::z', time_zone_offset_full: '::z', zzzz: 'Z', time_zone_name: 'Z', swe: 'U',
49
- sunday_week: 'U', mwe: 'W', monday_week: 'W', we: 'V', week: 'V'
40
+ d: 'd', day: 'd', day_padded: 'd', dd: '-d', Day: '-d', day_unpadded: '-d', ddd: '_d',
41
+ zz: ':z', DAY: '_d', day_blank: '_d', dddd: 'j', day_of_the_year: 'j', m: 'm', month: 'm',
42
+ hhhh: 'l', month_padded: 'm', mm: '-m', Month: '-m', month_unpadded: '-m', mmm: '_m',
43
+ MONTH: '_m', month_blank: '_m', mmmm: 'B', month_name: 'B', mmmmm: 'b', month_name_abbr: 'b',
44
+ w: 'u', z: 'z', weekday: 'u', ww: 'w', weekday_offset: 'w', www: 'A', weekday_name: 'A',
45
+ wwww: 'a', yyyy: 'Y', weekday_name_abbr: 'a', yy: 'y', yr: 'y', year: 'Y', h: 'H', hour: 'H',
46
+ hour_padded: 'H', hh: 'k', HOUR: 'k', hour_blank: 'k', hhh: 'I', hour_imperical: 'I',
47
+ hour_imperical_padded: 'I', HOUR_IMPERICAL: 'l', hour_imperical_blank: 'l', ampm: 'P',
48
+ meridian: 'P', AMPM: 'p', MERIDIAN: 'p', n: 'M', minute: 'M', s: 'S', second: 'S',
49
+ time_zone: 'z', time_zone_offset: ':z', zzz: '::z', time_zone_offset_full: '::z', zzzz: 'Z',
50
+ time_zone_name: 'Z', swe: 'U', sunday_week: 'U', mwe: 'W', monday_week: 'W', we: 'V',
51
+ week: 'V'
50
52
  }.freeze
51
53
 
52
54
  def count_centuries_since(time)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveObject
4
- VERSION ||= '5.1.0'
4
+ VERSION ||= '5.1.1'
5
5
  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: 5.1.0
4
+ version: 5.1.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: 2017-12-07 00:00:00.000000000 Z
11
+ date: 2018-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: fasterer
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: generator_spec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: generator_spec
56
+ name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: fasterer
70
+ name: reek
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: reek
84
+ name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  version: '0'
170
170
  requirements: []
171
171
  rubyforge_project:
172
- rubygems_version: 2.7.3
172
+ rubygems_version: 2.7.6
173
173
  signing_key:
174
174
  specification_version: 4
175
175
  summary: Gem for commonly used ruby object helpers.