mongoid_enumerable 0.4.1 → 0.4.2

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: 18e17dfe853d6105ee28629168235d887a48e3c4bbb3c664e12fbbf498fecd29
4
- data.tar.gz: c8098cd06f3564632e66b2b3215364ccd7e4b3f76abfd7b38bc68ca906e8e793
3
+ metadata.gz: eea7a8187ca0baa94f1a246cad4ba93500e46177176da71d250e548bf344dc19
4
+ data.tar.gz: f4f94d1bb5eb15077d7681a8a475b444ca16ced8a09034f4d953ac5151702912
5
5
  SHA512:
6
- metadata.gz: 968163534163961a35c1fae3d38aa4d9c8df4540a8fda3748173abd7712ea789453ed79732c110b6d8fdf2d1d89bf273ec4b44387edc97fa394aad679d79034a
7
- data.tar.gz: d934f50160025fc5361f90fc8a7c4d6321ae958f5adec90d0cb15093845530c233e0d1a87d7a9a02c396b52c94e0dadde6b56d80b3e76ab4a90043447e226419
6
+ metadata.gz: 42eb07241e7d9211d929fe1cbc107020f87e8f48e5c1f1c08ec3ffac1690a479123659b25ee44e0e97fcf85a516d851df6f106ee69db2ce139dbf05ceda65883
7
+ data.tar.gz: f094c1e7ed54b3ede3a725f3c3cf55cf4b9fd4c50e726ee2d0e78879c576125d0f0c0b8da0f543ae638c15bfc9461de091af41863f004fbe501fe2750aa70f43
@@ -0,0 +1,21 @@
1
+ AllCops:
2
+ NewCops: disable
3
+
4
+ Style/StringLiterals:
5
+ EnforcedStyle: double_quotes
6
+
7
+ Style/Documentation:
8
+ Enabled: false
9
+
10
+ Metrics/BlockLength:
11
+ Exclude:
12
+ - 'spec/**/*'
13
+
14
+ Metrics/ParameterLists:
15
+ Max: 7
16
+
17
+ Layout/LineLength:
18
+ Max: 120
19
+
20
+ Metrics/MethodLength:
21
+ Max: 16
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
5
7
  # Specify your gem's dependencies in mongoid_enumerable.gemspec
6
8
  gemspec
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongoid_enumerable (0.4.1)
4
+ mongoid_enumerable (0.4.2)
5
5
  mongoid (>= 4.0)
6
6
 
7
7
  GEM
@@ -15,6 +15,7 @@ GEM
15
15
  minitest (~> 5.1)
16
16
  tzinfo (~> 1.1)
17
17
  zeitwerk (~> 2.2)
18
+ ast (2.4.0)
18
19
  bson (4.8.2)
19
20
  byebug (11.1.1)
20
21
  coderay (1.1.2)
@@ -39,6 +40,7 @@ GEM
39
40
  rspec (>= 2.99.0, < 4.0)
40
41
  i18n (1.8.2)
41
42
  concurrent-ruby (~> 1.0)
43
+ jaro_winkler (1.5.4)
42
44
  listen (3.2.1)
43
45
  rb-fsevent (~> 0.10, >= 0.10.3)
44
46
  rb-inotify (~> 0.9, >= 0.9.10)
@@ -54,13 +56,18 @@ GEM
54
56
  notiffany (0.1.3)
55
57
  nenv (~> 0.1)
56
58
  shellany (~> 0.0)
59
+ parallel (1.19.1)
60
+ parser (2.7.1.2)
61
+ ast (~> 2.4.0)
57
62
  pry (0.13.1)
58
63
  coderay (~> 1.1)
59
64
  method_source (~> 1.0)
65
+ rainbow (3.0.0)
60
66
  rake (13.0.1)
61
67
  rb-fsevent (0.10.3)
62
68
  rb-inotify (0.10.1)
63
69
  ffi (~> 1.0)
70
+ rexml (3.2.4)
64
71
  rspec (3.9.0)
65
72
  rspec-core (~> 3.9.0)
66
73
  rspec-expectations (~> 3.9.0)
@@ -77,6 +84,15 @@ GEM
77
84
  rspec (>= 3)
78
85
  terminal-notifier (>= 1.4)
79
86
  rspec-support (3.9.2)
87
+ rubocop (0.82.0)
88
+ jaro_winkler (~> 1.5.1)
89
+ parallel (~> 1.10)
90
+ parser (>= 2.7.0.1)
91
+ rainbow (>= 2.2.2, < 4.0)
92
+ rexml
93
+ ruby-progressbar (~> 1.7)
94
+ unicode-display_width (>= 1.4.0, < 2.0)
95
+ ruby-progressbar (1.10.1)
80
96
  shellany (0.0.1)
81
97
  simplecov (0.18.5)
82
98
  docile (~> 1.1)
@@ -87,6 +103,7 @@ GEM
87
103
  thread_safe (0.3.6)
88
104
  tzinfo (1.2.7)
89
105
  thread_safe (~> 0.1)
106
+ unicode-display_width (1.7.0)
90
107
  zeitwerk (2.3.0)
91
108
 
92
109
  PLATFORMS
@@ -102,6 +119,7 @@ DEPENDENCIES
102
119
  rake (~> 13.0)
103
120
  rspec (~> 3.0)
104
121
  rspec-nc
122
+ rubocop
105
123
  simplecov
106
124
 
107
125
  BUNDLED WITH
data/Guardfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # A sample Guardfile
2
4
  # More info at https://github.com/guard/guard#readme
3
5
 
@@ -28,8 +30,6 @@ guard :rspec, cmd: "bundle exec rspec --format Nc --format documentation" do
28
30
  require "guard/rspec/dsl"
29
31
  dsl = Guard::RSpec::Dsl.new(self)
30
32
 
31
- # Feel free to open issues for suggestions and improvements
32
-
33
33
  # RSpec files
34
34
  rspec = dsl.rspec
35
35
  watch(rspec.spec_helper) { rspec.spec_dir }
@@ -39,32 +39,4 @@ guard :rspec, cmd: "bundle exec rspec --format Nc --format documentation" do
39
39
  # Ruby files
40
40
  ruby = dsl.ruby
41
41
  dsl.watch_spec_files_for(ruby.lib_files)
42
-
43
- # Rails files
44
- rails = dsl.rails(view_extensions: %w(erb haml slim))
45
- dsl.watch_spec_files_for(rails.app_files)
46
- dsl.watch_spec_files_for(rails.views)
47
-
48
- watch(rails.controllers) do |m|
49
- [
50
- rspec.spec.call("routing/#{m[1]}_routing"),
51
- rspec.spec.call("controllers/#{m[1]}_controller"),
52
- rspec.spec.call("acceptance/#{m[1]}")
53
- ]
54
- end
55
-
56
- # Rails config changes
57
- watch(rails.spec_helper) { rspec.spec_dir }
58
- watch(rails.routes) { "#{rspec.spec_dir}/routing" }
59
- watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
60
-
61
- # Capybara features specs
62
- watch(rails.view_dirs) { |m| rspec.spec.call("features/#{m[1]}") }
63
- watch(rails.layouts) { |m| rspec.spec.call("features/#{m[1]}") }
64
-
65
- # Turnip features and steps
66
- watch(%r{^spec/acceptance/(.+)\.feature$})
67
- watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
68
- Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
69
- end
70
42
  end
data/README.md CHANGED
@@ -37,7 +37,7 @@ class Task
37
37
  include Mongoid::Document
38
38
  include MongoidEnumerable
39
39
 
40
- enumerable :status, %w(completed running failed waiting), default: "waiting"
40
+ enumerable :status, %w[completed running failed waiting], default: "waiting"
41
41
  end
42
42
  ```
43
43
 
@@ -57,13 +57,13 @@ task.waiting? # false
57
57
  #### Default
58
58
  Defines which value is the default for new documents. If not specified the first value is used as default.
59
59
  ```ruby
60
- enumerable :status, %w(completed running failed waiting), default: "waiting"
60
+ enumerable :status, %w[completed running failed waiting], default: "waiting"
61
61
  ```
62
62
  #### Prefix
63
63
  You can define a prefix for your methods that could be useful if you have more than one enumerable with the same values.
64
64
  ```ruby
65
- enumerable :build_status, %w(completed running failed waiting), default: "waiting", prefix: "build_"
66
- enumerable :deploy_status, %w(completed running failed waiting), default: "waiting", prefix: "deploy_"
65
+ enumerable :build_status, %w[completed running failed waiting], default: "waiting", prefix: "build_"
66
+ enumerable :deploy_status, %w[completed running failed waiting], default: "waiting", prefix: "deploy_"
67
67
 
68
68
  task.build_completed?
69
69
  task.build_failed!
@@ -82,7 +82,7 @@ class Task
82
82
  include Mongoid::Document
83
83
  include MongoidEnumerable
84
84
 
85
- enumerable :status, %w(completed running failed waiting), default: "waiting", before_change: :can_status_change?
85
+ enumerable :status, %w[completed running failed waiting], default: "waiting", before_change: :can_status_change?
86
86
 
87
87
  def can_status_change?(old_value, new_value)
88
88
  new_value != "waiting"
@@ -108,7 +108,7 @@ class Task
108
108
  include Mongoid::Document
109
109
  include MongoidEnumerable
110
110
 
111
- enumerable :status, %w(completed running failed waiting),
111
+ enumerable :status, %w[completed running failed waiting],
112
112
  default: "waiting",
113
113
  after_change: :status_changed
114
114
 
data/Rakefile CHANGED
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rspec/core/rake_task"
5
+ require "rubocop/rake_task"
3
6
 
4
7
  RSpec::Core::RakeTask.new(:spec)
8
+ RuboCop::RakeTask.new(:linter)
5
9
 
6
- task :default => :spec
10
+ task default: %i[linter spec]
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "bundler/setup"
4
5
  require "mongoid_enumerable"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "mongoid_enumerable/version"
2
4
  require "mongoid"
3
5
 
@@ -6,8 +8,6 @@ module MongoidEnumerable
6
8
  define_enumerable_methods(model)
7
9
  end
8
10
 
9
- private
10
-
11
11
  def self.define_enumerable_methods(model)
12
12
  model.define_singleton_method :enumerable do |field_name, values, options = {}|
13
13
  MongoidEnumerable.define_enumerable_method(
@@ -48,24 +48,24 @@ module MongoidEnumerable
48
48
  value_before = send(field_name)
49
49
  value_after = value
50
50
 
51
- callback_result = run_callback(model: model, callback_method_name: before_change,
52
- value_before: value_before, value_after: value_after)
51
+ callback_result = run_callback(callback_method_name: before_change,
52
+ value_before: value_before, value_after: value_after)
53
53
 
54
54
  if callback_result
55
55
  update!(field_name => value)
56
- run_callback(model: model, callback_method_name: after_change,
57
- value_before: value_before, value_after: value_after)
56
+ run_callback(callback_method_name: after_change,
57
+ value_before: value_before, value_after: value_after)
58
58
  end
59
59
  end
60
60
 
61
- define_method("#{method_name}?") do
61
+ model.define_method("#{method_name}?") do
62
62
  send(field_name) == value
63
63
  end
64
64
 
65
65
  model.scope method_name, -> { where(field_name => value) }
66
66
  end
67
67
 
68
- def run_callback(model:, callback_method_name:, value_before:, value_after:)
68
+ def run_callback(callback_method_name:, value_before:, value_after:)
69
69
  if callback_method_name
70
70
  callback_method = method(callback_method_name)
71
71
  validate_callback_method(method: callback_method)
@@ -77,8 +77,8 @@ module MongoidEnumerable
77
77
  end
78
78
 
79
79
  def validate_callback_method(method:)
80
- if method.arity != 2 && method.arity >= 0
81
- raise "Method #{method.name} must receive two parameters: old_value and new_value"
82
- end
80
+ return if method.arity == 2 || method.arity.negative?
81
+
82
+ raise "Method #{method.name} must receive two parameters: old_value and new_value"
83
83
  end
84
84
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MongoidEnumerable
2
- VERSION = '0.4.1'
4
+ VERSION = "0.4.2"
3
5
  end
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
1
2
 
2
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path("lib", __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require "mongoid_enumerable/version"
5
6
 
@@ -9,8 +10,8 @@ Gem::Specification.new do |spec|
9
10
  spec.authors = ["Douglas Lise"]
10
11
  spec.email = ["douglaslise@gmail.com"]
11
12
 
12
- spec.summary = %q{Mongoid Enumerable}
13
- spec.description = %q{Mongoid Enumerable}
13
+ spec.summary = "Mongoid Enumerable"
14
+ spec.description = "Mongoid Enumerable"
14
15
  spec.homepage = "https://github.com/douglaslise/mongoid_enumerable"
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -21,13 +22,14 @@ Gem::Specification.new do |spec|
21
22
  spec.require_paths = ["lib"]
22
23
 
23
24
  spec.add_development_dependency "bundler"
24
- spec.add_development_dependency "rake", "~> 13.0"
25
- spec.add_development_dependency "rspec", "~> 3.0"
26
- spec.add_development_dependency "rspec-nc"
27
- spec.add_development_dependency "mongoid"
28
25
  spec.add_development_dependency "byebug"
29
26
  spec.add_development_dependency "guard"
30
27
  spec.add_development_dependency "guard-rspec"
28
+ spec.add_development_dependency "mongoid"
29
+ spec.add_development_dependency "rake", "~> 13.0"
30
+ spec.add_development_dependency "rspec", "~> 3.0"
31
+ spec.add_development_dependency "rspec-nc"
32
+ spec.add_development_dependency "rubocop"
31
33
  spec.add_dependency "mongoid", ">= 4.0"
32
34
  spec.add_development_dependency "simplecov"
33
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_enumerable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douglas Lise
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-24 00:00:00.000000000 Z
11
+ date: 2020-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,35 +25,35 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '13.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '13.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: guard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec-nc
56
+ name: guard-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -81,21 +81,35 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: byebug
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '13.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '13.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: guard
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec-nc
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -109,7 +123,7 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: guard-rspec
126
+ name: rubocop
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - ">="
@@ -159,6 +173,7 @@ extra_rdoc_files: []
159
173
  files:
160
174
  - ".gitignore"
161
175
  - ".rspec"
176
+ - ".rubocop.yml"
162
177
  - ".travis.yml"
163
178
  - Gemfile
164
179
  - Gemfile.lock