factories 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21df7bf30d53378ef1fd78b4ad75b4551e1be70e
4
- data.tar.gz: e277b355ab2a6ce0e1a8fa4be9e519a423f37503
3
+ metadata.gz: 646d0842c1762febbea8ad679e8c2aaf254bf637
4
+ data.tar.gz: 460766260ed6859dbce67c65ea8b11f7d63f5f32
5
5
  SHA512:
6
- metadata.gz: f9392c0a365706070a711d0499dde81e04aeb63d84b0d7da61a17c225c46e1b71e4310234904bd010e1bd2aa20fefa92f399cca4bcb6cc20043ba5f3b52b8188
7
- data.tar.gz: 5b4b85ef48904032efec9c0da493377dd8ac1be415d916b108c1bf5b5449ac024998482ad3aed7f4b64a7bb1791142edaf1a215eb1b6a9d68f9775d47e24b696
6
+ metadata.gz: c4feaeaee5706bf4798e783302347c4007848a462a1034db1e42a770c25af148def95d3df38dfe59d02073007b362d06fc09937da82087ad47010cd7d00f2d25
7
+ data.tar.gz: db205472b835e46313863b632d3e57d40e3889c68eb44570f45c34d2a7eea55f4abe0676e5e2e2bc695895a671f601324dd965ef1bad36bc1143ace033bc5950
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .DS_Store
1
2
  *.gem
2
3
  *.rbc
3
4
  .bundle
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # Factories
2
2
 
3
- TODO: Write a gem description
4
-
5
3
  ## Installation
6
4
 
7
5
  Add this line to your application's Gemfile:
@@ -18,12 +16,63 @@ Or install it yourself as:
18
16
 
19
17
  ## Usage
20
18
 
21
- TODO: Write usage instructions here
19
+ `Factories` responds to `#build` and `#create` and does exactly what you
20
+ would expect:
21
+
22
+ ```ruby
23
+ class User < ActiveRecord::Base
24
+ validates :name, presence: true
25
+ end
26
+
27
+ module Factories
28
+ class UserFactory < BaseFactory
29
+ def defaults
30
+ {
31
+ name: "Nathan"
32
+ }
33
+ end
34
+ end
35
+ end
36
+
37
+ user = Factories.build(:user)
38
+ user.persisted? # => false
39
+
40
+ user2 = Factories.create(:user)
41
+ user2.persisted? # => true
42
+
43
+ user3 = Factories.build(:user, name: "Jason")
44
+ user3.valid? # => true
45
+
46
+ user4 = Factories.build(:user, name: nil)
47
+ user4.valid? # => false
48
+ ```
49
+
50
+ For the best result, `include Factories` into your test/spec scope.
51
+
52
+ An example `spec_helper.rb` could be:
53
+
54
+ ```ruby
55
+ ENV["RAILS_ENV"] ||= 'test'
56
+ require File.expand_path("../../config/environment", __FILE__)
57
+ require 'rspec/rails'
58
+ require 'rspec/autorun'
59
+
60
+ Dir[Rails.root.join("spec/{support,factories}/**/*.rb")].each { |f| require f }
61
+
62
+ RSpec.configure do |config|
63
+ include Factories
64
+
65
+ config.infer_base_class_for_anonymous_controllers = false
66
+ config.order = "random"
67
+ end
22
68
 
23
- ## Contributing
69
+ describe User do
70
+ context "with an invalid model" do
71
+ let(:user) { create(:user, name: nil) }
24
72
 
25
- 1. Fork it
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
73
+ it "expects a name sucka" do
74
+ expect(user).to_not be_valid
75
+ end
76
+ end
77
+ end
78
+ ```
@@ -1,3 +1,5 @@
1
+ require "active_support/core_ext/string/inflections"
2
+
1
3
  module Factories
2
4
  class BaseFactory
3
5
  def self.create(opts = {})
@@ -9,7 +11,7 @@ module Factories
9
11
  end
10
12
 
11
13
  def self.model_class
12
- name.gsub(/Factory/, '').demodulize.constantize
14
+ name.gsub(/Factory$/, '').demodulize.constantize
13
15
  end
14
16
 
15
17
  def model_class
@@ -1,3 +1,3 @@
1
1
  module Factories
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/factories.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "active_support/core_ext/string/inflections"
2
+
1
3
  module Factories
2
4
  module_function
3
5
 
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factories
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Herald
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-23 00:00:00.000000000 Z
11
+ date: 2014-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: Objects to build and create models
@@ -59,7 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
62
+ - ".gitignore"
63
63
  - Gemfile
64
64
  - LICENSE.txt
65
65
  - README.md
@@ -78,17 +78,17 @@ require_paths:
78
78
  - lib
79
79
  required_ruby_version: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - '>='
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  requirements: []
90
90
  rubyforge_project:
91
- rubygems_version: 2.0.3
91
+ rubygems_version: 2.2.2
92
92
  signing_key:
93
93
  specification_version: 4
94
94
  summary: Super simple way to use build(:author) or create(:book) in your tests.