Skip to content

Commit 2cdf762

Browse files
author
Ricard Forniol
committed
Fix rubocop errors
1 parent d53a1f8 commit 2cdf762

File tree

10 files changed

+80
-70
lines changed

10 files changed

+80
-70
lines changed

Gemfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ source "http://rubygems.org"
33
gemspec
44

55
group :test do
6-
gem 'rspec'
76
gem "codeclimate-test-reporter", require: nil
8-
gem 'database_cleaner'
9-
gem 'mongoid-rspec'
7+
gem "database_cleaner"
8+
gem "mongoid-rspec"
9+
gem "rspec"
1010
end

lib/mongoid/token.rb

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ def resolvers
2424
end
2525

2626
private
27+
2728
def add_token_field_and_index(options)
28-
self.field options.field_name, :type => String, :default => default_value(options)
29-
self.index({ options.field_name => 1 }, { :unique => true, :sparse => true })
29+
field options.field_name, type: String, default: default_value(options)
30+
index({ options.field_name => 1 }, unique: true, sparse: true)
3031
end
3132

3233
def add_token_collision_resolver(options)
@@ -55,24 +56,26 @@ def set_token_callbacks(options)
5556
end
5657

5758
def override_to_param(options)
58-
self.send(:define_method, :to_param) do
59-
self.send(options.field_name) || super()
59+
send(:define_method, :to_param) do
60+
send(options.field_name) || super()
6061
end
6162
end
6263

6364
def default_value(options)
64-
options.generate_on_init && Mongoid::Token::Generator.generate(options.pattern) || nil
65+
options.generate_on_init &&
66+
Mongoid::Token::Generator.generate(options.pattern) || nil
6567
end
6668
end
6769

6870
protected
71+
6972
def create_token(field_name, pattern)
70-
self.send :"#{field_name.to_s}=", self.generate_token(pattern)
73+
send :"#{field_name}=", generate_token(pattern)
7174
end
7275

7376
def create_token_if_nil(field_name, pattern)
7477
if self[field_name.to_sym].blank?
75-
self.create_token field_name, pattern
78+
create_token field_name, pattern
7679
end
7780
end
7881

lib/mongoid/token/collision_retries_exceeded.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ def initialize(resource = "unknown resource", attempts = "unspecified")
77
end
88

99
def to_s
10-
"Failed to generate unique token for #{@resource} after #{@attempts} attempts."
10+
"Failed to generate unique token for #{@resource} after #{@attempts} "\
11+
"attempts."
1112
end
1213
end
1314
end

lib/mongoid/token/collisions.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def resolve_token_collisions
1010
duplicate_token_error?(e, self, r.field_name)
1111
end.first
1212
raise e unless resolver
13+
1314
retries ||= resolver.retry_count
1415
if (retries -= 1) >= 0
1516
resolver.create_new_token_for(self)
@@ -21,12 +22,16 @@ def resolve_token_collisions
2122
end
2223

2324
def raise_collision_retries_exceeded_error(field_name, retry_count)
24-
Rails.logger.warn "[Mongoid::Token] Warning: Maximum token generation retries (#{retry_count}) exceeded on `#{field_name}'." if defined?(Rails)
25+
if defined?(Rails)
26+
Rails.logger.warn "[Mongoid::Token] Warning: Maximum token "\
27+
"generation retries (#{retry_count}) exceeded on "\
28+
"`#{field_name}'."
29+
end
2530
raise Mongoid::Token::CollisionRetriesExceeded.new(self, retry_count)
2631
end
2732

2833
def duplicate_token_error?(err, document, field_name)
29-
[11000, 11001].include?(err.code) &&
34+
[11_000, 11_001].include?(err.code) &&
3035
err.message =~ /dup key/ &&
3136
err.message =~ /"#{document.send(field_name)}"/ &&
3237
true

lib/mongoid/token/finders.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ def self.define_custom_token_finder_for(klass, field_name = :token)
66
if token.is_a?(Array)
77
self.in field_name.to_sym => token
88
else
9-
self.find_by field_name.to_sym => token
9+
find_by field_name.to_sym => token
1010
end
1111
end
1212
end

lib/mongoid/token/generator.rb

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,73 +7,73 @@
77
# %w - upper and lower alpha character
88
# %p - URL-safe punctuation
99
#
10-
# Any pattern can be followed by a number, representing how many of that type to generate
10+
# Any pattern can be followed by a number, representing how many of that type
11+
# to generate
1112

1213
module Mongoid
1314
module Token
1415
module Generator
1516
REPLACE_PATTERN = /%((?<character>[cCdDhHpsw]{1})(?<length>\d+(,\d+)?)?)/
17+
TYPES = {
18+
c: ->(length) { down_character(length) },
19+
C: ->(length) { up_character(length) },
20+
d: ->(length) { digits(length) },
21+
D: ->(length) { integer(length) },
22+
h: ->(length) { digits(length, 16) },
23+
H: ->(length) { integer(length, 16) },
24+
s: ->(length) { alphanumeric(length) },
25+
w: ->(length) { alpha(length) },
26+
p: ->(_length) { "-" }
27+
}.freeze
1628

1729
def self.generate(pattern)
18-
pattern.gsub REPLACE_PATTERN do |match|
19-
match_data = $~
20-
type = match_data[:character]
21-
length = [match_data[:length].to_i, 1].max
30+
pattern.gsub REPLACE_PATTERN do
31+
match = $~
32+
type = match[:character]
33+
length = [match[:length].to_i, 1].max
2234

23-
case type
24-
when 'c'
25-
down_character(length)
26-
when 'C'
27-
up_character(length)
28-
when 'd'
29-
digits(length)
30-
when 'D'
31-
integer(length)
32-
when 'h'
33-
digits(length, 16)
34-
when 'H'
35-
integer(length, 16)
36-
when 's'
37-
alphanumeric(length)
38-
when 'w'
39-
alpha(length)
40-
when 'p'
41-
"-"
42-
end
35+
TYPES[type.to_sym].call(length)
4336
end
4437
end
4538

46-
private
4739
def self.rand_string_from_chars(chars, length = 1)
48-
Array.new(length).map{ chars.sample }.join
40+
Array.new(length).map { chars.sample }.join
4941
end
5042

5143
def self.down_character(length = 1)
52-
self.rand_string_from_chars ('a'..'z').to_a, length
44+
rand_string_from_chars ("a".."z").to_a, length
5345
end
5446

5547
def self.up_character(length = 1)
56-
self.rand_string_from_chars ('A'..'Z').to_a, length
48+
rand_string_from_chars ("A".."Z").to_a, length
5749
end
5850

5951
def self.integer(length = 1, base = 10)
60-
(rand(base**length - base**(length-1)) + base**(length-1)).to_s(base)
52+
(rand(base**length - base**(length - 1)) + base**(length - 1)).
53+
to_s(base)
6154
end
6255

6356
def self.digits(length = 1, base = 10)
6457
rand(base**length).to_s(base).rjust(length, "0")
6558
end
6659

6760
def self.alpha(length = 1)
68-
self.rand_string_from_chars (('A'..'Z').to_a + ('a'..'z').to_a), length
61+
rand_string_from_chars (("A".."Z").to_a + ("a".."z").to_a), length
6962
end
7063

7164
def self.alphanumeric(length = 1)
72-
(1..length).collect { (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61 ))).chr }.join
65+
(1..length).map do
66+
i = Kernel.rand(62)
67+
if i < 10
68+
i + 48
69+
else
70+
i + (i < 36 ? 55 : 61)
71+
end.chr
72+
end.join
7373
end
7474

7575
def self.punctuation(length = 1)
76-
self.rand_string_from_chars ['.','-','_','=','+','$'], length
76+
rand_string_from_chars %w[. - _ = + $], length
7777
end
7878
end
7979
end

lib/mongoid/token/options.rb

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
module Mongoid
22
module Token
33
class Options
4+
PATTERNS = {
5+
alphanumeric: ->(length) { "%s#{length}" },
6+
alpha: ->(length) { "%w#{length}" },
7+
alpha_upper: ->(length) { "%C#{length}" },
8+
alpha_lower: ->(length) { "%c#{length}" },
9+
numeric: ->(length) { "%d1,#{length}" },
10+
fixed_numeric: ->(length) { "%d#{length}" },
11+
fixed_numeric_no_leading_zeros: ->(length) { "%D#{length}" },
12+
fixed_hex_numeric: ->(length) { "%h#{length}" },
13+
fixed_hex_numeric_no_leading_zeros: ->(length) { "%H#{length}" }
14+
}.freeze
15+
416
def initialize(options = {})
517
@options = merge_defaults validate_options(options)
618
end
@@ -34,32 +46,17 @@ def generate_on_init
3446
end
3547

3648
def pattern
37-
@options[:pattern] ||= case @options[:contains].to_sym
38-
when :alphanumeric
39-
"%s#{@options[:length]}"
40-
when :alpha
41-
"%w#{@options[:length]}"
42-
when :alpha_upper
43-
"%C#{@options[:length]}"
44-
when :alpha_lower
45-
"%c#{@options[:length]}"
46-
when :numeric
47-
"%d1,#{@options[:length]}"
48-
when :fixed_numeric
49-
"%d#{@options[:length]}"
50-
when :fixed_numeric_no_leading_zeros
51-
"%D#{@options[:length]}"
52-
when :fixed_hex_numeric
53-
"%h#{@options[:length]}"
54-
when :fixed_hex_numeric_no_leading_zeros
55-
"%H#{@options[:length]}"
56-
end
49+
@options[:pattern] ||=
50+
PATTERNS[@options[:contains]].call(@options[:length])
5751
end
5852

5953
private
54+
6055
def validate_options(options)
61-
if options.has_key?(:retry)
62-
STDERR.puts "Mongoid::Token Deprecation Warning: option `retry` has been renamed to `retry_count`. `:retry` will be removed in v2.1"
56+
if options.key?(:retry)
57+
warn "Mongoid::Token Deprecation Warning: option `retry` has "\
58+
"been renamed to `retry_count`. `:retry` will be "\
59+
"removed in v2.1"
6360
options[:retry_count] = options[:retry]
6461
end
6562
options

spec/mongoid/token/collisions_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
allow(document).to receive("token").and_return("tokenvalue123")
108108
allow(err).to(receive("message").and_return(message))
109109
end
110-
let(:err) { double('Mongo::Error::OperationFailure', code: 11000) }
110+
let(:err) { double('Mongo::Error::OperationFailure', code: 11_000) }
111111
subject { document.duplicate_token_error?(err, document, :token) }
112112

113113
context "mongodb version 2.6, 3.0" do

spec/mongoid/token_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: true
2+
13
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
24

35
describe Mongoid::Token do

spec/spec_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: true
2+
13
require "simplecov"
24
require "codeclimate-test-reporter"
35
SimpleCov.start

0 commit comments

Comments
 (0)