1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot.git synced 2022-11-09 11:43:51 -05:00

Arrest lines of an unsavory length

We had configured RuboCop to allow lines with up to 142 characters. This
PR fixes a few of the worst offenders so we can bring that number down
to 110.
This commit is contained in:
Daniel Colson 2018-12-12 11:05:13 -05:00
parent df761d7a48
commit cb9eb551c8
No known key found for this signature in database
GPG key ID: 88A364BBE77B1353
7 changed files with 40 additions and 9 deletions

View file

@ -25,4 +25,4 @@ Style/FormatStringToken:
# Let's not open a big PR to fix all of these at once -
# we can fix gradually if we happen to be editing a file that has a violation
Metrics/LineLength:
Max: 142
Max: 110

View file

@ -68,7 +68,11 @@ module FactoryBot
end
def attribute_names_to_assign
@attribute_names_to_assign ||= non_ignored_attribute_names + override_names - ignored_attribute_names - alias_names_to_ignore
@attribute_names_to_assign ||=
non_ignored_attribute_names +
override_names -
ignored_attribute_names -
alias_names_to_ignore
end
def non_ignored_attribute_names
@ -94,9 +98,15 @@ module FactoryBot
def alias_names_to_ignore
@attribute_list.non_ignored.flat_map do |attribute|
override_names.map do |override|
attribute.name if attribute.alias_for?(override) && attribute.name != override && !ignored_attribute_names.include?(override)
attribute.name if ignorable_alias?(attribute, override)
end
end.compact
end
def ignorable_alias?(attribute, override)
attribute.alias_for?(override) &&
attribute.name != override &&
!ignored_attribute_names.include?(override)
end
end
end

View file

@ -54,7 +54,8 @@ module FactoryBot
def ensure_attribute_not_self_referencing!(attribute)
if attribute.respond_to?(:factory) && attribute.factory == @name
raise AssociationDefinitionError, "Self-referencing association '#{attribute.name}' in '#{attribute.factory}'"
message = "Self-referencing association '#{attribute.name}' in '#{attribute.factory}'"
raise AssociationDefinitionError, message
end
end

View file

@ -1,6 +1,19 @@
module FactoryBot
class DefinitionProxy
UNPROXIED_METHODS = %w(__send__ __id__ nil? send object_id extend instance_eval initialize block_given? raise caller method).freeze
UNPROXIED_METHODS = %w(
__send__
__id__
nil?
send
object_id
extend
instance_eval
initialize
block_given?
raise
caller
method
).freeze
(instance_methods + private_instance_methods).each do |method|
undef_method(method) unless UNPROXIED_METHODS.include?(method.to_s)

View file

@ -61,7 +61,8 @@ module FactoryBot
DISABLED_PERSISTENCE_METHODS.each do |write_method|
define_singleton_method(write_method) do |*args|
raise "stubbed models are not allowed to access the database - #{self.class}##{write_method}(#{args.join(',')})"
raise "stubbed models are not allowed to access the database - "\
"#{self.class}##{write_method}(#{args.join(',')})"
end
end
end

View file

@ -46,7 +46,8 @@ describe "assigning overrides that are also private methods on object" do
its(:some_funky_method) { should eq "foobar!" }
end
describe "accessing methods from the instance within a dynamic attribute that is also a private method on object" do
describe "accessing methods from the instance within a dynamic attribute "\
"that is also a private method on object" do
before do
define_model("Website", more_format: :string) do
def format

View file

@ -2,7 +2,7 @@ describe "defining methods inside FactoryBot" do
it "raises with a meaningful message" do
define_model("User")
expect do
bad_factory_definition = -> do
FactoryBot.define do
factory :user do
def generate_name
@ -10,6 +10,11 @@ describe "defining methods inside FactoryBot" do
end
end
end
end.to raise_error FactoryBot::MethodDefinitionError, /Defining methods in blocks \(trait or factory\) is not supported \(generate_name\)/
end
expect(bad_factory_definition).to raise_error(
FactoryBot::MethodDefinitionError,
/Defining methods in blocks \(trait or factory\) is not supported \(generate_name\)/,
)
end
end