active_regulation 3.0.0 → 4.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.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/.fasterer.yml +19 -0
- data/.reek +27 -0
- data/.rubocop.yml +38 -0
- data/Gemfile +1 -1
- data/README.md +13 -13
- data/Rakefile +1 -1
- data/active_regulation.gemspec +22 -19
- data/bin/console +4 -4
- data/bin/rake +6 -7
- data/config/locales/en.yml +12 -12
- data/lib/active_regulation/expiration.rb +5 -5
- data/lib/active_regulation/railtie.rb +21 -0
- data/lib/active_regulation/version.rb +1 -1
- data/lib/active_regulation.rb +2 -30
- metadata +49 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e7a0c19c6117f65aac59511995935748d9b5c87
|
4
|
+
data.tar.gz: 9f17c2f73de10abf7235f787a4de4aee274e57fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be3cccf34c5dd15aed77b9608dcccc18948c32418ca2b3a78cb0d4450889dee2fc7ec24cad223ac0949bda2782eb6cc5313a72ab9765d7b4958e51a350fd7074
|
7
|
+
data.tar.gz: 7c0fc3e4ae367827d349637e5af31c0c293496321c2b2e3503759915e59776596949ea9b221f6a7e7e3f69fc516acdfdc43e8c3ef2588f8ea0566df8cd59ac51
|
data/.DS_Store
ADDED
Binary file
|
data/.fasterer.yml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
speedups:
|
2
|
+
rescue_vs_respond_to: true
|
3
|
+
module_eval: true
|
4
|
+
shuffle_first_vs_sample: true
|
5
|
+
for_loop_vs_each: true
|
6
|
+
each_with_index_vs_while: false
|
7
|
+
map_flatten_vs_flat_map: true
|
8
|
+
reverse_each_vs_reverse_each: true
|
9
|
+
select_first_vs_detect: true
|
10
|
+
sort_vs_sort_by: true
|
11
|
+
fetch_with_argument_vs_block: true
|
12
|
+
keys_each_vs_each_key: true
|
13
|
+
hash_merge_bang_vs_hash_brackets: true
|
14
|
+
block_vs_symbol_to_proc: true
|
15
|
+
proc_call_vs_yield: true
|
16
|
+
gsub_vs_tr: true
|
17
|
+
select_last_vs_reverse_detect: true
|
18
|
+
getter_vs_attr_reader: true
|
19
|
+
setter_vs_attr_writer: true
|
data/.reek
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
Attribute:
|
3
|
+
enabled: false
|
4
|
+
BooleanParameter:
|
5
|
+
enabled: false
|
6
|
+
ControlParameter:
|
7
|
+
enabled: false
|
8
|
+
FeatureEnvy:
|
9
|
+
enabled: false
|
10
|
+
IrresponsibleModule:
|
11
|
+
enabled: false
|
12
|
+
LongParameterList:
|
13
|
+
enabled: false
|
14
|
+
ManualDispatch:
|
15
|
+
enabled: false
|
16
|
+
NestedIterators:
|
17
|
+
max_allowed_nesting: 2
|
18
|
+
NilCheck:
|
19
|
+
enabled: false
|
20
|
+
PrimaDonnaMethod:
|
21
|
+
enabled: false
|
22
|
+
RepeatedConditional:
|
23
|
+
enabled: false
|
24
|
+
TooManyStatements:
|
25
|
+
max_statements: 10
|
26
|
+
UtilityFunction:
|
27
|
+
enabled: false
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
AllCops:
|
2
|
+
DisplayCopNames: true
|
3
|
+
DisplayStyleGuide: true
|
4
|
+
TargetRubyVersion: 2.3
|
5
|
+
Exclude:
|
6
|
+
- 'spec/**/**/*'
|
7
|
+
LineLength:
|
8
|
+
Max: 100
|
9
|
+
Metrics/ClassLength:
|
10
|
+
Enabled: false
|
11
|
+
Metrics/ModuleLength:
|
12
|
+
Enabled: false
|
13
|
+
Style/Alias:
|
14
|
+
EnforcedStyle: prefer_alias_method
|
15
|
+
Style/BracesAroundHashParameters:
|
16
|
+
Enabled: false
|
17
|
+
Style/ClosingParenthesisIndentation:
|
18
|
+
Enabled: false
|
19
|
+
Style/Documentation:
|
20
|
+
Enabled: false
|
21
|
+
Style/EmptyLinesAroundBlockBody:
|
22
|
+
Enabled: false
|
23
|
+
Style/EmptyLinesAroundClassBody:
|
24
|
+
Enabled: false
|
25
|
+
Style/EmptyLinesAroundModuleBody:
|
26
|
+
Enabled: false
|
27
|
+
Style/HashSyntax:
|
28
|
+
Enabled: false
|
29
|
+
Style/FirstParameterIndentation:
|
30
|
+
Enabled: false
|
31
|
+
Style/FrozenStringLiteralComment:
|
32
|
+
Enabled: false
|
33
|
+
Style/MultilineMethodCallIndentation:
|
34
|
+
EnforcedStyle: aligned
|
35
|
+
Style/NumericLiterals:
|
36
|
+
Enabled: false
|
37
|
+
Style/RescueModifier:
|
38
|
+
Enabled: false
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -11,7 +11,7 @@ ActiveRegulation is a library for commonly used record states.
|
|
11
11
|
Add this line to your application's Gemfile:
|
12
12
|
|
13
13
|
```ruby
|
14
|
-
gem
|
14
|
+
gem 'active_regulation'
|
15
15
|
```
|
16
16
|
|
17
17
|
And then execute:
|
@@ -30,20 +30,20 @@ Or install it yourself as:
|
|
30
30
|
## Methods
|
31
31
|
|
32
32
|
**Modules:**
|
33
|
-
* activation
|
34
|
-
* containment
|
35
|
-
* expiration
|
36
|
-
* quarantine
|
37
|
-
* suspension
|
38
|
-
* visibility
|
33
|
+
* `activation`
|
34
|
+
* `containment`
|
35
|
+
* `expiration`
|
36
|
+
* `quarantine`
|
37
|
+
* `suspension`
|
38
|
+
* `visibility`
|
39
39
|
|
40
40
|
**Attributes:**
|
41
|
-
*
|
42
|
-
*
|
43
|
-
*
|
44
|
-
*
|
45
|
-
*
|
46
|
-
*
|
41
|
+
* `:inactivated_at`
|
42
|
+
* `:contained_at`
|
43
|
+
* `:expires_at`
|
44
|
+
* `:invisible_at`
|
45
|
+
* `:quarantined_at`
|
46
|
+
* `:suspended_at`
|
47
47
|
|
48
48
|
```ruby
|
49
49
|
class User < ActiveRecord::Base
|
data/Rakefile
CHANGED
data/active_regulation.gemspec
CHANGED
@@ -1,31 +1,34 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require 'active_regulation/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'active_regulation'
|
8
8
|
spec.version = ActiveRegulation::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Juan Gomez']
|
10
|
+
spec.email = ['j.gomez@drexed.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
12
|
+
spec.summary = 'Gem for commonly used record states.'
|
13
|
+
spec.description = 'Manage the states of records by commonly used attributes.'
|
14
|
+
spec.homepage = 'http://drexed.github.io/active_regulation'
|
15
|
+
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir =
|
18
|
+
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths =
|
20
|
+
spec.require_paths = %w(lib support)
|
21
21
|
|
22
|
-
spec.add_runtime_dependency
|
23
|
-
spec.add_runtime_dependency
|
22
|
+
spec.add_runtime_dependency 'activerecord'
|
23
|
+
spec.add_runtime_dependency 'activesupport'
|
24
24
|
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
25
|
+
spec.add_development_dependency 'bundler'
|
26
|
+
spec.add_development_dependency 'coveralls'
|
27
|
+
spec.add_development_dependency 'rake'
|
28
|
+
spec.add_development_dependency 'rspec'
|
29
|
+
spec.add_development_dependency 'sqlite3'
|
30
|
+
spec.add_development_dependency 'database_cleaner'
|
31
|
+
spec.add_development_dependency 'fasterer'
|
32
|
+
spec.add_development_dependency 'reek'
|
33
|
+
spec.add_development_dependency 'rubocop'
|
31
34
|
end
|
data/bin/console
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'active_regulation'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
8
8
|
|
9
9
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require
|
10
|
+
# require 'pry'
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start
|
data/bin/rake
CHANGED
@@ -2,15 +2,14 @@
|
|
2
2
|
#
|
3
3
|
# This file was generated by Bundler.
|
4
4
|
#
|
5
|
-
# The application
|
5
|
+
# The application 'rake' is installed as part of a gem, and
|
6
6
|
# this file is here to facilitate running it.
|
7
7
|
#
|
8
8
|
|
9
|
-
require
|
10
|
-
ENV[
|
11
|
-
Pathname.new(__FILE__).realpath)
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', Pathname.new(__FILE__).realpath)
|
12
11
|
|
13
|
-
require
|
14
|
-
require
|
12
|
+
require 'rubygems'
|
13
|
+
require 'bundler/setup'
|
15
14
|
|
16
|
-
load Gem.bin_path(
|
15
|
+
load Gem.bin_path('rake', 'rake')
|
data/config/locales/en.yml
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
en:
|
2
2
|
active_regulation:
|
3
3
|
activation:
|
4
|
-
active:
|
5
|
-
inactive:
|
4
|
+
active: 'Active'
|
5
|
+
inactive: 'Inactive'
|
6
6
|
containment:
|
7
|
-
contained:
|
8
|
-
uncontained:
|
7
|
+
contained: 'Contained'
|
8
|
+
uncontained: 'Uncontained'
|
9
9
|
expiration:
|
10
|
-
expired:
|
11
|
-
unexpired:
|
10
|
+
expired: 'Expired'
|
11
|
+
unexpired: 'Unexpired'
|
12
12
|
quarantine:
|
13
|
-
quarantined:
|
14
|
-
unquarantined:
|
13
|
+
quarantined: 'Quarantined'
|
14
|
+
unquarantined: 'Unquarantined'
|
15
15
|
suspension:
|
16
|
-
suspended:
|
17
|
-
unsuspended:
|
16
|
+
suspended: 'Suspended'
|
17
|
+
unsuspended: 'Unsuspended'
|
18
18
|
visibility:
|
19
|
-
invisible:
|
20
|
-
visible:
|
19
|
+
invisible: 'Invisible'
|
20
|
+
visible: 'Visible'
|
@@ -5,15 +5,15 @@ module ActiveRegulation
|
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
7
|
included do
|
8
|
-
scope :expired, -> { where(
|
9
|
-
scope :unexpired, -> { where(
|
8
|
+
scope :expired, -> { where('expires_at IS NULL OR expires_at < ?', Time.now) }
|
9
|
+
scope :unexpired, -> { where('expires_at IS NOT NULL AND expires_at >= ?', Time.now) }
|
10
10
|
end
|
11
11
|
|
12
12
|
def expire!
|
13
13
|
update(expires_at: nil) unless expires_at.nil?
|
14
14
|
end
|
15
15
|
|
16
|
-
def extend!(amount=nil)
|
16
|
+
def extend!(amount = nil)
|
17
17
|
update(expires_at: extension_date(amount))
|
18
18
|
end
|
19
19
|
|
@@ -29,7 +29,7 @@ module ActiveRegulation
|
|
29
29
|
expires_at.nil? ? false : (Time.now < expires_at)
|
30
30
|
end
|
31
31
|
|
32
|
-
def expires_at_or_time(amount=nil)
|
32
|
+
def expires_at_or_time(amount = nil)
|
33
33
|
expired? ? extension_date(amount) : expires_at
|
34
34
|
end
|
35
35
|
|
@@ -39,7 +39,7 @@ module ActiveRegulation
|
|
39
39
|
|
40
40
|
private
|
41
41
|
|
42
|
-
def extension_date(time=nil)
|
42
|
+
def extension_date(time = nil)
|
43
43
|
time = 30 if time.nil?
|
44
44
|
|
45
45
|
time.is_a?(Integer) ? (DateTime.now + time) : time
|
@@ -0,0 +1,21 @@
|
|
1
|
+
if defined?(Rails)
|
2
|
+
module ActiveRegulation
|
3
|
+
class Railtie < ::Rails::Railtie
|
4
|
+
|
5
|
+
initializer 'active_regulation' do |app|
|
6
|
+
ActiveRegulation::Railtie.instance_eval do
|
7
|
+
[app.config.i18n.available_locales].flatten.each do |locale|
|
8
|
+
(I18n.load_path << path(locale)) if File.file?(path(locale))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def path(locale)
|
16
|
+
File.expand_path("../../config/locales/#{locale}.yml", __FILE__)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/active_regulation.rb
CHANGED
@@ -1,31 +1,3 @@
|
|
1
|
-
|
2
|
-
require "active_regulation
|
3
|
-
require "active_regulation/containment"
|
4
|
-
require "active_regulation/expiration"
|
5
|
-
require "active_regulation/quarantine"
|
6
|
-
require "active_regulation/suspension"
|
7
|
-
require "active_regulation/visibility"
|
8
|
-
|
9
|
-
if defined?(Rails)
|
10
|
-
require "rails"
|
11
|
-
|
12
|
-
module ActiveRegulation
|
13
|
-
class Railtie < ::Rails::Railtie
|
14
|
-
|
15
|
-
initializer "active_regulation" do |app|
|
16
|
-
ActiveRegulation::Railtie.instance_eval do
|
17
|
-
[app.config.i18n.available_locales].flatten.each do |locale|
|
18
|
-
(I18n.load_path << path(locale)) if File.file?(path(locale))
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
protected
|
24
|
-
|
25
|
-
def self.path(locale)
|
26
|
-
File.expand_path("../../config/locales/#{locale}.yml", __FILE__)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
1
|
+
%w(version activation containment expiration quarantine suspension visibility).each do |file_name|
|
2
|
+
require "active_regulation/#{file_name}"
|
31
3
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_regulation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.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-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -122,6 +122,48 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: fasterer
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: reek
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
125
167
|
description: Manage the states of records by commonly used attributes.
|
126
168
|
email:
|
127
169
|
- j.gomez@drexed.com
|
@@ -129,9 +171,13 @@ executables: []
|
|
129
171
|
extensions: []
|
130
172
|
extra_rdoc_files: []
|
131
173
|
files:
|
174
|
+
- ".DS_Store"
|
132
175
|
- ".coveralls.yml"
|
176
|
+
- ".fasterer.yml"
|
133
177
|
- ".gitignore"
|
178
|
+
- ".reek"
|
134
179
|
- ".rspec"
|
180
|
+
- ".rubocop.yml"
|
135
181
|
- ".travis.yml"
|
136
182
|
- CODE_OF_CONDUCT.md
|
137
183
|
- Gemfile
|
@@ -147,6 +193,7 @@ files:
|
|
147
193
|
- lib/active_regulation/containment.rb
|
148
194
|
- lib/active_regulation/expiration.rb
|
149
195
|
- lib/active_regulation/quarantine.rb
|
196
|
+
- lib/active_regulation/railtie.rb
|
150
197
|
- lib/active_regulation/suspension.rb
|
151
198
|
- lib/active_regulation/version.rb
|
152
199
|
- lib/active_regulation/visibility.rb
|