class MockleyCrew::FactoryBuilder
Attributes
errors[RW]
factory[RW]
options[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/mockley_crew/factory_builder.rb, line 5 def initialize params = {} raise Errors::InvalidDataError unless params.is_a? Hash raise Errors::InvalidDataError unless params.keys.include?("factory") @factory = params["factory"] unless MockleyCrew.configuration.registered_factory?(@factory.to_sym) @factory = @factory.singularize unless MockleyCrew.configuration.registered_factory?(@factory.to_sym) raise Errors::InvalidFactoryError end end params["options"] ||= {} params["options"].reverse_merge!( "amount" => 1, "attributes" => {} ) @options = params["options"] raise Errors::InvalidAmountError unless @options["amount"].to_i > 0 @errors = {} end
Public Instance Methods
save()
click to toggle source
# File lib/mockley_crew/factory_builder.rb, line 29 def save begin FactoryBot.create_list(@factory.to_sym, @options["amount"].to_i, @options["attributes"]) return true rescue NoMethodError => e self.errors[:attributes] = { message: "Invalid Attributes", detailed_error: e } rescue ActiveRecord::RecordInvalid => e self.errors[:attributes] = { message: "Model Validation Error", detailed_error: e } end return false end