lib/blueprints/configuration.rb in blueprints-0.8.2 vs lib/blueprints/configuration.rb in blueprints-0.9.0

- old
+ new

@@ -1,35 +1,49 @@ module Blueprints + # Contains configuration of blueprints. Instance of this is yielded in Blueprints.enable block. + # @example Configuring through Blueprints.enable block + # Blueprints.enable do |config| + # config.prebuild = :user, :profile + # end + # @example Configuring directly + # Blueprints.config.transactions = false class Configuration - SUPPORTED_ORMS = [nil, :active_record] # Allows passing custom filename pattern in case blueprints are held in place other than spec/blueprint, test/blueprint, blueprint. attr_reader :filename # Allows passing scenarios that should be prebuilt and available in all tests. Works similarly to fixtures. attr_accessor :prebuild - # Allows passing custom root folder to use in case of non rails project. Defaults to RAILS_ROOT or current folder if RAILS_ROOT is not defined. + # Allows passing custom root folder to use in case of non rails project. Defaults to Rails.root or current folder if Rails is not defined. attr_reader :root # By default blueprints runs each test in it's own transaction. This may sometimes be not desirable so this options allows to turn this off. attr_accessor :transactions + # Default attributes are used when blueprints has no name specified. + attr_reader :default_attributes - # Sets default attributes for all attributes + # Initializes new Configuration object with default attributes. + # By defaults filename patterns are: blueprint.rb and blueprint/*.rb in spec, test and root directories. + # Also by default prebuildable blueprints list is empty, transactions are enabled and root is set to Rails.root or current directory. def initialize self.filename = [nil, "spec", "test"].map do |dir| ["blueprint"].map do |file| path = File.join([dir, file].compact) ["#{path}.rb", File.join(path, "*.rb")] end end.flatten - @orm = :active_record @prebuild = [] @transactions = true @root = defined?(Rails) ? Rails.root : Pathname.pwd + @default_attributes = [:name] end def filename=(value) @filename = Array(value).flatten.collect {|path| Pathname.new(path) } end def root=(value) @root = Pathname.new(value) + end + + def default_attributes=(value) + @default_attributes = Array(value) end end end