active_mocker 1.8.4 → 2.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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