to_factory 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +14 -6
- data/lib/to_factory/collation.rb +3 -3
- data/lib/to_factory/file_writer.rb +5 -9
- data/lib/to_factory/generation/attribute.rb +24 -3
- data/lib/to_factory/generation/factory.rb +5 -13
- data/lib/to_factory/version.rb +1 -1
- data/lib/to_factory.rb +20 -2
- data/spec/integration/file_writer_spec.rb +1 -1
- data/spec/integration/to_factory_method_spec.rb +21 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/support/ruby_parser_exception_causing_string.rb +31 -0
- data/spec/unit/collation_spec.rb +1 -1
- data/spec/unit/file_writer_spec.rb +2 -2
- data/spec/unit/generation/attribute_spec.rb +19 -0
- metadata +119 -167
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2b7199b7f56596066bd61469c11ed611c8559011
|
4
|
+
data.tar.gz: 9799646595d3bb9835d61cceffde7514334bfc9a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eb276d7e60f92af6de9fb7a6c6fa0883cdffbd43d585141d359bb64b6e4539936d7fe40545453026419ccfa513a72db5804eecbe80ffd75f42d886d2f7c61e1c
|
7
|
+
data.tar.gz: 9345ae024ec70089a05d6430e1039691bbfad6eb43833525e8bb1ed4d7ba9054560a5d15b780617f4ede28efb51bc88c3e770250a24883ecc435563f05efc804
|
data/README.md
CHANGED
@@ -11,10 +11,13 @@ ToFactory :wrench:
|
|
11
11
|
|
12
12
|
Easily add factories with valid data for an existing project.
|
13
13
|
|
14
|
+
If you find yourself retro-fitting tests this gem will save you some of the legwork.
|
15
|
+
|
14
16
|
* auto-generate all factories
|
15
17
|
* adhoc generate from existing records
|
16
18
|
* unintrusively update factory files in place
|
17
|
-
*
|
19
|
+
* display factory definition for a record
|
20
|
+
* parse and write `FactoryGirl` syntax or older `Factory.define` syntax
|
18
21
|
|
19
22
|
Tested against Ruby 1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1.x, 2.2.0
|
20
23
|
|
@@ -63,11 +66,6 @@ ToFactory(exclude: [User, Project])
|
|
63
66
|
#Use Adhoc instances from the console
|
64
67
|
ToFactory User.last
|
65
68
|
|
66
|
-
#List defined factory names
|
67
|
-
ToFactory.definitions
|
68
|
-
#=> [:user, :admin, :project]
|
69
|
-
|
70
|
-
|
71
69
|
#writes to spec/factories/user.rb
|
72
70
|
FactoryGirl.define
|
73
71
|
factory(:user) do |u|
|
@@ -76,6 +74,16 @@ FactoryGirl.define
|
|
76
74
|
end
|
77
75
|
end
|
78
76
|
|
77
|
+
#List defined factory names
|
78
|
+
ToFactory.definitions
|
79
|
+
#=> [:user, :admin, :project]
|
80
|
+
|
81
|
+
#Display definition from record
|
82
|
+
ToFactory.definition_for @user
|
83
|
+
|
84
|
+
#Display existing definition from name
|
85
|
+
ToFactory.definition_for :admin
|
86
|
+
|
79
87
|
#doesn't overwrite existing factories
|
80
88
|
ToFactory User.last
|
81
89
|
#Exception =>
|
data/lib/to_factory/collation.rb
CHANGED
@@ -16,8 +16,8 @@ module ToFactory
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def organize
|
19
|
-
representations.group_by
|
20
|
-
o[
|
19
|
+
representations.group_by{|i| i.klass.name.underscore}.inject({}) do |o, (klass_name,r)|
|
20
|
+
o[klass_name] = r.sort_by(&:hierarchy_order)
|
21
21
|
o
|
22
22
|
end
|
23
23
|
end
|
@@ -54,7 +54,7 @@ module ToFactory
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def raise_already_exists!(keys)
|
57
|
-
|
57
|
+
raise ToFactory::AlreadyExists.new "an item for each of the following keys #{keys.inspect} already exists"
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
@@ -5,8 +5,8 @@ module ToFactory
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def write(definitions)
|
8
|
-
definitions.each do |
|
9
|
-
write_to(
|
8
|
+
definitions.each do |klass_name, representations|
|
9
|
+
write_to(klass_name) do
|
10
10
|
wrap_factories(representations.map(&:definition))
|
11
11
|
end
|
12
12
|
end
|
@@ -14,10 +14,6 @@ module ToFactory
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
-
def name_from(klass)
|
18
|
-
klass.name.underscore.gsub /^"|"$/, ""
|
19
|
-
end
|
20
|
-
|
21
17
|
def write_to(name)
|
22
18
|
mkdir(name)
|
23
19
|
|
@@ -35,9 +31,9 @@ module ToFactory
|
|
35
31
|
end
|
36
32
|
|
37
33
|
def modern_header(definitions)
|
38
|
-
out =
|
39
|
-
out << definitions.join("\n")
|
40
|
-
out << "
|
34
|
+
out = "FactoryGirl.define do\n"
|
35
|
+
out << definitions.join("\n\n")
|
36
|
+
out << "end"
|
41
37
|
end
|
42
38
|
|
43
39
|
def mkdir(name)
|
@@ -26,8 +26,6 @@ module ToFactory
|
|
26
26
|
formatted
|
27
27
|
end
|
28
28
|
|
29
|
-
private
|
30
|
-
|
31
29
|
def format(value, nested)
|
32
30
|
case value
|
33
31
|
when Time, DateTime
|
@@ -37,12 +35,30 @@ module ToFactory
|
|
37
35
|
when Hash
|
38
36
|
inspect_hash(value, nested)
|
39
37
|
when Array
|
40
|
-
value
|
38
|
+
inspect_array(value, nested)
|
39
|
+
when String
|
40
|
+
validate_parseable!(value).inspect
|
41
41
|
else
|
42
42
|
value.inspect
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
private
|
47
|
+
|
48
|
+
def validate_parseable!(value)
|
49
|
+
return value if parse(value)
|
50
|
+
|
51
|
+
"ToFactory: RubyParser exception parsing this attribute after factory generation"
|
52
|
+
end
|
53
|
+
|
54
|
+
def parse(value)
|
55
|
+
@parser ||= RubyParser.new
|
56
|
+
@parser.parse(value)
|
57
|
+
true
|
58
|
+
rescue
|
59
|
+
false
|
60
|
+
end
|
61
|
+
|
46
62
|
def inspect_time(value)
|
47
63
|
time = in_utc(value).strftime("%Y-%m-%dT%H:%M%Z").inspect
|
48
64
|
time.gsub(/UTC"$/, "Z\"").gsub(/GMT"$/, "Z\"")
|
@@ -60,6 +76,11 @@ module ToFactory
|
|
60
76
|
end
|
61
77
|
end
|
62
78
|
|
79
|
+
def inspect_array(value, nested)
|
80
|
+
values = value.map{|v| format(v, nested)}.join(", ")
|
81
|
+
"[#{values}]"
|
82
|
+
end
|
83
|
+
|
63
84
|
def key_value_pair(key, value)
|
64
85
|
formatted_key = inspect_value(key, true)
|
65
86
|
formatted_value = inspect_value(value.fetch(key), true)
|
@@ -19,20 +19,12 @@ module ToFactory
|
|
19
19
|
|
20
20
|
def header(&block)
|
21
21
|
if ToFactory.new_syntax?
|
22
|
-
|
22
|
+
generic_header(" factory", "", " end", &block)
|
23
23
|
else
|
24
|
-
|
24
|
+
generic_header("Factory.define", " |o|", "end", &block)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
def modern_header(&block)
|
29
|
-
generic_header("factory", "", &block)
|
30
|
-
end
|
31
|
-
|
32
|
-
def header_factory_girl_1(&block)
|
33
|
-
generic_header("Factory.define", " |o|", &block)
|
34
|
-
end
|
35
|
-
|
36
28
|
def factory_attribute(attr, value)
|
37
29
|
Attribute.new(attr, value).to_s
|
38
30
|
end
|
@@ -49,10 +41,10 @@ module ToFactory
|
|
49
41
|
@representation.parent_name
|
50
42
|
end
|
51
43
|
|
52
|
-
def generic_header(factory_start, block_arg, &block)
|
53
|
-
out = "
|
44
|
+
def generic_header(factory_start, block_arg, ending, &block)
|
45
|
+
out = "#{factory_start}(:#{name}#{parent_clause}) do#{block_arg}\n"
|
54
46
|
out << yield.to_s
|
55
|
-
out << "
|
47
|
+
out << "#{ending}\n"
|
56
48
|
end
|
57
49
|
|
58
50
|
def parent_clause
|
data/lib/to_factory/version.rb
CHANGED
data/lib/to_factory.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
1
3
|
require "to_factory/version"
|
2
4
|
require "to_factory/config"
|
3
5
|
require "to_factory/generation/factory"
|
@@ -14,6 +16,7 @@ require "to_factory/options_parser"
|
|
14
16
|
|
15
17
|
module ToFactory
|
16
18
|
class MissingActiveRecordInstanceException < Exception;end
|
19
|
+
class NotFoundError < Exception;end
|
17
20
|
|
18
21
|
class << self
|
19
22
|
def new_syntax?
|
@@ -27,9 +30,24 @@ module ToFactory
|
|
27
30
|
false
|
28
31
|
end
|
29
32
|
|
33
|
+
def definition_for(item)
|
34
|
+
if item.is_a? ActiveRecord::Base
|
35
|
+
Representation.from(item).definition
|
36
|
+
else
|
37
|
+
if found = representations.find{|r| r.name.to_s == item.to_s }
|
38
|
+
found.definition
|
39
|
+
else
|
40
|
+
raise NotFoundError.new "No definition found for #{item}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
30
45
|
def definitions
|
31
|
-
|
32
|
-
|
46
|
+
representations.map(&:name)
|
47
|
+
end
|
48
|
+
|
49
|
+
def representations
|
50
|
+
Finders::Factory.new.call
|
33
51
|
end
|
34
52
|
end
|
35
53
|
end
|
@@ -9,7 +9,7 @@ describe ToFactory::FileWriter do
|
|
9
9
|
fs = ToFactory::FileSync.new
|
10
10
|
representations = fs.all_representations
|
11
11
|
#sanity check generation isn't broken
|
12
|
-
expect(representations.keys).to eq [
|
12
|
+
expect(representations.keys).to eq ["to_factory/user"]
|
13
13
|
expect(representations.values[0][0]).to be_a ToFactory::Representation
|
14
14
|
|
15
15
|
fw.write representations
|
@@ -23,6 +23,22 @@ describe ToFactory do
|
|
23
23
|
|
24
24
|
end
|
25
25
|
|
26
|
+
describe "ToFactory.definition_for" do
|
27
|
+
let(:expected_user_file) { File.read "./spec/example_factories/#{version}_syntax/user.rb"}
|
28
|
+
it do
|
29
|
+
expect(ToFactory.definition_for user).to match_sexp expected_user_file
|
30
|
+
end
|
31
|
+
|
32
|
+
it do
|
33
|
+
ToFactory(user)
|
34
|
+
expect(ToFactory.definition_for :"to_factory/user").to match_sexp expected_user_file
|
35
|
+
end
|
36
|
+
|
37
|
+
it "raises a not found error" do
|
38
|
+
expect(lambda{ToFactory.definition_for :"to_factory/user"}).to raise_error ToFactory::NotFoundError
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
26
42
|
describe "Object#ToFactory" do
|
27
43
|
context "with multiple levels of parent classes" do
|
28
44
|
let(:filename) { "spec/example_factories/#{version}_syntax/#{'user_admin_super_admin'}.rb"}
|
@@ -43,8 +59,13 @@ describe ToFactory do
|
|
43
59
|
|
44
60
|
it "generates all factories" do
|
45
61
|
ToFactory()
|
62
|
+
#simple check for equivalent ruby
|
46
63
|
expect(user_file) .to match_sexp expected_user_file
|
47
64
|
expect(project_file).to match_sexp expected_project_file
|
65
|
+
|
66
|
+
#once we are sure output is equivalent ruby, check output is identical
|
67
|
+
expect(user_file.chomp) .to eq expected_user_file.chomp
|
68
|
+
expect(project_file.chomp).to eq expected_project_file.chomp
|
48
69
|
end
|
49
70
|
|
50
71
|
def user_file_includes(content)
|
data/spec/spec_helper.rb
CHANGED
data/spec/unit/collation_spec.rb
CHANGED
@@ -33,7 +33,7 @@ describe ToFactory::Collation do
|
|
33
33
|
pre_existing = [ admin, user, super_admin ]
|
34
34
|
|
35
35
|
result = ToFactory::Collation.organize(new_definitions, pre_existing)
|
36
|
-
result = result[
|
36
|
+
result = result["to_factory/user"]
|
37
37
|
expect(result.map &:hierarchy_order).to eq [1,2,3,4]
|
38
38
|
expect(result).to eq [user, admin, super_admin, root]
|
39
39
|
end
|
@@ -13,8 +13,8 @@ describe ToFactory::FileWriter do
|
|
13
13
|
it "adds factories for all models" do
|
14
14
|
user_representation = double :name => :user, "definition" => "factory a"
|
15
15
|
project_representation = double :name => "project", :definition =>"factory b"
|
16
|
-
fw.write({
|
17
|
-
|
16
|
+
fw.write({"to_factory/user" =>[user_representation],
|
17
|
+
"to_factory/project" => [project_representation]
|
18
18
|
})
|
19
19
|
|
20
20
|
if ToFactory.new_syntax?
|
@@ -22,6 +22,25 @@ describe ToFactory::Generation::Attribute do
|
|
22
22
|
|
23
23
|
expect(attribute.inspect_value(hash)).to eq expected
|
24
24
|
end
|
25
|
+
|
26
|
+
it "handles arrays correctly" do
|
27
|
+
expected = "[1, 2, :a, \"4\"]"
|
28
|
+
|
29
|
+
input = [1, 2, :a, "4"]
|
30
|
+
expect(attribute.format(input, false)).to eq expected
|
31
|
+
end
|
25
32
|
end
|
26
33
|
|
34
|
+
if RUBY_VERSION =~ /\A1\.8/
|
35
|
+
it "alters attributes that are unparseable by RubyParser" do
|
36
|
+
#when reparsing the generated files, we don't want the parser itself
|
37
|
+
#to raise an exception, rather than fix RubyParser now, a hotfix is to
|
38
|
+
#warn about these attributes and replace them with something parseable
|
39
|
+
value = File.read("./spec/support/ruby_parser_exception_causing_string.rb")
|
40
|
+
expect(lambda{RubyParser.new.parse(value)}).to raise_error StringScanner::Error
|
41
|
+
result = attribute.inspect_value(value)
|
42
|
+
expect(lambda{RubyParser.new.parse(result)}).not_to raise_error
|
43
|
+
expect(result).to match /ToFactory: RubyParser exception/
|
44
|
+
end
|
45
|
+
end
|
27
46
|
end
|
metadata
CHANGED
@@ -1,177 +1,137 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: to_factory
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 0.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Mark Burns
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
22
14
|
name: sqlite3
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.3.6
|
20
|
+
type: :development
|
23
21
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 23
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 3
|
33
|
-
- 6
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
34
26
|
version: 1.3.6
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: database_cleaner
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.4.0
|
35
34
|
type: :development
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: ruby-debug
|
39
35
|
prerelease: false
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.4.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry-byebug
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
43
45
|
- - ">="
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
version: "0"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
49
48
|
type: :development
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: database_cleaner
|
53
49
|
prerelease: false
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
- 3
|
63
|
-
version: "0.3"
|
64
|
-
type: :development
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
67
56
|
name: ruby2ruby
|
68
|
-
|
69
|
-
|
70
|
-
none: false
|
71
|
-
requirements:
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
72
59
|
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
version: "0"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
78
62
|
type: :runtime
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: activerecord
|
82
63
|
prerelease: false
|
83
|
-
|
84
|
-
|
85
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activerecord
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
86
73
|
- - ">"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
segments:
|
90
|
-
- 2
|
91
|
-
- 0
|
92
|
-
version: "2.0"
|
93
|
-
- - <
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
hash: 27
|
96
|
-
segments:
|
97
|
-
- 4
|
98
|
-
- 0
|
99
|
-
version: "4.0"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
100
76
|
type: :runtime
|
101
|
-
version_requirements: *id005
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: i18n
|
104
77
|
prerelease: false
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
segments:
|
112
|
-
- 0
|
113
|
-
- 7
|
114
|
-
version: "0.7"
|
115
|
-
type: :runtime
|
116
|
-
version_requirements: *id006
|
117
|
-
- !ruby/object:Gem::Dependency
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
118
84
|
name: factory_girl
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
hash: 3
|
126
|
-
segments:
|
127
|
-
- 2
|
128
|
-
- 0
|
129
|
-
version: "2.0"
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.5'
|
130
90
|
type: :development
|
131
|
-
version_requirements: *id007
|
132
|
-
- !ruby/object:Gem::Dependency
|
133
|
-
name: rspec
|
134
91
|
prerelease: false
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.0'
|
145
104
|
type: :development
|
146
|
-
version_requirements: *id008
|
147
|
-
- !ruby/object:Gem::Dependency
|
148
|
-
name: rake
|
149
105
|
prerelease: false
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '10.0'
|
160
118
|
type: :development
|
161
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '10.0'
|
162
125
|
description: Autogenerate and append/create factory_girl definitions from the console
|
163
|
-
email:
|
126
|
+
email:
|
164
127
|
- markthedeveloper@gmail.com
|
165
128
|
executables: []
|
166
|
-
|
167
129
|
extensions: []
|
168
|
-
|
169
130
|
extra_rdoc_files: []
|
170
|
-
|
171
|
-
|
172
|
-
- .
|
173
|
-
- .
|
174
|
-
- .travis.yml
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".travis.yml"
|
175
135
|
- Gemfile
|
176
136
|
- README.md
|
177
137
|
- Rakefile
|
@@ -227,6 +187,7 @@ files:
|
|
227
187
|
- spec/support/models/not_active_record.rb
|
228
188
|
- spec/support/models/project.rb
|
229
189
|
- spec/support/models/user.rb
|
190
|
+
- spec/support/ruby_parser_exception_causing_string.rb
|
230
191
|
- spec/unit/collation_spec.rb
|
231
192
|
- spec/unit/file_writer_spec.rb
|
232
193
|
- spec/unit/finders/factory_spec.rb
|
@@ -237,41 +198,31 @@ files:
|
|
237
198
|
- spec/unit/parsing/klass_inference_spec.rb
|
238
199
|
- tmp/.keep
|
239
200
|
- to_factory.gemspec
|
240
|
-
|
241
|
-
|
242
|
-
licenses:
|
201
|
+
homepage: ''
|
202
|
+
licenses:
|
243
203
|
- MIT
|
204
|
+
metadata: {}
|
244
205
|
post_install_message:
|
245
206
|
rdoc_options: []
|
246
|
-
|
247
|
-
require_paths:
|
207
|
+
require_paths:
|
248
208
|
- lib
|
249
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
250
|
-
|
251
|
-
requirements:
|
209
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
252
211
|
- - ">="
|
253
|
-
- !ruby/object:Gem::Version
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
version: "0"
|
258
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
259
|
-
none: false
|
260
|
-
requirements:
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
261
216
|
- - ">="
|
262
|
-
- !ruby/object:Gem::Version
|
263
|
-
|
264
|
-
segments:
|
265
|
-
- 0
|
266
|
-
version: "0"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '0'
|
267
219
|
requirements: []
|
268
|
-
|
269
220
|
rubyforge_project:
|
270
|
-
rubygems_version:
|
221
|
+
rubygems_version: 2.4.5
|
271
222
|
signing_key:
|
272
|
-
specification_version:
|
223
|
+
specification_version: 4
|
273
224
|
summary: Turn ActiveRecord instances into factories
|
274
|
-
test_files:
|
225
|
+
test_files:
|
275
226
|
- spec/db/migrate/1_create_users.rb
|
276
227
|
- spec/db/migrate/2_create_projects.rb
|
277
228
|
- spec/db/migrate/3_create_not_namespaced.rb
|
@@ -305,6 +256,7 @@ test_files:
|
|
305
256
|
- spec/support/models/not_active_record.rb
|
306
257
|
- spec/support/models/project.rb
|
307
258
|
- spec/support/models/user.rb
|
259
|
+
- spec/support/ruby_parser_exception_causing_string.rb
|
308
260
|
- spec/unit/collation_spec.rb
|
309
261
|
- spec/unit/file_writer_spec.rb
|
310
262
|
- spec/unit/finders/factory_spec.rb
|