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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +4 -2
  4. data/lib/active_mocker.rb +9 -25
  5. data/lib/active_mocker/config.rb +26 -46
  6. data/lib/active_mocker/generate.rb +115 -110
  7. data/lib/active_mocker/loaded_mocks.rb +76 -65
  8. data/lib/active_mocker/mock/base.rb +283 -287
  9. data/lib/active_mocker/mock/has_many.rb +2 -0
  10. data/lib/active_mocker/mock_creator.rb +262 -0
  11. data/lib/active_mocker/mock_template.erb +9 -186
  12. data/lib/active_mocker/mock_template/_associations.erb +82 -0
  13. data/lib/active_mocker/mock_template/_attributes.erb +11 -0
  14. data/lib/active_mocker/mock_template/_class_methods.erb +41 -0
  15. data/lib/active_mocker/mock_template/_defined_methods.erb +10 -0
  16. data/lib/active_mocker/mock_template/_modules_constants.erb +10 -0
  17. data/lib/active_mocker/mock_template/_scopes.erb +23 -0
  18. data/lib/active_mocker/null_progress.rb +9 -0
  19. data/lib/active_mocker/output_capture.rb +32 -0
  20. data/lib/active_mocker/parent_class.rb +64 -0
  21. data/lib/active_mocker/progress.rb +13 -0
  22. data/lib/active_mocker/public_methods.rb +15 -23
  23. data/lib/active_mocker/rspec.rb +16 -0
  24. data/lib/active_mocker/rspec_helper.rb +10 -8
  25. data/lib/active_mocker/task.rake +6 -1
  26. data/lib/active_mocker/template_creator.rb +22 -0
  27. data/lib/active_mocker/version.rb +1 -1
  28. metadata +43 -103
  29. data/lib/active_mocker/active_record.rb +0 -74
  30. data/lib/active_mocker/active_record/field.rb +0 -39
  31. data/lib/active_mocker/active_record/relationships.rb +0 -110
  32. data/lib/active_mocker/active_record/schema.rb +0 -81
  33. data/lib/active_mocker/active_record/scope.rb +0 -22
  34. data/lib/active_mocker/active_record/table.rb +0 -26
  35. data/lib/active_mocker/active_record/unknown_class_method.rb +0 -17
  36. data/lib/active_mocker/active_record/unknown_module.rb +0 -30
  37. data/lib/active_mocker/db_to_ruby_type.rb +0 -29
  38. data/lib/active_mocker/file_reader.rb +0 -11
  39. data/lib/active_mocker/model_reader.rb +0 -191
  40. data/lib/active_mocker/model_schema.rb +0 -285
  41. data/lib/active_mocker/model_schema/assemble.rb +0 -220
  42. data/lib/active_mocker/reparameterize.rb +0 -41
  43. data/lib/active_mocker/ruby_parse.rb +0 -68
  44. data/lib/active_mocker/schema_reader.rb +0 -30
  45. data/lib/active_mocker/string_reader.rb +0 -18
@@ -1,3 +1,3 @@
1
1
  module ActiveMocker
2
- VERSION = "1.8.4"
2
+ VERSION = "2.0.0.beta1"
3
3
  end
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: 1.8.4
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-10-06 00:00:00.000000000 Z
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: '1.0'
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: '1.0'
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.4'
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.4'
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: bundler
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: '3'
132
- type: :development
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: '3'
82
+ version: 0.3.0
139
83
  - !ruby/object:Gem::Dependency
140
- name: sqlite3
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: '1.3'
146
- type: :development
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: '1.3'
96
+ version: 0.2.1
153
97
  - !ruby/object:Gem::Dependency
154
- name: rspec-rails
98
+ name: dissociated_introspection
155
99
  requirement: !ruby/object:Gem::Requirement
156
100
  requirements:
157
- - - "~>"
101
+ - - '='
158
102
  - !ruby/object:Gem::Version
159
- version: '3'
160
- type: :development
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: '3'
110
+ version: 0.1.5
167
111
  - !ruby/object:Gem::Dependency
168
- name: rspec-given
112
+ name: bundler
169
113
  requirement: !ruby/object:Gem::Requirement
170
114
  requirements:
171
115
  - - "~>"
172
116
  - !ruby/object:Gem::Version
173
- version: '3.5'
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: '3.5'
124
+ version: '1.10'
181
125
  - !ruby/object:Gem::Dependency
182
- name: appraisal
126
+ name: rspec
183
127
  requirement: !ruby/object:Gem::Requirement
184
128
  requirements:
185
129
  - - "~>"
186
130
  - !ruby/object:Gem::Version
187
- version: '1.0'
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: '1.0'
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/model_reader.rb
248
- - lib/active_mocker/model_schema.rb
249
- - lib/active_mocker/model_schema/assemble.rb
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/reparameterize.rb
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: '0'
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