challah 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. data/CHANGELOG.md +9 -2
  2. data/README.md +18 -18
  3. data/lib/challah/test.rb +22 -5
  4. data/lib/challah/version.rb +1 -1
  5. data/test/audit_test.rb +32 -32
  6. data/test/controller_test.rb +9 -9
  7. data/test/cookie_store_test.rb +25 -25
  8. data/test/factories.rb +7 -7
  9. data/test/helper.rb +14 -12
  10. data/test/permission_test.rb +14 -14
  11. data/test/restrictions_controller_test.rb +29 -30
  12. data/test/role_test.rb +26 -26
  13. data/test/session_test.rb +65 -65
  14. data/test/sessions_controller_test.rb +13 -13
  15. data/test/simple_cookie_store_test.rb +25 -25
  16. data/test/user_test.rb +79 -79
  17. data/vendor/bundle/cache/factory_girl-3.0.0.gem +0 -0
  18. data/vendor/bundle/gems/factory_girl-3.0.0/Appraisals +11 -0
  19. data/vendor/bundle/gems/factory_girl-3.0.0/CONTRIBUTION_GUIDELINES.md +10 -0
  20. data/vendor/bundle/gems/factory_girl-3.0.0/Changelog +168 -0
  21. data/vendor/bundle/gems/factory_girl-3.0.0/GETTING_STARTED.md +735 -0
  22. data/vendor/bundle/gems/factory_girl-3.0.0/Gemfile +5 -0
  23. data/vendor/bundle/gems/factory_girl-3.0.0/Gemfile.lock +95 -0
  24. data/vendor/bundle/gems/factory_girl-3.0.0/LICENSE +19 -0
  25. data/vendor/bundle/gems/factory_girl-3.0.0/README.md +70 -0
  26. data/vendor/bundle/gems/factory_girl-3.0.0/Rakefile +38 -0
  27. data/vendor/bundle/gems/factory_girl-3.0.0/cucumber.yml +1 -0
  28. data/vendor/bundle/gems/factory_girl-3.0.0/factory_girl.gemspec +38 -0
  29. data/vendor/bundle/gems/factory_girl-3.0.0/features/factory_girl_steps.feature +237 -0
  30. data/vendor/bundle/gems/factory_girl-3.0.0/features/find_definitions.feature +75 -0
  31. data/vendor/bundle/gems/factory_girl-3.0.0/features/step_definitions/database_steps.rb +42 -0
  32. data/vendor/bundle/gems/factory_girl-3.0.0/features/step_definitions/factory_girl_steps.rb +43 -0
  33. data/vendor/bundle/gems/factory_girl-3.0.0/features/support/env.rb +11 -0
  34. data/vendor/bundle/gems/factory_girl-3.0.0/features/support/factories.rb +119 -0
  35. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/2.3.gemfile +7 -0
  36. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.0.gemfile +7 -0
  37. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.0.gemfile.lock +86 -0
  38. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.1.gemfile +7 -0
  39. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.1.gemfile.lock +95 -0
  40. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.2.gemfile +7 -0
  41. data/vendor/bundle/gems/factory_girl-3.0.0/gemfiles/3.2.gemfile.lock +93 -0
  42. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl.rb +69 -0
  43. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/aliases.rb +19 -0
  44. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute.rb +40 -0
  45. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/association.rb +23 -0
  46. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/dynamic.rb +20 -0
  47. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/sequence.rb +17 -0
  48. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute/static.rb +15 -0
  49. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute_assigner.rb +73 -0
  50. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/attribute_list.rb +54 -0
  51. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/callback.rb +33 -0
  52. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration.rb +22 -0
  53. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/association.rb +25 -0
  54. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/dynamic.rb +25 -0
  55. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/implicit.rb +32 -0
  56. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration/static.rb +25 -0
  57. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/declaration_list.rb +48 -0
  58. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/definition.rb +76 -0
  59. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/definition_proxy.rb +159 -0
  60. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/errors.rb +19 -0
  61. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/evaluator.rb +76 -0
  62. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/evaluator_class_definer.rb +34 -0
  63. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/factory.rb +145 -0
  64. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/factory_runner.rb +24 -0
  65. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/find_definitions.rb +25 -0
  66. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/null_factory.rb +15 -0
  67. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/null_object.rb +7 -0
  68. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/registry.rb +46 -0
  69. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/reload.rb +8 -0
  70. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/sequence.rb +24 -0
  71. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/step_definitions.rb +130 -0
  72. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy.rb +32 -0
  73. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/attributes_for.rb +12 -0
  74. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/build.rb +15 -0
  75. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/create.rb +17 -0
  76. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy/stub.rb +61 -0
  77. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/strategy_calculator.rb +29 -0
  78. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax.rb +16 -0
  79. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/blueprint.rb +42 -0
  80. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/default.rb +56 -0
  81. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/generate.rb +70 -0
  82. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/make.rb +45 -0
  83. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/methods.rb +136 -0
  84. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/sham.rb +45 -0
  85. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/syntax/vintage.rb +130 -0
  86. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/trait.rb +29 -0
  87. data/vendor/bundle/gems/factory_girl-3.0.0/lib/factory_girl/version.rb +4 -0
  88. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/aliases_spec.rb +19 -0
  89. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attribute_aliases_spec.rb +45 -0
  90. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attribute_existing_on_object_spec.rb +68 -0
  91. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attributes_for_spec.rb +89 -0
  92. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attributes_from_instance_spec.rb +53 -0
  93. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/attributes_ordered_spec.rb +51 -0
  94. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/build_list_spec.rb +41 -0
  95. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/build_spec.rb +89 -0
  96. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/build_stubbed_spec.rb +104 -0
  97. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/callbacks_spec.rb +47 -0
  98. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/create_list_spec.rb +82 -0
  99. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/create_spec.rb +117 -0
  100. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/define_child_before_parent_spec.rb +21 -0
  101. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/definition_spec.rb +26 -0
  102. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/definition_without_block_spec.rb +15 -0
  103. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/initialize_with_spec.rb +147 -0
  104. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/modify_factories_spec.rb +184 -0
  105. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/modify_inherited_spec.rb +52 -0
  106. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/nested_attributes_spec.rb +32 -0
  107. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/overrides_spec.rb +61 -0
  108. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/parent_spec.rb +90 -0
  109. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/sequence_spec.rb +33 -0
  110. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/stub_spec.rb +62 -0
  111. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/blueprint_spec.rb +34 -0
  112. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/generate_spec.rb +59 -0
  113. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/make_spec.rb +52 -0
  114. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/sham_spec.rb +43 -0
  115. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/syntax/vintage_spec.rb +217 -0
  116. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/traits_spec.rb +421 -0
  117. data/vendor/bundle/gems/factory_girl-3.0.0/spec/acceptance/transient_attributes_spec.rb +124 -0
  118. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/aliases_spec.rb +31 -0
  119. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/association_spec.rb +28 -0
  120. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/dynamic_spec.rb +52 -0
  121. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/sequence_spec.rb +16 -0
  122. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute/static_spec.rb +19 -0
  123. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute_list_spec.rb +78 -0
  124. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/attribute_spec.rb +16 -0
  125. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/callback_spec.rb +41 -0
  126. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/declaration/implicit_spec.rb +25 -0
  127. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/declaration_list_spec.rb +71 -0
  128. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/definition_proxy_spec.rb +197 -0
  129. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/definition_spec.rb +104 -0
  130. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/evaluator_class_definer_spec.rb +54 -0
  131. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/factory_spec.rb +279 -0
  132. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/find_definitions_spec.rb +110 -0
  133. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/null_factory_spec.rb +13 -0
  134. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/null_object_spec.rb +8 -0
  135. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/registry_spec.rb +81 -0
  136. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/sequence_spec.rb +47 -0
  137. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/attributes_for_spec.rb +18 -0
  138. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/build_spec.rb +7 -0
  139. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/create_spec.rb +13 -0
  140. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy/stub_spec.rb +40 -0
  141. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy_calculator_spec.rb +33 -0
  142. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl/strategy_spec.rb +21 -0
  143. data/vendor/bundle/gems/factory_girl-3.0.0/spec/factory_girl_spec.rb +22 -0
  144. data/vendor/bundle/gems/factory_girl-3.0.0/spec/spec_helper.rb +26 -0
  145. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/macros/define_constant.rb +86 -0
  146. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/callback.rb +9 -0
  147. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/declaration.rb +71 -0
  148. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/delegate.rb +44 -0
  149. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/matchers/trait.rb +9 -0
  150. data/vendor/bundle/gems/factory_girl-3.0.0/spec/support/shared_examples/strategy.rb +104 -0
  151. data/vendor/bundle/specifications/factory_girl-3.0.0.gemspec +62 -0
  152. metadata +147 -12
@@ -0,0 +1,75 @@
1
+ Feature: Factory girl can find factory definitions correctly
2
+ Scenario: Find definitions with a path
3
+ Given a file named "awesome_factories.rb" with:
4
+ """
5
+ FactoryGirl.define do
6
+ factory :awesome_category, :class => Category do
7
+ name "awesome!!!"
8
+ end
9
+ end
10
+ """
11
+ When "awesome_factories.rb" is added to Factory Girl's file definitions path
12
+ And I create a "awesome_category" instance from Factory Girl
13
+ Then I should find the following for the last category:
14
+ | name |
15
+ | awesome!!! |
16
+
17
+ Scenario: Find definitions with an absolute path
18
+ Given a file named "awesome_factories.rb" with:
19
+ """
20
+ FactoryGirl.define do
21
+ factory :another_awesome_category, :class => Category do
22
+ name "awesome!!!"
23
+ end
24
+ end
25
+ """
26
+ When "awesome_factories.rb" is added to Factory Girl's file definitions path as an absolute path
27
+ And I create a "another_awesome_category" instance from Factory Girl
28
+ Then I should find the following for the last category:
29
+ | name |
30
+ | awesome!!! |
31
+
32
+ Scenario: Find definitions with a folder
33
+ Given a file named "nested/great_factories.rb" with:
34
+ """
35
+ FactoryGirl.define do
36
+ factory :great_category, :class => Category do
37
+ name "great!!!"
38
+ end
39
+ end
40
+ """
41
+ When "nested" is added to Factory Girl's file definitions path
42
+ And I create a "great_category" instance from Factory Girl
43
+ Then I should find the following for the last category:
44
+ | name |
45
+ | great!!! |
46
+
47
+ Scenario: Reload Factory Girl
48
+ Given a file named "nested/reload_factories.rb" with:
49
+ """
50
+ FactoryGirl.define do
51
+ sequence(:great)
52
+ trait :admin do
53
+ admin true
54
+ end
55
+
56
+ factory :handy_category, :class => Category do
57
+ name "handy"
58
+ end
59
+ end
60
+ """
61
+ When "nested" is added to Factory Girl's file definitions path
62
+ And I append to "nested/reload_factories.rb" with:
63
+ """
64
+
65
+ FactoryGirl.modify do
66
+ factory :handy_category do
67
+ name "HANDY!!!"
68
+ end
69
+ end
70
+ """
71
+ And I reload factories
72
+ And I create a "handy_category" instance from Factory Girl
73
+ Then I should find the following for the last category:
74
+ | name |
75
+ | HANDY!!! |
@@ -0,0 +1,42 @@
1
+ Then /^I should find the following for the last (.*):$/ do |model, table|
2
+ model_class = model.camelize.constantize
3
+ last_instance = model_class.last or raise "No #{model.pluralize} exist"
4
+ table.hashes.first.each do |key, value|
5
+ last_instance.attributes[key].to_s.should == value
6
+ end
7
+ end
8
+
9
+ Then /^there should be (\d+) (.*)$/ do |count, model|
10
+ model_class = model.singularize.camelize.constantize
11
+ model_class.count.should == count.to_i
12
+ end
13
+
14
+ Then /^the post "([^"]*)" should (not )?have the following tags?:$/ do |post_title, negate, table|
15
+ post = Post.find_by_title!(post_title)
16
+
17
+ table.hashes.each do |row|
18
+ tag = Tag.find_by_name(row[:name])
19
+
20
+ if negate
21
+ post.tags.should_not include(tag)
22
+ else
23
+ post.tags.should include(tag)
24
+ end
25
+ end
26
+ end
27
+
28
+ Transform /^table:(?:.*,)?tags(?:,.*)?$/ do |table|
29
+ table.map_column!("tags") do |tags|
30
+ tags.split(',').map {|tag| Tag.find_by_name! tag.strip }
31
+ end
32
+ table
33
+ end
34
+
35
+ Before do
36
+ Post.delete_all
37
+ Tag.delete_all
38
+ User.delete_all
39
+ Category.delete_all
40
+ CategoryGroup.delete_all
41
+ end
42
+
@@ -0,0 +1,43 @@
1
+ module FactoryGirlDefinitionsHelper
2
+ def append_file_to_factory_girl_definitions_path(path_to_file)
3
+ FactoryGirl.definition_file_paths ||= []
4
+ FactoryGirl.definition_file_paths << path_to_file
5
+ end
6
+ end
7
+
8
+ World(FactoryGirlDefinitionsHelper)
9
+
10
+ When /^"([^"]*)" is added to Factory Girl's file definitions path$/ do |file_name|
11
+ new_factory_file = File.join(current_dir, file_name.gsub(".rb", ""))
12
+
13
+ append_file_to_factory_girl_definitions_path(new_factory_file)
14
+
15
+ When %{I find definitions}
16
+ end
17
+
18
+ When /^"([^"]*)" is added to Factory Girl's file definitions path as an absolute path$/ do |file_name|
19
+ new_factory_file = File.expand_path(File.join(current_dir, file_name.gsub(".rb", "")))
20
+
21
+ append_file_to_factory_girl_definitions_path(new_factory_file)
22
+
23
+ When %{I find definitions}
24
+ end
25
+
26
+ When /^I create a "([^"]*)" instance from Factory Girl$/ do |factory_name|
27
+ FactoryGirl.create(factory_name)
28
+ end
29
+
30
+ Given /^these super users exist:$/ do |table|
31
+ headers = table.headers + ["admin"]
32
+ rows = table.rows.map { |row| row + [true] }
33
+ new_table = Cucumber::Ast::Table.new([headers] + rows)
34
+ Given %{the following person exists:}, new_table
35
+ end
36
+
37
+ When /^I find definitions$/ do
38
+ FactoryGirl.find_definitions
39
+ end
40
+
41
+ When /^I reload factories$/ do
42
+ FactoryGirl.reload
43
+ end
@@ -0,0 +1,11 @@
1
+ PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
2
+
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ $: << File.join(PROJECT_ROOT, 'lib')
7
+
8
+ require 'active_record'
9
+ require 'factory_girl'
10
+
11
+ require 'aruba/cucumber'
@@ -0,0 +1,119 @@
1
+ ActiveRecord::Base.establish_connection(
2
+ :adapter => 'sqlite3',
3
+ :database => File.join(File.dirname(__FILE__), 'test.db')
4
+ )
5
+
6
+ class CreateSchema < ActiveRecord::Migration
7
+ def self.up
8
+ create_table :posts, :force => true do |t|
9
+ t.integer :author_id
10
+ t.integer :category_id
11
+ t.string :title
12
+ t.string :body
13
+ end
14
+
15
+ create_table :category_groups, :force => true do |t|
16
+ t.string :name
17
+ end
18
+
19
+ create_table :categories, :force => true do |t|
20
+ t.integer :category_group_id
21
+ t.string :name
22
+ end
23
+
24
+ create_table :tags, :force => true do |t|
25
+ t.integer :post_id
26
+ t.string :name
27
+ end
28
+
29
+ create_table :users, :force => true do |t|
30
+ t.string :name
31
+ t.boolean :admin, :default => false, :null => false
32
+ end
33
+ end
34
+ end
35
+
36
+ CreateSchema.suppress_messages { CreateSchema.migrate(:up) }
37
+
38
+ class User < ActiveRecord::Base
39
+ end
40
+
41
+ class CategoryGroup < ActiveRecord::Base
42
+ end
43
+
44
+ class Category < ActiveRecord::Base
45
+ belongs_to :category_group
46
+ end
47
+
48
+ class Post < ActiveRecord::Base
49
+ belongs_to :author, :class_name => 'User'
50
+ belongs_to :category
51
+ has_many :tags
52
+ end
53
+
54
+ class Tag < ActiveRecord::Base
55
+ belongs_to :post
56
+ end
57
+
58
+ class NonActiveRecord
59
+ end
60
+
61
+ class SimpleColumn
62
+ def self.columns
63
+ [:name]
64
+ end
65
+
66
+ def save!
67
+ @@count ||= 0
68
+ @@count += 1
69
+ end
70
+
71
+ def self.count
72
+ @@count
73
+ end
74
+ end
75
+
76
+ FactoryGirl.define do
77
+ # To make sure the step defs work with an email
78
+ sequence :email do |n|
79
+ "email#{n}@example.com"
80
+ end
81
+
82
+ factory :user, :aliases => [:person] do
83
+ factory :admin_user do
84
+ admin true
85
+ end
86
+ end
87
+
88
+ factory :category do
89
+ name "programming"
90
+ category_group
91
+ end
92
+
93
+ factory :category_group do
94
+ name "tecnhology"
95
+ end
96
+
97
+ factory :post do
98
+ association :author, :factory => :user
99
+ category
100
+ end
101
+
102
+ factory :titled_post, :parent => :post do
103
+ title 'A Post with a Title'
104
+ end
105
+
106
+ factory :tag do
107
+ post
108
+ end
109
+ # This is here to ensure that factory step definitions don't raise for a non-AR factory
110
+ factory :non_active_record do
111
+ end
112
+
113
+ # This is here to make FG work with ORMs that have `columns => [:name, :admin, :etc]` on the class (Neo4j)
114
+ factory :simple_column do
115
+ end
116
+ end
117
+
118
+ require 'factory_girl/step_definitions'
119
+
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activerecord", "~> 2.3"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activerecord", "~> 3.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,86 @@
1
+ PATH
2
+ remote: /Users/joshuaclayton/dev/gems/factory_girl
3
+ specs:
4
+ factory_girl (3.0.0)
5
+ activesupport (>= 3.0.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activemodel (3.0.9)
11
+ activesupport (= 3.0.9)
12
+ builder (~> 2.1.2)
13
+ i18n (~> 0.5.0)
14
+ activerecord (3.0.9)
15
+ activemodel (= 3.0.9)
16
+ activesupport (= 3.0.9)
17
+ arel (~> 2.0.10)
18
+ tzinfo (~> 0.3.23)
19
+ activesupport (3.0.9)
20
+ appraisal (0.3.8)
21
+ bundler
22
+ rake
23
+ arel (2.0.10)
24
+ aruba (0.3.7)
25
+ childprocess (>= 0.1.9)
26
+ cucumber (>= 0.10.5)
27
+ rspec (>= 2.6.0)
28
+ bluecloth (2.1.0)
29
+ bourne (1.0)
30
+ mocha (= 0.9.8)
31
+ builder (2.1.2)
32
+ childprocess (0.1.9)
33
+ ffi (~> 1.0.6)
34
+ cucumber (1.0.0)
35
+ builder (>= 2.1.2)
36
+ diff-lcs (>= 1.1.2)
37
+ gherkin (~> 2.4.1)
38
+ json (>= 1.4.6)
39
+ term-ansicolor (>= 1.0.5)
40
+ diff-lcs (1.1.2)
41
+ ffi (1.0.9)
42
+ gherkin (2.4.1)
43
+ json (>= 1.4.6)
44
+ i18n (0.5.0)
45
+ json (1.5.3)
46
+ mocha (0.9.8)
47
+ rake
48
+ multi_json (1.1.0)
49
+ rake (0.9.2)
50
+ rspec (2.6.0)
51
+ rspec-core (~> 2.6.0)
52
+ rspec-expectations (~> 2.6.0)
53
+ rspec-mocks (~> 2.6.0)
54
+ rspec-core (2.6.4)
55
+ rspec-expectations (2.6.0)
56
+ diff-lcs (~> 1.1.2)
57
+ rspec-mocks (2.6.0)
58
+ simplecov (0.6.1)
59
+ multi_json (~> 1.0)
60
+ simplecov-html (~> 0.5.3)
61
+ simplecov-html (0.5.3)
62
+ sqlite3 (1.3.3)
63
+ sqlite3-ruby (1.3.3)
64
+ sqlite3 (>= 1.3.3)
65
+ term-ansicolor (1.0.5)
66
+ timecop (0.3.5)
67
+ tzinfo (0.3.28)
68
+ yard (0.7.2)
69
+
70
+ PLATFORMS
71
+ ruby
72
+
73
+ DEPENDENCIES
74
+ activerecord (~> 3.0)
75
+ appraisal (~> 0.3.8)
76
+ aruba
77
+ bluecloth
78
+ bourne
79
+ cucumber (~> 1.0.0)
80
+ factory_girl!
81
+ mocha
82
+ rspec (~> 2.0)
83
+ simplecov
84
+ sqlite3-ruby
85
+ timecop
86
+ yard
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activerecord", "~> 3.1"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,95 @@
1
+ PATH
2
+ remote: /Users/joshuaclayton/dev/gems/factory_girl
3
+ specs:
4
+ factory_girl (3.0.0)
5
+ activesupport (>= 3.0.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activemodel (3.1.0)
11
+ activesupport (= 3.1.0)
12
+ bcrypt-ruby (~> 3.0.0)
13
+ builder (~> 3.0.0)
14
+ i18n (~> 0.6)
15
+ activerecord (3.1.0)
16
+ activemodel (= 3.1.0)
17
+ activesupport (= 3.1.0)
18
+ arel (~> 2.2.1)
19
+ tzinfo (~> 0.3.29)
20
+ activesupport (3.1.0)
21
+ multi_json (~> 1.0)
22
+ appraisal (0.3.8)
23
+ bundler
24
+ rake
25
+ arel (2.2.1)
26
+ aruba (0.4.5)
27
+ bcat (>= 0.6.1)
28
+ childprocess (>= 0.1.9)
29
+ cucumber (>= 0.10.7)
30
+ rdiscount (>= 1.6.8)
31
+ rspec (>= 2.6.0)
32
+ bcat (0.6.1)
33
+ rack (~> 1.0)
34
+ bcrypt-ruby (3.0.0)
35
+ bluecloth (2.1.0)
36
+ bourne (1.0)
37
+ mocha (= 0.9.8)
38
+ builder (3.0.0)
39
+ childprocess (0.2.1)
40
+ ffi (~> 1.0.6)
41
+ cucumber (1.0.2)
42
+ builder (>= 2.1.2)
43
+ diff-lcs (>= 1.1.2)
44
+ gherkin (~> 2.4.5)
45
+ json (>= 1.4.6)
46
+ term-ansicolor (>= 1.0.5)
47
+ diff-lcs (1.1.3)
48
+ ffi (1.0.9)
49
+ gherkin (2.4.16)
50
+ json (>= 1.4.6)
51
+ i18n (0.6.0)
52
+ json (1.5.4)
53
+ mocha (0.9.8)
54
+ rake
55
+ multi_json (1.0.3)
56
+ rack (1.3.2)
57
+ rake (0.9.2)
58
+ rdiscount (1.6.8)
59
+ rspec (2.6.0)
60
+ rspec-core (~> 2.6.0)
61
+ rspec-expectations (~> 2.6.0)
62
+ rspec-mocks (~> 2.6.0)
63
+ rspec-core (2.6.4)
64
+ rspec-expectations (2.6.0)
65
+ diff-lcs (~> 1.1.2)
66
+ rspec-mocks (2.6.0)
67
+ simplecov (0.6.1)
68
+ multi_json (~> 1.0)
69
+ simplecov-html (~> 0.5.3)
70
+ simplecov-html (0.5.3)
71
+ sqlite3 (1.3.4)
72
+ sqlite3-ruby (1.3.3)
73
+ sqlite3 (>= 1.3.3)
74
+ term-ansicolor (1.0.6)
75
+ timecop (0.3.5)
76
+ tzinfo (0.3.29)
77
+ yard (0.7.2)
78
+
79
+ PLATFORMS
80
+ ruby
81
+
82
+ DEPENDENCIES
83
+ activerecord (~> 3.1)
84
+ appraisal (~> 0.3.8)
85
+ aruba
86
+ bluecloth
87
+ bourne
88
+ cucumber (~> 1.0.0)
89
+ factory_girl!
90
+ mocha
91
+ rspec (~> 2.0)
92
+ simplecov
93
+ sqlite3-ruby
94
+ timecop
95
+ yard