makers 0.1.3 → 0.2.0
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 +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +64 -70
- data/Rakefile +1 -14
- data/lib/generators/makers/install_generator.rb +20 -0
- data/lib/generators/makers/templates/definitions.rb +2 -0
- data/lib/makers.rb +8 -35
- data/lib/makers/definitions.rb +18 -27
- data/lib/makers/dsl/maker.rb +74 -0
- data/lib/makers/extensions/active_support/test_case.rb +15 -0
- data/lib/makers/maker.rb +32 -81
- data/lib/makers/proxy.rb +3 -42
- data/lib/makers/railtie.rb +10 -21
- data/lib/makers/version.rb +1 -1
- data/test/dummy/Rakefile +0 -1
- data/test/dummy/app/views/layouts/application.html.erb +9 -11
- data/test/dummy/bin/bundle +1 -0
- data/test/dummy/bin/rails +1 -0
- data/test/dummy/bin/rake +1 -0
- data/test/dummy/bin/setup +30 -0
- data/test/dummy/config/application.rb +3 -0
- data/test/dummy/config/database.yml +4 -22
- data/test/dummy/config/database.yml.travis +3 -0
- data/test/dummy/config/environments/development.rb +6 -2
- data/test/dummy/config/environments/production.rb +16 -24
- data/test/dummy/config/environments/test.rb +7 -12
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/secrets.yml +1 -1
- data/test/dummy/db/migrate/20140613221835_create_users.rb +0 -2
- data/test/dummy/db/migrate/20140615180954_create_posts.rb +0 -3
- data/test/dummy/db/schema.rb +38 -14
- data/test/dummy/log/development.log +176 -0
- data/test/dummy/log/test.log +1529 -0
- data/test/dummy/test/makers.rb +20 -0
- data/test/generator_test.rb +18 -0
- data/test/makers_test.rb +66 -0
- data/test/test_helper.rb +5 -18
- metadata +31 -48
- data/lib/generators/makers/model/model_generator.rb +0 -15
- data/lib/generators/makers/model/templates/maker.rb +0 -2
- data/lib/makers/callbacks.rb +0 -23
- data/lib/makers/configuration.rb +0 -10
- data/lib/makers/fetcher.rb +0 -18
- data/lib/makers/methods.rb +0 -11
- data/lib/makers/sequence.rb +0 -19
- data/test/aliases_test.rb +0 -20
- data/test/associations_test.rb +0 -50
- data/test/attributes_test.rb +0 -26
- data/test/callbacks_test.rb +0 -38
- data/test/clean_test.rb +0 -18
- data/test/dependent_test.rb +0 -30
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/test/makers/people.rb +0 -2
- data/test/dummy/test/makers/users.rb +0 -3
- data/test/fabricators_test.rb +0 -33
- data/test/generators_test.rb +0 -13
- data/test/inheritance_test.rb +0 -49
- data/test/lists_test.rb +0 -33
- data/test/load_test.rb +0 -13
- data/test/merges_test.rb +0 -31
@@ -0,0 +1,20 @@
|
|
1
|
+
Makers.define do
|
2
|
+
|
3
|
+
maker :user, aliases: :owner do
|
4
|
+
name 'name'
|
5
|
+
sequence(:username) { name }
|
6
|
+
sequence(:email) { |n| "mail#{n}@example.com" }
|
7
|
+
sequence(:phone)
|
8
|
+
posts
|
9
|
+
|
10
|
+
maker :user_with_age do
|
11
|
+
age 9
|
12
|
+
end
|
13
|
+
maker :user_with_posts do
|
14
|
+
posts 2, strategy: :create
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
maker :post
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'rails/generators'
|
3
|
+
require 'generators/makers/install_generator'
|
4
|
+
|
5
|
+
class GeneratorTest < Rails::Generators::TestCase
|
6
|
+
destination Rails.root.join('tmp')
|
7
|
+
|
8
|
+
teardown do
|
9
|
+
FileUtils.rm_rf destination_root
|
10
|
+
end
|
11
|
+
|
12
|
+
test 'install' do
|
13
|
+
self.class.tests Makers::Generators::InstallGenerator
|
14
|
+
run_generator
|
15
|
+
assert_file 'test/makers.rb'
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/test/makers_test.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class MakersTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
test 'overrides' do
|
6
|
+
assert_equal 'other', build(:user, name: 'other').name
|
7
|
+
list = build(:user, 3, name: 'other')
|
8
|
+
3.times do |index|
|
9
|
+
assert_equal 'other', list[index].name
|
10
|
+
end
|
11
|
+
|
12
|
+
assert_equal 'other', create(:user, name: 'other').name
|
13
|
+
list = create(:user, 3, name: 'other')
|
14
|
+
3.times do |index|
|
15
|
+
assert_equal 'other', list[index].name
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
test 'inheritance' do
|
20
|
+
user = build(:user_with_age)
|
21
|
+
assert_equal 'name', user.name
|
22
|
+
assert_equal 9, user.age
|
23
|
+
|
24
|
+
user = create(:user_with_age)
|
25
|
+
assert_equal 'name', user.name
|
26
|
+
assert_equal 9, user.age
|
27
|
+
end
|
28
|
+
|
29
|
+
test 'dependent' do
|
30
|
+
assert_equal 'name', build(:user).username
|
31
|
+
assert_equal 'name', create(:user).username
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'sequences' do
|
35
|
+
assert_operator build(:user).email, :<, create(:user).email
|
36
|
+
assert_operator build(:user).phone, :<, create(:user).phone
|
37
|
+
end
|
38
|
+
|
39
|
+
test 'aliases' do
|
40
|
+
user = Makers.definitions.find(:user)
|
41
|
+
assert_kind_of Makers::Maker, user
|
42
|
+
assert_equal user, Makers.definitions.find(:owner)
|
43
|
+
end
|
44
|
+
|
45
|
+
test 'associations' do
|
46
|
+
posts = build(:user).posts
|
47
|
+
assert_equal 1, posts.size
|
48
|
+
post = posts.first
|
49
|
+
assert post.new_record?
|
50
|
+
|
51
|
+
posts = build(:user_with_posts).posts
|
52
|
+
assert_equal 2, posts.size
|
53
|
+
post = posts.first
|
54
|
+
assert post.persisted?
|
55
|
+
end
|
56
|
+
|
57
|
+
test 'definitions' do
|
58
|
+
assert_raises do
|
59
|
+
Makers.find :wrong
|
60
|
+
end
|
61
|
+
assert_raises do
|
62
|
+
Makers.add :user
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,26 +1,13 @@
|
|
1
1
|
# Configure Rails Environment
|
2
2
|
ENV['RAILS_ENV'] = 'test'
|
3
3
|
|
4
|
-
require File.expand_path('
|
4
|
+
require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
|
5
|
+
ActiveRecord::Migrator.migrations_paths = [File.expand_path('../../test/dummy/db/migrate', __FILE__)]
|
5
6
|
require 'rails/test_help'
|
6
7
|
|
7
|
-
|
8
|
+
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
9
|
+
# to be shown.
|
10
|
+
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
8
11
|
|
9
12
|
# Load support files
|
10
13
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
|
-
|
12
|
-
# Load fixtures from the engine
|
13
|
-
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
14
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Load database
|
18
|
-
config = YAML::load(File.read(File.expand_path('../dummy/config/database.yml', __FILE__)))
|
19
|
-
config['test']['adapter'] = 'jdbcsqlite3' if RUBY_PLATFORM == 'java'
|
20
|
-
ActiveRecord::Base.establish_connection(config['test'])
|
21
|
-
load(File.expand_path('../dummy/db/schema.rb', __FILE__))
|
22
|
-
|
23
|
-
# Include methods
|
24
|
-
class ActiveSupport::TestCase
|
25
|
-
setup { Makers.reset }
|
26
|
-
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: makers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mmontossi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.
|
19
|
+
version: 4.2.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 4.3.0
|
@@ -26,27 +26,27 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 4.
|
29
|
+
version: 4.2.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.3.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: pg
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '0.18'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
47
|
-
description: Minimalistic
|
46
|
+
version: '0.18'
|
47
|
+
description: Minimalistic factories to replace fixtures in rails.
|
48
48
|
email:
|
49
|
-
- mmontossi@
|
49
|
+
- mmontossi@gmail.com
|
50
50
|
executables: []
|
51
51
|
extensions: []
|
52
52
|
extra_rdoc_files: []
|
@@ -54,26 +54,16 @@ files:
|
|
54
54
|
- MIT-LICENSE
|
55
55
|
- README.md
|
56
56
|
- Rakefile
|
57
|
-
- lib/generators/makers/
|
58
|
-
- lib/generators/makers/
|
57
|
+
- lib/generators/makers/install_generator.rb
|
58
|
+
- lib/generators/makers/templates/definitions.rb
|
59
59
|
- lib/makers.rb
|
60
|
-
- lib/makers/callbacks.rb
|
61
|
-
- lib/makers/configuration.rb
|
62
60
|
- lib/makers/definitions.rb
|
63
|
-
- lib/makers/
|
61
|
+
- lib/makers/dsl/maker.rb
|
62
|
+
- lib/makers/extensions/active_support/test_case.rb
|
64
63
|
- lib/makers/maker.rb
|
65
|
-
- lib/makers/methods.rb
|
66
64
|
- lib/makers/proxy.rb
|
67
65
|
- lib/makers/railtie.rb
|
68
|
-
- lib/makers/sequence.rb
|
69
66
|
- lib/makers/version.rb
|
70
|
-
- test/aliases_test.rb
|
71
|
-
- test/associations_test.rb
|
72
|
-
- test/attributes_test.rb
|
73
|
-
- test/callbacks_test.rb
|
74
|
-
- test/clean_test.rb
|
75
|
-
- test/dependent_test.rb
|
76
|
-
- test/dummy/README.rdoc
|
77
67
|
- test/dummy/Rakefile
|
78
68
|
- test/dummy/app/assets/javascripts/application.js
|
79
69
|
- test/dummy/app/assets/stylesheets/application.css
|
@@ -86,14 +76,17 @@ files:
|
|
86
76
|
- test/dummy/bin/bundle
|
87
77
|
- test/dummy/bin/rails
|
88
78
|
- test/dummy/bin/rake
|
79
|
+
- test/dummy/bin/setup
|
89
80
|
- test/dummy/config.ru
|
90
81
|
- test/dummy/config/application.rb
|
91
82
|
- test/dummy/config/boot.rb
|
92
83
|
- test/dummy/config/database.yml
|
84
|
+
- test/dummy/config/database.yml.travis
|
93
85
|
- test/dummy/config/environment.rb
|
94
86
|
- test/dummy/config/environments/development.rb
|
95
87
|
- test/dummy/config/environments/production.rb
|
96
88
|
- test/dummy/config/environments/test.rb
|
89
|
+
- test/dummy/config/initializers/assets.rb
|
97
90
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
98
91
|
- test/dummy/config/initializers/cookies_serializer.rb
|
99
92
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
@@ -107,18 +100,15 @@ files:
|
|
107
100
|
- test/dummy/db/migrate/20140613221835_create_users.rb
|
108
101
|
- test/dummy/db/migrate/20140615180954_create_posts.rb
|
109
102
|
- test/dummy/db/schema.rb
|
103
|
+
- test/dummy/log/development.log
|
104
|
+
- test/dummy/log/test.log
|
110
105
|
- test/dummy/public/404.html
|
111
106
|
- test/dummy/public/422.html
|
112
107
|
- test/dummy/public/500.html
|
113
108
|
- test/dummy/public/favicon.ico
|
114
|
-
- test/dummy/test/makers
|
115
|
-
- test/
|
116
|
-
- test/
|
117
|
-
- test/generators_test.rb
|
118
|
-
- test/inheritance_test.rb
|
119
|
-
- test/lists_test.rb
|
120
|
-
- test/load_test.rb
|
121
|
-
- test/merges_test.rb
|
109
|
+
- test/dummy/test/makers.rb
|
110
|
+
- test/generator_test.rb
|
111
|
+
- test/makers_test.rb
|
122
112
|
- test/test_helper.rb
|
123
113
|
homepage: https://github.com/mmontossi/makers
|
124
114
|
licenses:
|
@@ -132,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
122
|
requirements:
|
133
123
|
- - ">="
|
134
124
|
- !ruby/object:Gem::Version
|
135
|
-
version:
|
125
|
+
version: 2.0.0
|
136
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
127
|
requirements:
|
138
128
|
- - ">="
|
@@ -140,17 +130,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
130
|
version: '0'
|
141
131
|
requirements: []
|
142
132
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.
|
133
|
+
rubygems_version: 2.5.1
|
144
134
|
signing_key:
|
145
135
|
specification_version: 4
|
146
136
|
summary: Makers for Rails
|
147
137
|
test_files:
|
148
|
-
- test/aliases_test.rb
|
149
|
-
- test/associations_test.rb
|
150
|
-
- test/attributes_test.rb
|
151
|
-
- test/callbacks_test.rb
|
152
|
-
- test/clean_test.rb
|
153
|
-
- test/dependent_test.rb
|
154
138
|
- test/dummy/app/assets/javascripts/application.js
|
155
139
|
- test/dummy/app/assets/stylesheets/application.css
|
156
140
|
- test/dummy/app/controllers/application_controller.rb
|
@@ -162,13 +146,16 @@ test_files:
|
|
162
146
|
- test/dummy/bin/bundle
|
163
147
|
- test/dummy/bin/rails
|
164
148
|
- test/dummy/bin/rake
|
149
|
+
- test/dummy/bin/setup
|
165
150
|
- test/dummy/config/application.rb
|
166
151
|
- test/dummy/config/boot.rb
|
167
152
|
- test/dummy/config/database.yml
|
153
|
+
- test/dummy/config/database.yml.travis
|
168
154
|
- test/dummy/config/environment.rb
|
169
155
|
- test/dummy/config/environments/development.rb
|
170
156
|
- test/dummy/config/environments/production.rb
|
171
157
|
- test/dummy/config/environments/test.rb
|
158
|
+
- test/dummy/config/initializers/assets.rb
|
172
159
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
173
160
|
- test/dummy/config/initializers/cookies_serializer.rb
|
174
161
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
@@ -183,18 +170,14 @@ test_files:
|
|
183
170
|
- test/dummy/db/migrate/20140613221835_create_users.rb
|
184
171
|
- test/dummy/db/migrate/20140615180954_create_posts.rb
|
185
172
|
- test/dummy/db/schema.rb
|
173
|
+
- test/dummy/log/development.log
|
174
|
+
- test/dummy/log/test.log
|
186
175
|
- test/dummy/public/404.html
|
187
176
|
- test/dummy/public/422.html
|
188
177
|
- test/dummy/public/500.html
|
189
178
|
- test/dummy/public/favicon.ico
|
190
179
|
- test/dummy/Rakefile
|
191
|
-
- test/dummy/
|
192
|
-
- test/
|
193
|
-
- test/
|
194
|
-
- test/fabricators_test.rb
|
195
|
-
- test/generators_test.rb
|
196
|
-
- test/inheritance_test.rb
|
197
|
-
- test/lists_test.rb
|
198
|
-
- test/load_test.rb
|
199
|
-
- test/merges_test.rb
|
180
|
+
- test/dummy/test/makers.rb
|
181
|
+
- test/generator_test.rb
|
182
|
+
- test/makers_test.rb
|
200
183
|
- test/test_helper.rb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'rails/generators/named_base'
|
2
|
-
|
3
|
-
module Makers
|
4
|
-
module Generators
|
5
|
-
class ModelGenerator < Rails::Generators::NamedBase
|
6
|
-
|
7
|
-
source_root File.expand_path('../templates', __FILE__)
|
8
|
-
|
9
|
-
def create_fixture_file
|
10
|
-
template 'maker.rb', Makers.path.join("#{table_name}.rb")
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/makers/callbacks.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Makers
|
2
|
-
module Callbacks
|
3
|
-
|
4
|
-
def callbacks
|
5
|
-
@callbacks ||= {}
|
6
|
-
end
|
7
|
-
|
8
|
-
%w(after before).each do |moment|
|
9
|
-
define_method moment do |actions, &block|
|
10
|
-
actions = [actions] unless actions.is_a? Array
|
11
|
-
actions.each do |action|
|
12
|
-
name = :"#{moment}_#{action}"
|
13
|
-
if callbacks[name]
|
14
|
-
callbacks[name] << block
|
15
|
-
else
|
16
|
-
callbacks[name] = [block]
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
data/lib/makers/configuration.rb
DELETED
data/lib/makers/fetcher.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Makers
|
2
|
-
class Fetcher
|
3
|
-
|
4
|
-
def initialize(name, options, &block)
|
5
|
-
@name = name
|
6
|
-
@options = options
|
7
|
-
instance_eval &block
|
8
|
-
end
|
9
|
-
|
10
|
-
def maker(name, options={}, &block)
|
11
|
-
Makers.definitions.maker name, @options.merge(options.merge(parent: @name)), &block
|
12
|
-
end
|
13
|
-
|
14
|
-
def method_missing(name, *args, &block)
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
data/lib/makers/methods.rb
DELETED
data/lib/makers/sequence.rb
DELETED