cucumber_factory 1.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ doc
2
+ pkg
3
+ *.gem
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Henning Koch
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,40 @@
1
+ = Cucumber Factory - create ActiveRecord objects without step definitions
2
+
3
+ Cucumber Factory allows you to create ActiveRecord objects directly from your {Cucumber}[http://cukes.info/] features. No step definitions required.
4
+
5
+ == Installation
6
+
7
+ Install the gem:
8
+ sudo gem sources -a http://gems.github.com
9
+ sudo gem install makandra-cucumber_factory
10
+
11
+ Add the following to your <tt>Initializer.run</tt> block in your <tt>environment.rb</tt>:
12
+ config.gem 'makandra-cucumber_factory', :lib => 'cucumber_factory', :source => 'http://gems.github.com'
13
+
14
+ Create a step definition stub in <tt>features/step_definitions/factory_steps.rb</tt>, which just says
15
+ Cucumber::Factory.add_steps(self)
16
+
17
+ == Example
18
+
19
+ The following will call {Movie.make}[http://github.com/notahat/machinist/tree/master], Movie.create! or Movie.new, depending on what's available:
20
+ Given there is a movie
21
+
22
+ To create a new record with attributes set, you can say:
23
+ Given there is a movie with the title "Sunshine" and the year "2007"
24
+
25
+ The following will also store the created record in <tt>@sunshine</tt>:
26
+ Given "Sunshine" is a movie with the title "Sunshine" and the year "2007"
27
+
28
+ To set associations you can refer to other records by name:
29
+ Given "Before Sunrise" is a movie
30
+ And "Before Sunset" is a movie with the prequel "Before Sunrise"
31
+
32
+ You can also refer to the last created object of a kind by saying "above":
33
+ Given there is a movie with the title "Before Sunrise"
34
+ And "Before Sunset" is a movie with the prequel above
35
+
36
+ === Credits
37
+
38
+ Henning Koch
39
+
40
+ {www.makandra.de}[http://www.makandra.de/]
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ require 'rake'
2
+ # require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+ require 'spec/rake/spectask'
5
+
6
+ desc 'Default: Run all specs.'
7
+ task :default => :spec
8
+
9
+ desc "Run all specs"
10
+ Spec::Rake::SpecTask.new() do |t|
11
+ t.spec_opts = ['--options', "\"spec/spec.opts\""]
12
+ t.spec_files = FileList['spec/**/*_spec.rb']
13
+ end
14
+
15
+ desc 'Generate documentation for the aegis plugin.'
16
+ Rake::RDocTask.new(:rdoc) do |rdoc|
17
+ rdoc.rdoc_dir = 'rdoc'
18
+ rdoc.title = 'Aegis'
19
+ rdoc.options << '--line-numbers' << '--inline-source'
20
+ rdoc.rdoc_files.include('README')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
23
+
24
+ begin
25
+ require 'jeweler'
26
+ Jeweler::Tasks.new do |gemspec|
27
+ gemspec.name = "cucumber_factory"
28
+ gemspec.summary = "Create records from Cucumber features without writing step definitions."
29
+ gemspec.email = "github@makandra.de"
30
+ gemspec.homepage = "http://github.com/makandra/cucumber_factory"
31
+ gemspec.description = "Cucumber Factory allows you to create ActiveRecord models from your Cucumber features without writing step definitions for each model."
32
+ gemspec.authors = ["Henning Koch"]
33
+ end
34
+ rescue LoadError
35
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
36
+ end
37
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.1.7
@@ -0,0 +1,80 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{cucumber_factory}
5
+ s.version = "1.1.7"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Henning Koch"]
9
+ s.date = %q{2009-09-18}
10
+ s.description = %q{Cucumber Factory allows you to create ActiveRecord models from your Cucumber features without writing step definitions for each model.}
11
+ s.email = %q{github@makandra.de}
12
+ s.extra_rdoc_files = [
13
+ "README.rdoc"
14
+ ]
15
+ s.files = [
16
+ ".gitignore",
17
+ "MIT-LICENSE",
18
+ "README.rdoc",
19
+ "Rakefile",
20
+ "VERSION",
21
+ "cucumber_factory.gemspec",
22
+ "lib/cucumber_factory.rb",
23
+ "lib/cucumber_factory/factory.rb",
24
+ "spec/app_root/app/controllers/application_controller.rb",
25
+ "spec/app_root/app/models/movie.rb",
26
+ "spec/app_root/app/models/user.rb",
27
+ "spec/app_root/config/boot.rb",
28
+ "spec/app_root/config/database.yml",
29
+ "spec/app_root/config/environment.rb",
30
+ "spec/app_root/config/environments/in_memory.rb",
31
+ "spec/app_root/config/environments/mysql.rb",
32
+ "spec/app_root/config/environments/postgresql.rb",
33
+ "spec/app_root/config/environments/sqlite.rb",
34
+ "spec/app_root/config/environments/sqlite3.rb",
35
+ "spec/app_root/config/routes.rb",
36
+ "spec/app_root/db/migrate/001_create_movies.rb",
37
+ "spec/app_root/db/migrate/002_create_users.rb",
38
+ "spec/app_root/lib/console_with_fixtures.rb",
39
+ "spec/app_root/log/.gitignore",
40
+ "spec/app_root/script/console",
41
+ "spec/factory_spec.rb",
42
+ "spec/rcov.opts",
43
+ "spec/spec.opts",
44
+ "spec/spec_helper.rb"
45
+ ]
46
+ s.has_rdoc = true
47
+ s.homepage = %q{http://github.com/makandra/cucumber_factory}
48
+ s.rdoc_options = ["--charset=UTF-8"]
49
+ s.require_paths = ["lib"]
50
+ s.rubygems_version = %q{1.3.1}
51
+ s.summary = %q{Create records from Cucumber features without writing step definitions.}
52
+ s.test_files = [
53
+ "spec/app_root/app/models/movie.rb",
54
+ "spec/app_root/app/models/user.rb",
55
+ "spec/app_root/app/controllers/application_controller.rb",
56
+ "spec/app_root/config/environment.rb",
57
+ "spec/app_root/config/environments/mysql.rb",
58
+ "spec/app_root/config/environments/postgresql.rb",
59
+ "spec/app_root/config/environments/sqlite3.rb",
60
+ "spec/app_root/config/environments/in_memory.rb",
61
+ "spec/app_root/config/environments/sqlite.rb",
62
+ "spec/app_root/config/boot.rb",
63
+ "spec/app_root/config/routes.rb",
64
+ "spec/app_root/db/migrate/002_create_users.rb",
65
+ "spec/app_root/db/migrate/001_create_movies.rb",
66
+ "spec/app_root/lib/console_with_fixtures.rb",
67
+ "spec/factory_spec.rb",
68
+ "spec/spec_helper.rb"
69
+ ]
70
+
71
+ if s.respond_to? :specification_version then
72
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
73
+ s.specification_version = 2
74
+
75
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
76
+ else
77
+ end
78
+ else
79
+ end
80
+ end
@@ -0,0 +1,2 @@
1
+ # Include hook code here
2
+ require 'cucumber_factory/factory'
@@ -0,0 +1,83 @@
1
+ module Cucumber
2
+ module Factory
3
+
4
+ def self.add_steps(world)
5
+ steps.each do |step|
6
+ world.instance_eval do
7
+ Given(step[0], &step[1].bind(world))
8
+ end
9
+ end
10
+ end
11
+
12
+ def self.steps
13
+ [
14
+ [
15
+ /^"([^\"]*)" is a (.+?)( with the .+?)?$/,
16
+ lambda { |name, raw_model, raw_attributes| Cucumber::Factory.parse_named_creation(self, name, raw_model, raw_attributes) }
17
+ ],
18
+ [
19
+ /^there is a (.+?)( with the .+?)?$/,
20
+ lambda { |raw_model, raw_attributes| Cucumber::Factory.parse_creation(self, raw_model, raw_attributes) }
21
+ ]
22
+ ]
23
+ end
24
+
25
+ def self.parse(world, command)
26
+ command = command.sub(/^When |Given |Then /, "")
27
+ steps.each do |step|
28
+ match = step[0].match(command)
29
+ if match
30
+ step[1].bind(world).call(*match.captures)
31
+ return
32
+ end
33
+ end
34
+ raise "No step definition for: #{command}"
35
+ end
36
+
37
+ def self.parse_named_creation(world, name, raw_model, raw_attributes)
38
+ record = parse_creation(world, raw_model, raw_attributes)
39
+ variable = variable_name(name)
40
+ world.instance_variable_set variable, record
41
+ end
42
+
43
+ def self.parse_creation(world, raw_model, raw_attributes)
44
+ model_class = raw_model.camelize.constantize
45
+ attributes = {}
46
+ if raw_attributes.present? && raw_attributes.strip.present?
47
+ raw_attributes.scan(/(the|and|with| )+(.*?) ("([^\"]*)"|above)/).each do |fragment|
48
+ value = nil
49
+ attribute = fragment[1].gsub(" ", "_").to_sym
50
+ value_type = fragment[2] # 'above' or a quoted string
51
+ value = fragment[3]
52
+ association = model_class.reflect_on_association(attribute)
53
+ if association.present?
54
+ if value_type == "above"
55
+ value = association.klass.last or raise "There is no last #{attribute}"
56
+ else
57
+ value = world.instance_variable_get(variable_name(value))
58
+ end
59
+ end
60
+ attributes[attribute] = value
61
+ end
62
+ end
63
+ create_record(model_class, attributes)
64
+ end
65
+
66
+ def self.variable_name(prose)
67
+ name = prose.downcase.gsub(/[^a-z0-9_]+/, '_')
68
+ name = name.gsub(/^_+/, '').gsub(/_+$/, '')
69
+ name = "_#{name}" unless name.length >= 0 && name =~ /^[a-z]/
70
+ :"@#{name}"
71
+ end
72
+
73
+ private
74
+
75
+ def self.create_record(model_class, attributes)
76
+ create_method = [:make, :create!, :new].detect do |method_name|
77
+ model_class.respond_to? method_name
78
+ end
79
+ model_class.send(create_method, attributes)
80
+ end
81
+
82
+ end
83
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,6 @@
1
+ class Movie < ActiveRecord::Base
2
+
3
+ belongs_to :prequel, :class_name => "Movie"
4
+ belongs_to :reviewer, :class_name => "User"
5
+
6
+ end
@@ -0,0 +1,3 @@
1
+ class User < ActiveRecord::Base
2
+
3
+ end
@@ -0,0 +1,114 @@
1
+ # Allow customization of the rails framework path
2
+ RAILS_FRAMEWORK_ROOT = (ENV['RAILS_FRAMEWORK_ROOT'] || "#{File.dirname(__FILE__)}/../../../../../../vendor/rails") unless defined?(RAILS_FRAMEWORK_ROOT)
3
+
4
+ # Don't change this file!
5
+ # Configure your app in config/environment.rb and config/environments/*.rb
6
+
7
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
8
+
9
+ module Rails
10
+ class << self
11
+ def boot!
12
+ unless booted?
13
+ preinitialize
14
+ pick_boot.run
15
+ end
16
+ end
17
+
18
+ def booted?
19
+ defined? Rails::Initializer
20
+ end
21
+
22
+ def pick_boot
23
+ (vendor_rails? ? VendorBoot : GemBoot).new
24
+ end
25
+
26
+ def vendor_rails?
27
+ File.exist?(RAILS_FRAMEWORK_ROOT)
28
+ end
29
+
30
+ def preinitialize
31
+ load(preinitializer_path) if File.exist?(preinitializer_path)
32
+ end
33
+
34
+ def preinitializer_path
35
+ "#{RAILS_ROOT}/config/preinitializer.rb"
36
+ end
37
+ end
38
+
39
+ class Boot
40
+ def run
41
+ load_initializer
42
+ Rails::Initializer.run(:set_load_path)
43
+ end
44
+ end
45
+
46
+ class VendorBoot < Boot
47
+ def load_initializer
48
+ require "#{RAILS_FRAMEWORK_ROOT}/railties/lib/initializer"
49
+ Rails::Initializer.run(:install_gem_spec_stubs)
50
+ end
51
+ end
52
+
53
+ class GemBoot < Boot
54
+ def load_initializer
55
+ self.class.load_rubygems
56
+ load_rails_gem
57
+ require 'initializer'
58
+ end
59
+
60
+ def load_rails_gem
61
+ if version = self.class.gem_version
62
+ gem 'rails', version
63
+ else
64
+ gem 'rails'
65
+ end
66
+ rescue Gem::LoadError => load_error
67
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
68
+ exit 1
69
+ end
70
+
71
+ class << self
72
+ def rubygems_version
73
+ Gem::RubyGemsVersion rescue nil
74
+ end
75
+
76
+ def gem_version
77
+ if defined? RAILS_GEM_VERSION
78
+ RAILS_GEM_VERSION
79
+ elsif ENV.include?('RAILS_GEM_VERSION')
80
+ ENV['RAILS_GEM_VERSION']
81
+ else
82
+ parse_gem_version(read_environment_rb)
83
+ end
84
+ end
85
+
86
+ def load_rubygems
87
+ require 'rubygems'
88
+ min_version = '1.1.1'
89
+ unless rubygems_version >= min_version
90
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
91
+ exit 1
92
+ end
93
+
94
+ rescue LoadError
95
+ $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
96
+ exit 1
97
+ end
98
+
99
+ def parse_gem_version(text)
100
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
101
+ end
102
+
103
+ private
104
+ def read_environment_rb
105
+ environment_rb = "#{RAILS_ROOT}/config/environment.rb"
106
+ environment_rb = "#{HELPER_RAILS_ROOT}/config/environment.rb" unless File.exists?(environment_rb)
107
+ File.read(environment_rb)
108
+ end
109
+ end
110
+ end
111
+ end
112
+
113
+ # All that for this:
114
+ Rails.boot!
@@ -0,0 +1,21 @@
1
+ in_memory:
2
+ adapter: sqlite3
3
+ database: ":memory:"
4
+ verbosity: quiet
5
+ sqlite:
6
+ adapter: sqlite
7
+ dbfile: plugin_test.sqlite.db
8
+ sqlite3:
9
+ adapter: sqlite3
10
+ dbfile: plugin_test.sqlite3.db
11
+ postgresql:
12
+ adapter: postgresql
13
+ username: postgres
14
+ password: postgres
15
+ database: plugin_test
16
+ mysql:
17
+ adapter: mysql
18
+ host: localhost
19
+ username: root
20
+ password:
21
+ database: plugin_test
@@ -0,0 +1,14 @@
1
+ require File.join(File.dirname(__FILE__), 'boot')
2
+
3
+ Rails::Initializer.run do |config|
4
+ config.cache_classes = false
5
+ config.whiny_nils = true
6
+ config.action_controller.session = { :key => "_myapp_session", :secret => "gwirofjweroijger8924rt2zfwehfuiwehb1378rifowenfoqwphf23" }
7
+ config.plugin_locators.unshift(
8
+ Class.new(Rails::Plugin::Locator) do
9
+ def plugins
10
+ [Rails::Plugin.new(File.expand_path('.'))]
11
+ end
12
+ end
13
+ ) unless defined?(PluginTestHelper::PluginLocator)
14
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.connect ':controller/:action/:id'
3
+ map.connect ':controller/:action/:id.:format'
4
+ end
@@ -0,0 +1,17 @@
1
+ class CreateMovies < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :movies do |t|
5
+ t.string :title
6
+ t.integer :year
7
+ t.integer :prequel_id
8
+ t.integer :reviewer_id
9
+ t.integer :box_office_result
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :movies
15
+ end
16
+
17
+ end
@@ -0,0 +1,14 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table :users do |t|
5
+ t.string :email
6
+ t.string :name
7
+ end
8
+ end
9
+
10
+ def self.down
11
+ drop_table :users
12
+ end
13
+
14
+ end
@@ -0,0 +1,4 @@
1
+ # Loads fixtures into the database when running the test app via the console
2
+ (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(Rails.root, '../fixtures/*.{yml,csv}'))).each do |fixture_file|
3
+ Fixtures.create_fixtures(File.join(Rails.root, '../fixtures'), File.basename(fixture_file, '.*'))
4
+ end
@@ -0,0 +1 @@
1
+ *.log
@@ -0,0 +1,7 @@
1
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
2
+ libs = " -r irb/completion"
3
+ libs << " -r test/test_helper"
4
+ libs << " -r console_app"
5
+ libs << " -r console_with_helpers"
6
+ libs << " -r console_with_fixtures"
7
+ exec "#{irb} #{libs} --simple-prompt"
@@ -0,0 +1,72 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Cucumber::Factory do
4
+
5
+ describe 'add_steps' do
6
+
7
+ it "should add Given rules to the world" do
8
+ world = mock('world').as_null_object
9
+ world.should_receive(:Given).exactly(2).times
10
+ Cucumber::Factory.add_steps(world)
11
+ end
12
+
13
+ end
14
+
15
+ describe 'variable_name' do
16
+
17
+ it "should translate natural language to instance variable names" do
18
+ Cucumber::Factory.variable_name("movie").should == :'@movie'
19
+ Cucumber::Factory.variable_name("Some Movie").should == :'@some_movie'
20
+ end
21
+
22
+ it "should make sure the generated instance variable names are legal" do
23
+ Cucumber::Factory.variable_name("1973").should == :'@_1973'
24
+ Cucumber::Factory.variable_name("%$§").should == :'@_'
25
+ end
26
+
27
+ end
28
+
29
+ describe 'parse' do
30
+
31
+ before(:each) do
32
+ @world = Object.new
33
+ end
34
+
35
+ it "should create records" do
36
+ Movie.should_receive(:create!).with({})
37
+ Cucumber::Factory.parse(@world, "Given there is a movie")
38
+ end
39
+
40
+ it "should create records with attributes" do
41
+ Movie.should_receive(:create!).with({ :title => "Sunshine", :year => "2007" })
42
+ Cucumber::Factory.parse(@world, 'Given there is a movie with the title "Sunshine" and the year "2007"')
43
+ end
44
+
45
+ it "should create records with attributes containing spaces" do
46
+ Movie.should_receive(:create!).with({ :box_office_result => "99999999" })
47
+ Cucumber::Factory.parse(@world, 'Given there is a movie with the box office result "99999999"')
48
+ end
49
+
50
+ it "should set instance variables in the world" do
51
+ Cucumber::Factory.parse(@world, 'Given "Sunshine" is a movie with the title "Sunshine" and the year "2007"')
52
+ @world.instance_variable_get(:'@sunshine').title.should == "Sunshine"
53
+ end
54
+
55
+ it "should understand pointers to instance variables" do
56
+ Cucumber::Factory.parse(@world, 'Given "Before Sunrise" is a movie with the title "Before Sunrise"')
57
+ Cucumber::Factory.parse(@world, 'Given "Before Sunset" is a movie with the title "Before Sunset" and the prequel "Before Sunrise"')
58
+ @world.instance_variable_get(:'@before_sunset').prequel.title.should == "Before Sunrise"
59
+ end
60
+
61
+ it "should allow to point to a previously created record through 'above'" do
62
+ Cucumber::Factory.parse(@world, 'Given there is a user with the name "Jane"')
63
+ Cucumber::Factory.parse(@world, 'Given there is a movie with the title "Before Sunrise"')
64
+ Cucumber::Factory.parse(@world, 'Given there is a movie with the title "Before Sunset" and the reviewer above and the prequel above')
65
+ @before_sunset = Movie.find_by_title!("Before Sunset")
66
+ @before_sunset.prequel.title.should == "Before Sunrise"
67
+ @before_sunset.reviewer.name.should == "Jane"
68
+ end
69
+
70
+ end
71
+
72
+ end
data/spec/rcov.opts ADDED
@@ -0,0 +1,2 @@
1
+ --exclude "spec/*,gems/*"
2
+ --rails
data/spec/spec.opts ADDED
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,77 @@
1
+ $: << File.join(File.dirname(__FILE__), "/../lib" )
2
+ #require 'lib/cucumber_factory'
3
+ # Dir["spec/fixtures/**/*.rb"].each {|f| require f}
4
+
5
+
6
+
7
+ # Set the default environment to sqlite3's in_memory database
8
+ ENV['RAILS_ENV'] ||= 'in_memory'
9
+
10
+ # Load the Rails environment and testing framework
11
+ require "#{File.dirname(__FILE__)}/app_root/config/environment"
12
+ require "#{File.dirname(__FILE__)}/../lib/cucumber_factory"
13
+ require 'spec/rails'
14
+
15
+ # Undo changes to RAILS_ENV
16
+ silence_warnings {RAILS_ENV = ENV['RAILS_ENV']}
17
+
18
+ # Run the migrations
19
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate")
20
+
21
+ Spec::Runner.configure do |config|
22
+ config.use_transactional_fixtures = true
23
+ config.use_instantiated_fixtures = false
24
+ end
25
+
26
+
27
+ ## This file is copied to ~/spec when you run 'ruby script/generate rspec'
28
+ ## from the project root directory.
29
+ #ENV["RAILS_ENV"] ||= 'test'
30
+ #require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
31
+ #require 'spec/autorun'
32
+ #require 'spec/rails'
33
+ #
34
+ ## Requires supporting files with custom matchers and macros, etc,
35
+ ## in ./support/ and its subdirectories.
36
+ #Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
37
+ #
38
+ #Spec::Runner.configure do |config|
39
+ # # If you're not using ActiveRecord you should remove these
40
+ # # lines, delete config/database.yml and disable :active_record
41
+ # # in your config/boot.rb
42
+ # config.use_transactional_fixtures = true
43
+ # config.use_instantiated_fixtures = false
44
+ # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
45
+ #
46
+ # # == Fixtures
47
+ # #
48
+ # # You can declare fixtures for each example_group like this:
49
+ # # describe "...." do
50
+ # # fixtures :table_a, :table_b
51
+ # #
52
+ # # Alternatively, if you prefer to declare them only once, you can
53
+ # # do so right here. Just uncomment the next line and replace the fixture
54
+ # # names with your fixtures.
55
+ # #
56
+ # # config.global_fixtures = :table_a, :table_b
57
+ # #
58
+ # # If you declare global fixtures, be aware that they will be declared
59
+ # # for all of your examples, even those that don't use them.
60
+ # #
61
+ # # You can also declare which fixtures to use (for example fixtures for test/fixtures):
62
+ # #
63
+ # # config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
64
+ # #
65
+ # # == Mock Framework
66
+ # #
67
+ # # RSpec uses it's own mocking framework by default. If you prefer to
68
+ # # use mocha, flexmock or RR, uncomment the appropriate line:
69
+ # #
70
+ # # config.mock_with :mocha
71
+ # # config.mock_with :flexmock
72
+ # # config.mock_with :rr
73
+ # #
74
+ # # == Notes
75
+ # #
76
+ # # For more information take a look at Spec::Runner::Configuration and Spec::Runner
77
+ #end
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cucumber_factory
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.7
5
+ platform: ruby
6
+ authors:
7
+ - Henning Koch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-09-18 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Cucumber Factory allows you to create ActiveRecord models from your Cucumber features without writing step definitions for each model.
17
+ email: github@makandra.de
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.rdoc
24
+ files:
25
+ - .gitignore
26
+ - MIT-LICENSE
27
+ - README.rdoc
28
+ - Rakefile
29
+ - VERSION
30
+ - cucumber_factory.gemspec
31
+ - lib/cucumber_factory.rb
32
+ - lib/cucumber_factory/factory.rb
33
+ - spec/app_root/app/controllers/application_controller.rb
34
+ - spec/app_root/app/models/movie.rb
35
+ - spec/app_root/app/models/user.rb
36
+ - spec/app_root/config/boot.rb
37
+ - spec/app_root/config/database.yml
38
+ - spec/app_root/config/environment.rb
39
+ - spec/app_root/config/environments/in_memory.rb
40
+ - spec/app_root/config/environments/mysql.rb
41
+ - spec/app_root/config/environments/postgresql.rb
42
+ - spec/app_root/config/environments/sqlite.rb
43
+ - spec/app_root/config/environments/sqlite3.rb
44
+ - spec/app_root/config/routes.rb
45
+ - spec/app_root/db/migrate/001_create_movies.rb
46
+ - spec/app_root/db/migrate/002_create_users.rb
47
+ - spec/app_root/lib/console_with_fixtures.rb
48
+ - spec/app_root/log/.gitignore
49
+ - spec/app_root/script/console
50
+ - spec/factory_spec.rb
51
+ - spec/rcov.opts
52
+ - spec/spec.opts
53
+ - spec/spec_helper.rb
54
+ has_rdoc: true
55
+ homepage: http://github.com/makandra/cucumber_factory
56
+ licenses: []
57
+
58
+ post_install_message:
59
+ rdoc_options:
60
+ - --charset=UTF-8
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ version:
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ requirements: []
76
+
77
+ rubyforge_project:
78
+ rubygems_version: 1.3.5
79
+ signing_key:
80
+ specification_version: 2
81
+ summary: Create records from Cucumber features without writing step definitions.
82
+ test_files:
83
+ - spec/app_root/app/models/movie.rb
84
+ - spec/app_root/app/models/user.rb
85
+ - spec/app_root/app/controllers/application_controller.rb
86
+ - spec/app_root/config/environment.rb
87
+ - spec/app_root/config/environments/mysql.rb
88
+ - spec/app_root/config/environments/postgresql.rb
89
+ - spec/app_root/config/environments/sqlite3.rb
90
+ - spec/app_root/config/environments/in_memory.rb
91
+ - spec/app_root/config/environments/sqlite.rb
92
+ - spec/app_root/config/boot.rb
93
+ - spec/app_root/config/routes.rb
94
+ - spec/app_root/db/migrate/002_create_users.rb
95
+ - spec/app_root/db/migrate/001_create_movies.rb
96
+ - spec/app_root/lib/console_with_fixtures.rb
97
+ - spec/factory_spec.rb
98
+ - spec/spec_helper.rb