active_mocker 1.8.4 → 2.0.0.beta1
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/CHANGELOG.md +13 -0
- data/README.md +4 -2
- data/lib/active_mocker.rb +9 -25
- data/lib/active_mocker/config.rb +26 -46
- data/lib/active_mocker/generate.rb +115 -110
- data/lib/active_mocker/loaded_mocks.rb +76 -65
- data/lib/active_mocker/mock/base.rb +283 -287
- data/lib/active_mocker/mock/has_many.rb +2 -0
- data/lib/active_mocker/mock_creator.rb +262 -0
- data/lib/active_mocker/mock_template.erb +9 -186
- data/lib/active_mocker/mock_template/_associations.erb +82 -0
- data/lib/active_mocker/mock_template/_attributes.erb +11 -0
- data/lib/active_mocker/mock_template/_class_methods.erb +41 -0
- data/lib/active_mocker/mock_template/_defined_methods.erb +10 -0
- data/lib/active_mocker/mock_template/_modules_constants.erb +10 -0
- data/lib/active_mocker/mock_template/_scopes.erb +23 -0
- data/lib/active_mocker/null_progress.rb +9 -0
- data/lib/active_mocker/output_capture.rb +32 -0
- data/lib/active_mocker/parent_class.rb +64 -0
- data/lib/active_mocker/progress.rb +13 -0
- data/lib/active_mocker/public_methods.rb +15 -23
- data/lib/active_mocker/rspec.rb +16 -0
- data/lib/active_mocker/rspec_helper.rb +10 -8
- data/lib/active_mocker/task.rake +6 -1
- data/lib/active_mocker/template_creator.rb +22 -0
- data/lib/active_mocker/version.rb +1 -1
- metadata +43 -103
- data/lib/active_mocker/active_record.rb +0 -74
- data/lib/active_mocker/active_record/field.rb +0 -39
- data/lib/active_mocker/active_record/relationships.rb +0 -110
- data/lib/active_mocker/active_record/schema.rb +0 -81
- data/lib/active_mocker/active_record/scope.rb +0 -22
- data/lib/active_mocker/active_record/table.rb +0 -26
- data/lib/active_mocker/active_record/unknown_class_method.rb +0 -17
- data/lib/active_mocker/active_record/unknown_module.rb +0 -30
- data/lib/active_mocker/db_to_ruby_type.rb +0 -29
- data/lib/active_mocker/file_reader.rb +0 -11
- data/lib/active_mocker/model_reader.rb +0 -191
- data/lib/active_mocker/model_schema.rb +0 -285
- data/lib/active_mocker/model_schema/assemble.rb +0 -220
- data/lib/active_mocker/reparameterize.rb +0 -41
- data/lib/active_mocker/ruby_parse.rb +0 -68
- data/lib/active_mocker/schema_reader.rb +0 -30
- data/lib/active_mocker/string_reader.rb +0 -18
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_mocker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dustin Zeisler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -30,70 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.0.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.0.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ruby-progressbar
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.7'
|
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
|
-
version: '1.
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: parser
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '2.1'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '2.1'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: unparser
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0.1'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0.1'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: attr_permit
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0.0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0.0'
|
54
|
+
version: '1.7'
|
97
55
|
- !ruby/object:Gem::Dependency
|
98
56
|
name: rake
|
99
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,89 +67,75 @@ dependencies:
|
|
109
67
|
- !ruby/object:Gem::Version
|
110
68
|
version: '10.0'
|
111
69
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '1.5'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '1.5'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec
|
70
|
+
name: reverse_parameters
|
127
71
|
requirement: !ruby/object:Gem::Requirement
|
128
72
|
requirements:
|
129
73
|
- - '='
|
130
74
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
132
|
-
type: :
|
75
|
+
version: 0.3.0
|
76
|
+
type: :runtime
|
133
77
|
prerelease: false
|
134
78
|
version_requirements: !ruby/object:Gem::Requirement
|
135
79
|
requirements:
|
136
80
|
- - '='
|
137
81
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
82
|
+
version: 0.3.0
|
139
83
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
84
|
+
name: active_record_schema_scrapper
|
141
85
|
requirement: !ruby/object:Gem::Requirement
|
142
86
|
requirements:
|
143
|
-
- -
|
87
|
+
- - '='
|
144
88
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
146
|
-
type: :
|
89
|
+
version: 0.2.1
|
90
|
+
type: :runtime
|
147
91
|
prerelease: false
|
148
92
|
version_requirements: !ruby/object:Gem::Requirement
|
149
93
|
requirements:
|
150
|
-
- -
|
94
|
+
- - '='
|
151
95
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
96
|
+
version: 0.2.1
|
153
97
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
98
|
+
name: dissociated_introspection
|
155
99
|
requirement: !ruby/object:Gem::Requirement
|
156
100
|
requirements:
|
157
|
-
- -
|
101
|
+
- - '='
|
158
102
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
160
|
-
type: :
|
103
|
+
version: 0.1.5
|
104
|
+
type: :runtime
|
161
105
|
prerelease: false
|
162
106
|
version_requirements: !ruby/object:Gem::Requirement
|
163
107
|
requirements:
|
164
|
-
- -
|
108
|
+
- - '='
|
165
109
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
110
|
+
version: 0.1.5
|
167
111
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
112
|
+
name: bundler
|
169
113
|
requirement: !ruby/object:Gem::Requirement
|
170
114
|
requirements:
|
171
115
|
- - "~>"
|
172
116
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
117
|
+
version: '1.10'
|
174
118
|
type: :development
|
175
119
|
prerelease: false
|
176
120
|
version_requirements: !ruby/object:Gem::Requirement
|
177
121
|
requirements:
|
178
122
|
- - "~>"
|
179
123
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
124
|
+
version: '1.10'
|
181
125
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
126
|
+
name: rspec
|
183
127
|
requirement: !ruby/object:Gem::Requirement
|
184
128
|
requirements:
|
185
129
|
- - "~>"
|
186
130
|
- !ruby/object:Gem::Version
|
187
|
-
version: '
|
131
|
+
version: '3.4'
|
188
132
|
type: :development
|
189
133
|
prerelease: false
|
190
134
|
version_requirements: !ruby/object:Gem::Requirement
|
191
135
|
requirements:
|
192
136
|
- - "~>"
|
193
137
|
- !ruby/object:Gem::Version
|
194
|
-
version: '
|
138
|
+
version: '3.4'
|
195
139
|
description: ActiveMocker creates mocks classes from ActiveRecord models. Allowing
|
196
140
|
your test suite to run very fast by not loading Rails or a database. It parses the
|
197
141
|
schema.rb and the defined methods on a model then generates a ruby file that can
|
@@ -211,17 +155,7 @@ files:
|
|
211
155
|
- LICENSE.txt
|
212
156
|
- README.md
|
213
157
|
- lib/active_mocker.rb
|
214
|
-
- lib/active_mocker/active_record.rb
|
215
|
-
- lib/active_mocker/active_record/field.rb
|
216
|
-
- lib/active_mocker/active_record/relationships.rb
|
217
|
-
- lib/active_mocker/active_record/schema.rb
|
218
|
-
- lib/active_mocker/active_record/scope.rb
|
219
|
-
- lib/active_mocker/active_record/table.rb
|
220
|
-
- lib/active_mocker/active_record/unknown_class_method.rb
|
221
|
-
- lib/active_mocker/active_record/unknown_module.rb
|
222
158
|
- lib/active_mocker/config.rb
|
223
|
-
- lib/active_mocker/db_to_ruby_type.rb
|
224
|
-
- lib/active_mocker/file_reader.rb
|
225
159
|
- lib/active_mocker/generate.rb
|
226
160
|
- lib/active_mocker/loaded_mocks.rb
|
227
161
|
- lib/active_mocker/logger.rb
|
@@ -243,18 +177,24 @@ files:
|
|
243
177
|
- lib/active_mocker/mock/relation.rb
|
244
178
|
- lib/active_mocker/mock/single_relation.rb
|
245
179
|
- lib/active_mocker/mock/template_methods.rb
|
180
|
+
- lib/active_mocker/mock_creator.rb
|
246
181
|
- lib/active_mocker/mock_template.erb
|
247
|
-
- lib/active_mocker/
|
248
|
-
- lib/active_mocker/
|
249
|
-
- lib/active_mocker/
|
182
|
+
- lib/active_mocker/mock_template/_associations.erb
|
183
|
+
- lib/active_mocker/mock_template/_attributes.erb
|
184
|
+
- lib/active_mocker/mock_template/_class_methods.erb
|
185
|
+
- lib/active_mocker/mock_template/_defined_methods.erb
|
186
|
+
- lib/active_mocker/mock_template/_modules_constants.erb
|
187
|
+
- lib/active_mocker/mock_template/_scopes.erb
|
188
|
+
- lib/active_mocker/null_progress.rb
|
189
|
+
- lib/active_mocker/output_capture.rb
|
190
|
+
- lib/active_mocker/parent_class.rb
|
191
|
+
- lib/active_mocker/progress.rb
|
250
192
|
- lib/active_mocker/public_methods.rb
|
251
193
|
- lib/active_mocker/railtie.rb
|
252
|
-
- lib/active_mocker/
|
194
|
+
- lib/active_mocker/rspec.rb
|
253
195
|
- lib/active_mocker/rspec_helper.rb
|
254
|
-
- lib/active_mocker/ruby_parse.rb
|
255
|
-
- lib/active_mocker/schema_reader.rb
|
256
|
-
- lib/active_mocker/string_reader.rb
|
257
196
|
- lib/active_mocker/task.rake
|
197
|
+
- lib/active_mocker/template_creator.rb
|
258
198
|
- lib/active_mocker/version.rb
|
259
199
|
homepage: https://github.com/zeisler/active_mocker
|
260
200
|
licenses:
|
@@ -271,9 +211,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
271
211
|
version: '2.1'
|
272
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
273
213
|
requirements:
|
274
|
-
- - "
|
214
|
+
- - ">"
|
275
215
|
- !ruby/object:Gem::Version
|
276
|
-
version:
|
216
|
+
version: 1.3.1
|
277
217
|
requirements: []
|
278
218
|
rubyforge_project:
|
279
219
|
rubygems_version: 2.2.5
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'active_mocker/active_record/scope'
|
2
|
-
require 'active_mocker/active_record/unknown_class_method'
|
3
|
-
require 'active_mocker/active_record/unknown_module'
|
4
|
-
require 'active_mocker/active_record/relationships'
|
5
|
-
|
6
|
-
module ActiveMocker
|
7
|
-
# @api private
|
8
|
-
module ActiveRecord
|
9
|
-
class Base
|
10
|
-
extend Scope
|
11
|
-
extend UnknownClassMethod
|
12
|
-
extend Relationships
|
13
|
-
|
14
|
-
def self.inherited(subclass)
|
15
|
-
return if subclass.superclass == Base
|
16
|
-
instance_variables.each do |instance_var|
|
17
|
-
subclass.instance_variable_set(instance_var, instance_variable_get(instance_var))
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.table_name=(table_name)
|
22
|
-
@table_name = table_name
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.table_name
|
26
|
-
@table_name ||= nil
|
27
|
-
@table_name
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.primary_key=(primary_key)
|
31
|
-
@primary_key = primary_key
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.primary_key
|
35
|
-
@primary_key ||= nil
|
36
|
-
@primary_key
|
37
|
-
end
|
38
|
-
|
39
|
-
module ConstMissing
|
40
|
-
|
41
|
-
def const_missing(name)
|
42
|
-
Config.logger.debug "const_missing #{name} from class #{self.name}. Creating Class.\n #{caller.first}"
|
43
|
-
m = Module.new
|
44
|
-
m.extend ConstMissing
|
45
|
-
self.const_set name, m
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.const_missing(name)
|
51
|
-
Config.logger.debug "const_missing #{name} from class #{self.name.demodulize }. Creating Class.\n #{caller.first}"
|
52
|
-
m = Module.new
|
53
|
-
m.extend ConstMissing
|
54
|
-
Object.const_set name, m
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.include(name)
|
58
|
-
_included << name
|
59
|
-
end
|
60
|
-
|
61
|
-
def self._included
|
62
|
-
@included ||= []
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.extend(name)
|
66
|
-
_extended << name
|
67
|
-
end
|
68
|
-
|
69
|
-
def self._extended
|
70
|
-
@extended ||= []
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module ActiveMocker
|
2
|
-
module ActiveRecord
|
3
|
-
# @api private
|
4
|
-
class Field
|
5
|
-
|
6
|
-
attr_accessor :name, :type, :options
|
7
|
-
|
8
|
-
def initialize(name, type, options)
|
9
|
-
@name = name
|
10
|
-
@type = type
|
11
|
-
@primary_key
|
12
|
-
@options = options.first || {}
|
13
|
-
end
|
14
|
-
|
15
|
-
def primary_key
|
16
|
-
@primary_key
|
17
|
-
end
|
18
|
-
|
19
|
-
def to_h
|
20
|
-
{name: name, type: type, options: options}
|
21
|
-
end
|
22
|
-
|
23
|
-
alias_method :to_hash, :to_h
|
24
|
-
|
25
|
-
def default
|
26
|
-
options[:default]
|
27
|
-
end
|
28
|
-
|
29
|
-
def precision
|
30
|
-
options[:precision]
|
31
|
-
end
|
32
|
-
|
33
|
-
def scale
|
34
|
-
options[:scale]
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,110 +0,0 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
require 'active_support/core_ext/string'
|
3
|
-
module ActiveMocker
|
4
|
-
|
5
|
-
module ActiveRecord
|
6
|
-
|
7
|
-
module Relationships
|
8
|
-
|
9
|
-
def self.included(base)
|
10
|
-
base.extend(ClassMethods)
|
11
|
-
end
|
12
|
-
|
13
|
-
module ClassMethods
|
14
|
-
attr_reader :has_and_belongs_to_many, :belongs_to, :has_one, :has_many
|
15
|
-
end
|
16
|
-
|
17
|
-
def relationships
|
18
|
-
OpenStruct.new({has_many: @has_many ||= [],
|
19
|
-
has_one: @has_one ||= [],
|
20
|
-
belongs_to: @belongs_to ||= [],
|
21
|
-
has_and_belongs_to_many: @has_and_belongs_to_many ||= []})
|
22
|
-
end
|
23
|
-
|
24
|
-
def single_relationships
|
25
|
-
belongs_to + has_one
|
26
|
-
end
|
27
|
-
|
28
|
-
def collections
|
29
|
-
has_and_belongs_to_many + has_many
|
30
|
-
end
|
31
|
-
|
32
|
-
class Relationship
|
33
|
-
attr_reader :name
|
34
|
-
|
35
|
-
def initialize(name, options={})
|
36
|
-
@name = name
|
37
|
-
end
|
38
|
-
|
39
|
-
def options
|
40
|
-
@options.symbolize_keys
|
41
|
-
end
|
42
|
-
|
43
|
-
def through
|
44
|
-
options[:through]
|
45
|
-
end
|
46
|
-
|
47
|
-
def class_name
|
48
|
-
options[:class_name] || name.to_s.camelize.singularize
|
49
|
-
end
|
50
|
-
|
51
|
-
def foreign_key
|
52
|
-
options[:foreign_key] || name.to_s.foreign_key
|
53
|
-
end
|
54
|
-
|
55
|
-
def join_table
|
56
|
-
options[:join_table]
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
class HasMany < Relationship
|
61
|
-
|
62
|
-
attr_reader :klass_name
|
63
|
-
|
64
|
-
def initialize(name, klass_name, options={})
|
65
|
-
@klass_name = klass_name
|
66
|
-
super(name, options)
|
67
|
-
end
|
68
|
-
|
69
|
-
def foreign_key
|
70
|
-
options[:foreign_key] || klass_name.to_s.foreign_key
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
def has_many(*args)
|
76
|
-
@has_many ||= []
|
77
|
-
@has_many.push HasMany.new(args.shift, self.name, args)
|
78
|
-
end
|
79
|
-
|
80
|
-
class HasOne < Relationship
|
81
|
-
end
|
82
|
-
|
83
|
-
def has_one(*args)
|
84
|
-
@has_one ||= []
|
85
|
-
@has_one.push HasOne.new(args.shift, args)
|
86
|
-
end
|
87
|
-
|
88
|
-
class BelongsTo < Relationship
|
89
|
-
end
|
90
|
-
|
91
|
-
def belongs_to(*args)
|
92
|
-
@belongs_to ||= []
|
93
|
-
@belongs_to.push BelongsTo.new(args.shift, args)
|
94
|
-
end
|
95
|
-
|
96
|
-
|
97
|
-
class HasAndBelongsToMany < Relationship
|
98
|
-
end
|
99
|
-
|
100
|
-
def has_and_belongs_to_many(*args)
|
101
|
-
@has_and_belongs_to_many ||= []
|
102
|
-
@has_and_belongs_to_many.push HasAndBelongsToMany.new(args.shift, args)
|
103
|
-
end
|
104
|
-
|
105
|
-
|
106
|
-
end
|
107
|
-
|
108
|
-
end
|
109
|
-
|
110
|
-
end
|