active_mocker 1.4.2 → 1.5

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 (213) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +35 -29
  4. data/lib/active_mocker.rb +3 -1
  5. data/lib/active_mocker/active_record.rb +27 -5
  6. data/lib/active_mocker/active_record/scope.rb +5 -5
  7. data/lib/active_mocker/active_record/unknown_module.rb +4 -4
  8. data/lib/active_mocker/generate.rb +36 -15
  9. data/lib/active_mocker/loaded_mocks.rb +60 -54
  10. data/lib/active_mocker/mock.rb +24 -0
  11. data/lib/active_mocker/mock/association.rb +6 -0
  12. data/lib/{active_mock → active_mocker/mock}/base.rb +43 -89
  13. data/lib/{active_mock → active_mocker/mock}/collection.rb +14 -7
  14. data/lib/{active_mock → active_mocker/mock}/do_nothing_active_record_methods.rb +7 -1
  15. data/lib/active_mocker/mock/exceptions.rb +25 -0
  16. data/lib/active_mocker/mock/has_and_belongs_to_many.rb +6 -0
  17. data/lib/active_mocker/mock/has_many.rb +60 -0
  18. data/lib/active_mocker/mock/hash_process.rb +19 -0
  19. data/lib/active_mocker/mock/mock_abilities.rb +98 -0
  20. data/lib/{active_mock → active_mocker/mock}/next_id.rb +7 -2
  21. data/lib/{active_mock → active_mocker/mock}/object_inspect.rb +3 -1
  22. data/lib/{active_mock → active_mocker/mock}/queries.rb +32 -29
  23. data/lib/active_mocker/mock/records.rb +62 -0
  24. data/lib/{active_mock → active_mocker/mock}/relation.rb +4 -3
  25. data/lib/active_mocker/mock/template_methods.rb +39 -0
  26. data/lib/active_mocker/mock_template.erb +45 -31
  27. data/lib/active_mocker/model_reader.rb +29 -0
  28. data/lib/active_mocker/model_schema.rb +23 -16
  29. data/lib/active_mocker/model_schema/generate.rb +19 -8
  30. data/lib/active_mocker/railtie.rb +17 -0
  31. data/lib/active_mocker/reparameterize.rb +2 -4
  32. data/lib/active_mocker/rspec_helper.rb +18 -0
  33. data/lib/active_mocker/task.rake +15 -0
  34. data/lib/active_mocker/version.rb +1 -1
  35. metadata +80 -206
  36. data/.gitignore +0 -19
  37. data/.hound.yml +0 -0
  38. data/.travis.yml +0 -5
  39. data/Gemfile +0 -4
  40. data/Rakefile +0 -26
  41. data/active_mocker.gemspec +0 -40
  42. data/lib/active_mock/association.rb +0 -7
  43. data/lib/active_mock/creators.rb +0 -25
  44. data/lib/active_mock/has_and_belongs_to_many.rb +0 -7
  45. data/lib/active_mock/has_many.rb +0 -54
  46. data/lib/active_mock/records.rb +0 -83
  47. data/lib/active_mocker/active_mock.rb +0 -26
  48. data/lib/active_mocker/active_record/const_missing.rb +0 -5
  49. data/lib/active_mocker/class_exists.rb +0 -12
  50. data/lib/active_mocker/const_sets.rb +0 -24
  51. data/lib/active_mocker/mock_task.rb +0 -12
  52. data/sample_app_rails_4/.idea/.generators +0 -8
  53. data/sample_app_rails_4/.idea/.name +0 -1
  54. data/sample_app_rails_4/.idea/.rakeTasks +0 -7
  55. data/sample_app_rails_4/.idea/dataSources.ids +0 -141
  56. data/sample_app_rails_4/.idea/dataSources.xml +0 -36
  57. data/sample_app_rails_4/.idea/dictionaries/zeisler.xml +0 -3
  58. data/sample_app_rails_4/.idea/encodings.xml +0 -5
  59. data/sample_app_rails_4/.idea/inspectionProfiles/Project_Default.xml +0 -20
  60. data/sample_app_rails_4/.idea/inspectionProfiles/profiles_settings.xml +0 -7
  61. data/sample_app_rails_4/.idea/misc.xml +0 -5
  62. data/sample_app_rails_4/.idea/modules.xml +0 -10
  63. data/sample_app_rails_4/.idea/runConfigurations/Development__sample_app_rails_4.xml +0 -28
  64. data/sample_app_rails_4/.idea/runConfigurations/Production__sample_app_rails_4.xml +0 -28
  65. data/sample_app_rails_4/.idea/runConfigurations/spec__sample_app_rails_4.xml +0 -26
  66. data/sample_app_rails_4/.idea/runConfigurations/test__sample_app_rails_4.xml +0 -28
  67. data/sample_app_rails_4/.idea/sample_app_rails_4.iml +0 -262
  68. data/sample_app_rails_4/.idea/scopes/scope_settings.xml +0 -5
  69. data/sample_app_rails_4/.idea/vcs.xml +0 -7
  70. data/sample_app_rails_4/.idea/workspace.xml +0 -619
  71. data/sample_app_rails_4/.rspec +0 -1
  72. data/sample_app_rails_4/.secret +0 -1
  73. data/sample_app_rails_4/Gemfile +0 -13
  74. data/sample_app_rails_4/Guardfile +0 -53
  75. data/sample_app_rails_4/LICENSE +0 -21
  76. data/sample_app_rails_4/README.md +0 -25
  77. data/sample_app_rails_4/README.nitrous.md +0 -20
  78. data/sample_app_rails_4/Rakefile +0 -6
  79. data/sample_app_rails_4/app/assets/images/rails.png +0 -0
  80. data/sample_app_rails_4/app/assets/javascripts/application.js +0 -17
  81. data/sample_app_rails_4/app/assets/javascripts/sessions.js.coffee +0 -3
  82. data/sample_app_rails_4/app/assets/javascripts/static_pages.js.coffee +0 -3
  83. data/sample_app_rails_4/app/assets/javascripts/users.js.coffee +0 -3
  84. data/sample_app_rails_4/app/assets/stylesheets/application.css +0 -13
  85. data/sample_app_rails_4/app/assets/stylesheets/custom.css.scss +0 -246
  86. data/sample_app_rails_4/app/assets/stylesheets/sessions.css.scss +0 -3
  87. data/sample_app_rails_4/app/assets/stylesheets/static_pages.css.scss +0 -3
  88. data/sample_app_rails_4/app/assets/stylesheets/users.css.scss +0 -3
  89. data/sample_app_rails_4/app/controllers/application_controller.rb +0 -6
  90. data/sample_app_rails_4/app/controllers/concerns/.keep +0 -0
  91. data/sample_app_rails_4/app/controllers/microposts_controller.rb +0 -31
  92. data/sample_app_rails_4/app/controllers/relationships_controller.rb +0 -21
  93. data/sample_app_rails_4/app/controllers/sessions_controller.rb +0 -21
  94. data/sample_app_rails_4/app/controllers/static_pages_controller.rb +0 -18
  95. data/sample_app_rails_4/app/controllers/users_controller.rb +0 -80
  96. data/sample_app_rails_4/app/helpers/application_helper.rb +0 -12
  97. data/sample_app_rails_4/app/helpers/sessions_helper.rb +0 -49
  98. data/sample_app_rails_4/app/helpers/static_pages_helper.rb +0 -2
  99. data/sample_app_rails_4/app/helpers/users_helper.rb +0 -10
  100. data/sample_app_rails_4/app/mailers/.keep +0 -0
  101. data/sample_app_rails_4/app/models/.keep +0 -0
  102. data/sample_app_rails_4/app/models/concerns/.keep +0 -0
  103. data/sample_app_rails_4/app/models/micropost.rb +0 -24
  104. data/sample_app_rails_4/app/models/relationship.rb +0 -6
  105. data/sample_app_rails_4/app/models/user.rb +0 -39
  106. data/sample_app_rails_4/app/views/layouts/_footer.html.erb +0 -13
  107. data/sample_app_rails_4/app/views/layouts/_header.html.erb +0 -31
  108. data/sample_app_rails_4/app/views/layouts/_shim.html.erb +0 -3
  109. data/sample_app_rails_4/app/views/layouts/application.html.erb +0 -22
  110. data/sample_app_rails_4/app/views/microposts/_micropost.html.erb +0 -11
  111. data/sample_app_rails_4/app/views/relationships/create.js.erb +0 -2
  112. data/sample_app_rails_4/app/views/relationships/destroy.js.erb +0 -2
  113. data/sample_app_rails_4/app/views/sessions/new.html.erb +0 -19
  114. data/sample_app_rails_4/app/views/shared/_error_messages.html.erb +0 -12
  115. data/sample_app_rails_4/app/views/shared/_feed.html.erb +0 -6
  116. data/sample_app_rails_4/app/views/shared/_feed_item.html.erb +0 -15
  117. data/sample_app_rails_4/app/views/shared/_micropost_form.html.erb +0 -7
  118. data/sample_app_rails_4/app/views/shared/_stats.html.erb +0 -15
  119. data/sample_app_rails_4/app/views/shared/_user_info.html.erb +0 -12
  120. data/sample_app_rails_4/app/views/static_pages/about.html.erb +0 -8
  121. data/sample_app_rails_4/app/views/static_pages/contact.html.erb +0 -6
  122. data/sample_app_rails_4/app/views/static_pages/help.html.erb +0 -8
  123. data/sample_app_rails_4/app/views/static_pages/home.html.erb +0 -34
  124. data/sample_app_rails_4/app/views/static_pages/show.html.erb +0 -0
  125. data/sample_app_rails_4/app/views/users/_follow.html.erb +0 -5
  126. data/sample_app_rails_4/app/views/users/_follow_form.html.erb +0 -9
  127. data/sample_app_rails_4/app/views/users/_unfollow.html.erb +0 -5
  128. data/sample_app_rails_4/app/views/users/_user.html.erb +0 -8
  129. data/sample_app_rails_4/app/views/users/edit.html.erb +0 -27
  130. data/sample_app_rails_4/app/views/users/index.html.erb +0 -10
  131. data/sample_app_rails_4/app/views/users/new.html.erb +0 -24
  132. data/sample_app_rails_4/app/views/users/show.html.erb +0 -24
  133. data/sample_app_rails_4/app/views/users/show_follow.html.erb +0 -30
  134. data/sample_app_rails_4/bin/bundle +0 -3
  135. data/sample_app_rails_4/bin/rails +0 -4
  136. data/sample_app_rails_4/bin/rake +0 -4
  137. data/sample_app_rails_4/bin/rspec +0 -16
  138. data/sample_app_rails_4/config.ru +0 -4
  139. data/sample_app_rails_4/config/application.rb +0 -28
  140. data/sample_app_rails_4/config/boot.rb +0 -4
  141. data/sample_app_rails_4/config/database.yml +0 -27
  142. data/sample_app_rails_4/config/environment.rb +0 -5
  143. data/sample_app_rails_4/config/environments/development.rb +0 -25
  144. data/sample_app_rails_4/config/environments/production.rb +0 -79
  145. data/sample_app_rails_4/config/environments/test.rb +0 -38
  146. data/sample_app_rails_4/config/initializers/active_mocker.rb +0 -12
  147. data/sample_app_rails_4/config/initializers/backtrace_silencers.rb +0 -7
  148. data/sample_app_rails_4/config/initializers/filter_parameter_logging.rb +0 -4
  149. data/sample_app_rails_4/config/initializers/inflections.rb +0 -16
  150. data/sample_app_rails_4/config/initializers/mime_types.rb +0 -5
  151. data/sample_app_rails_4/config/initializers/secret_token.rb +0 -22
  152. data/sample_app_rails_4/config/initializers/session_store.rb +0 -3
  153. data/sample_app_rails_4/config/initializers/wrap_parameters.rb +0 -14
  154. data/sample_app_rails_4/config/locales/en.yml +0 -23
  155. data/sample_app_rails_4/config/routes.rb +0 -17
  156. data/sample_app_rails_4/db/migrate/20130311191400_create_users.rb +0 -10
  157. data/sample_app_rails_4/db/migrate/20130311194153_add_index_to_users_email.rb +0 -5
  158. data/sample_app_rails_4/db/migrate/20130311201841_add_password_digest_to_users.rb +0 -5
  159. data/sample_app_rails_4/db/migrate/20130314184954_add_remember_token_to_users.rb +0 -6
  160. data/sample_app_rails_4/db/migrate/20130315015932_add_admin_to_users.rb +0 -5
  161. data/sample_app_rails_4/db/migrate/20130315175534_create_microposts.rb +0 -11
  162. data/sample_app_rails_4/db/migrate/20130315230445_create_relationships.rb +0 -13
  163. data/sample_app_rails_4/db/schema.rb +0 -51
  164. data/sample_app_rails_4/db/seeds.rb +0 -7
  165. data/sample_app_rails_4/features/signing_in.feature +0 -13
  166. data/sample_app_rails_4/features/step_definitions/authentication_steps.rb +0 -30
  167. data/sample_app_rails_4/features/support/env.rb +0 -59
  168. data/sample_app_rails_4/lib/assets/.keep +0 -0
  169. data/sample_app_rails_4/lib/tasks/.keep +0 -0
  170. data/sample_app_rails_4/lib/tasks/active_mocker.rake +0 -10
  171. data/sample_app_rails_4/lib/tasks/cucumber.rake +0 -65
  172. data/sample_app_rails_4/lib/tasks/sample_data.rake +0 -42
  173. data/sample_app_rails_4/lib/unit_logger.rb +0 -22
  174. data/sample_app_rails_4/public/404.html +0 -27
  175. data/sample_app_rails_4/public/422.html +0 -26
  176. data/sample_app_rails_4/public/500.html +0 -26
  177. data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css +0 -5091
  178. data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css.gz +0 -0
  179. data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js +0 -12952
  180. data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js.gz +0 -0
  181. data/sample_app_rails_4/public/assets/glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png +0 -0
  182. data/sample_app_rails_4/public/assets/glyphicons-halflings-white-62b67d9edee3db90d18833087f848d6e.png +0 -0
  183. data/sample_app_rails_4/public/assets/manifest-802de9eb1c853769101852422b620883.json +0 -1
  184. data/sample_app_rails_4/public/assets/rails-231a680f23887d9dd70710ea5efd3c62.png +0 -0
  185. data/sample_app_rails_4/public/favicon.ico +0 -0
  186. data/sample_app_rails_4/public/robots.txt +0 -5
  187. data/sample_app_rails_4/script/cucumber +0 -10
  188. data/sample_app_rails_4/spec/compare_mocker_and_record_spec.rb +0 -1038
  189. data/sample_app_rails_4/spec/factories.rb +0 -17
  190. data/sample_app_rails_4/spec/micropost_mock_spec.rb +0 -145
  191. data/sample_app_rails_4/spec/mocks/micropost_mock.rb +0 -153
  192. data/sample_app_rails_4/spec/mocks/relationship_mock.rb +0 -151
  193. data/sample_app_rails_4/spec/mocks/user_mock.rb +0 -215
  194. data/sample_app_rails_4/spec/reload_spec.rb +0 -45
  195. data/sample_app_rails_4/spec/spec_helper.rb +0 -46
  196. data/sample_app_rails_4/spec/user_mock_spec.rb +0 -197
  197. data/sample_app_rails_4/vendor/assets/javascripts/.keep +0 -0
  198. data/sample_app_rails_4/vendor/assets/stylesheets/.keep +0 -0
  199. data/spec/lib/acitve_mock/queriable_spec.rb +0 -207
  200. data/spec/lib/active_mocker/db_to_ruby_type_spec.rb +0 -124
  201. data/spec/lib/active_mocker/generate_spec.rb +0 -40
  202. data/spec/lib/active_mocker/loaded_mocks_spec.rb +0 -167
  203. data/spec/lib/active_mocker/logger_spec.rb +0 -32
  204. data/spec/lib/active_mocker/model_reader_spec.rb +0 -206
  205. data/spec/lib/active_mocker/model_schema/generate_spec.rb +0 -111
  206. data/spec/lib/active_mocker/model_schema_spec.rb +0 -145
  207. data/spec/lib/active_mocker/schema_reader_spec.rb +0 -109
  208. data/spec/lib/model.rb +0 -43
  209. data/spec/lib/person.rb +0 -9
  210. data/spec/lib/readme_spec.rb +0 -199
  211. data/spec/lib/reparameterize_spec.rb +0 -202
  212. data/spec/lib/schema.rb +0 -40
  213. data/spec/unit_logger.rb +0 -24
data/.gitignore DELETED
@@ -1,19 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- sample_app_rails_4/log/*
19
- log/test.log
data/.hound.yml DELETED
File without changes
@@ -1,5 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - "2.1.0"
4
- - "2.1.1"
5
- - "2.1.2"
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in active_mocker.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,26 +0,0 @@
1
- require "bundler/gem_tasks"
2
-
3
- task :default => 'specs'
4
-
5
- task :specs do
6
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && RUBY_VERSION >= "1.9"
7
- module Kernel
8
- alias :__at_exit :at_exit
9
- def at_exit(&block)
10
- __at_exit do
11
- exit_status = $!.status if $!.is_a?(SystemExit)
12
- block.call
13
- exit exit_status if exit_status
14
- end
15
- end
16
- end
17
- end
18
- raise "Tests Failed" unless system "rspec --seed #{random_seed}"
19
- raise "Tests Failed" unless system "cd sample_app_rails_4 && rspec --seed #{random_seed}"
20
- end
21
-
22
- def random_seed
23
- seed = rand(99999)
24
- puts "Seed: #{seed}"
25
- seed
26
- end
@@ -1,40 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'active_mocker/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "active_mocker"
8
- spec.version = ActiveMocker::VERSION
9
- spec.authors = ["Dustin Zeisler"]
10
- spec.email = ["dustin@zive.me"]
11
- spec.summary = %q{Creates mocks from Active Record models. Allows your test suite to run very fast by not loading Rails or hooking to a database.}
12
- spec.description = %q{Creates mocks from Active Record models. Allows your test suite to run very fast by not loading Rails or hooking to a database. It parse the schema definition and the defined methods on a model then saves a ruby file that can be included with a test. Mocks are regenerated when the schema is modified so your mocks will not go stale. This prevents the case where your units tests pass but production code is failing.}
13
- spec.homepage = "https://github.com/zeisler/active_mocker"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.required_ruby_version = '>= 2.0.0'
22
-
23
- spec.add_runtime_dependency "activesupport", "~>4.1"
24
- spec.add_runtime_dependency "virtus", '~> 1.0'
25
-
26
- spec.add_development_dependency "bundler", "~> 1.5"
27
- spec.add_development_dependency "rake", "~>10.1"
28
- spec.add_development_dependency "rspec", "2.14.1"
29
- spec.add_development_dependency "sqlite3", "~>1.3"
30
- spec.add_development_dependency "rails", "~>4.1"
31
- spec.add_development_dependency "rspec-rails", "2.14.1"
32
- spec.add_development_dependency "fuubar", "~>1.3"
33
- spec.add_development_dependency "rspec-given", "~>3.5"
34
-
35
- if ENV['DEBUG'] == '1'
36
- spec.add_development_dependency "debase", "~>0.0"
37
- spec.add_development_dependency "ruby-debug-ide", "~>0.4"
38
- end
39
-
40
- end
@@ -1,7 +0,0 @@
1
- module ActiveMock
2
- class Association < Collection
3
-
4
- include Queries
5
-
6
- end
7
- end
@@ -1,25 +0,0 @@
1
- module ActiveMock
2
- module Creators
3
-
4
- def create(attributes = {}, &block)
5
- record = new
6
- record.save
7
- record.send(:set_properties, attributes) unless block_given?
8
- record.send(:set_properties_block, attributes, &block) if block_given?
9
- record
10
- end
11
-
12
- alias_method :create!, :create
13
-
14
- def find_or_create_by(attributes)
15
- find_by(attributes) || create(attributes)
16
- end
17
-
18
- def find_or_initialize_by(attributes)
19
- find_by(attributes) || new(attributes)
20
- end
21
-
22
- end
23
-
24
- end
25
-
@@ -1,7 +0,0 @@
1
- module ActiveMock
2
- class HasAndBelongsToMany < Collection
3
-
4
- include Queries
5
-
6
- end
7
- end
@@ -1,54 +0,0 @@
1
- module ActiveMock
2
-
3
- class HasMany < Association
4
-
5
- include Queries
6
-
7
- def self.new(collection, foreign_key=nil, foreign_id=nil, relation_class=nil)
8
- return Association.new(collection) if relation_class.nil?
9
- super(collection, foreign_key, foreign_id, relation_class)
10
- end
11
-
12
-
13
- def initialize(collection, foreign_key=nil, foreign_id=nil, relation_class=nil)
14
- @relation_class = relation_class
15
- @foreign_key = foreign_key
16
- @foreign_id = foreign_id
17
-
18
- super(collection)
19
- end
20
-
21
- private
22
- attr_reader :relation_class, :foreign_key, :foreign_id
23
- public
24
-
25
- def build(options={}, &block)
26
- new_record = relation_class.new({foreign_key => foreign_id}.merge!(options), &block)
27
-
28
- def new_record.belongs_to(collection, foreign_key)
29
- @belongs_to_collection ||={}
30
- @belongs_to_collection[foreign_key] = collection
31
- end
32
-
33
- new_record.belongs_to(self, foreign_key)
34
-
35
- def new_record.save
36
- @belongs_to_collection.each {|k ,v| v << self}
37
- super
38
- end
39
-
40
- new_record
41
- end
42
-
43
- def create(options={}, &block)
44
- created_record = relation_class.create({foreign_key => foreign_id}.merge!(options), &block)
45
- collection << created_record
46
- created_record
47
- end
48
-
49
- alias_method :create!, :create
50
-
51
- end
52
-
53
- end
54
-
@@ -1,83 +0,0 @@
1
- module ActiveMock
2
- class Records
3
-
4
- attr_reader :records
5
-
6
- def initialize(records=[])
7
- @records = records
8
- end
9
-
10
- def insert(record)
11
- record.attributes[:id] ||= next_id
12
- validate_unique_id(record)
13
- add_to_record_index({record.id.to_s => records.length})
14
- records << record
15
- end
16
-
17
- def delete(record)
18
- record_index.delete("#{record.id}")
19
- index = records.index(record)
20
- records.delete_at(index)
21
- end
22
-
23
- def <<(record)
24
- records << record
25
- end
26
-
27
- def length
28
- records.length
29
- end
30
-
31
- alias_method :count, :length
32
-
33
- def record_index
34
- @record_index ||= {}
35
- end
36
-
37
- def add_to_record_index(entry)
38
- record_index.merge!(entry)
39
- end
40
-
41
- def reset_record_index
42
- record_index.clear
43
- end
44
-
45
- def clear
46
- records.clear
47
- end
48
-
49
- def to_a
50
- records
51
- end
52
-
53
- def reset_all_records
54
- reset_record_index
55
- clear
56
- end
57
-
58
- def next_id
59
- NextId.new(records).next
60
- end
61
-
62
- def validate_unique_id(record)
63
- if record_index.has_key?(record.id.to_s)
64
- raise ActiveMock::IdError.new("Duplicate ID found for record #{record.attributes.inspect}")
65
- end
66
- end
67
-
68
- def exists?(record)
69
- if record.id.present?
70
- record_index[record.id.to_s].present?
71
- end
72
- end
73
-
74
- def new_record?(record)
75
- !records.include?(record)
76
- end
77
-
78
- def persisted?(id)
79
- records.map(&:id).include?(id)
80
- end
81
-
82
- end
83
- end
@@ -1,26 +0,0 @@
1
- require 'active_support'
2
-
3
- begin
4
- require 'active_support/core_ext'
5
- rescue
6
- end
7
-
8
- begin
9
- require 'active_model'
10
- require 'active_model/naming'
11
- rescue LoadError
12
- end
13
- require 'active_mocker/logger'
14
- require 'active_mock/queries'
15
- require 'active_mock/collection'
16
- require 'active_mock/association'
17
- require 'active_mock/has_many'
18
- require 'active_mock/has_and_belongs_to_many'
19
- require 'active_mocker/loaded_mocks'
20
- require 'active_mock/do_nothing_active_record_methods'
21
- require 'active_mock/next_id'
22
- require 'active_mock/creators'
23
- require 'active_mock/records'
24
- require 'active_mock/base'
25
- require 'virtus'
26
- require 'active_mock/object_inspect'
@@ -1,5 +0,0 @@
1
- module ConstMissing
2
-
3
- end
4
-
5
-
@@ -1,12 +0,0 @@
1
- module ActiveMocker
2
-
3
- def self.class_exists?(class_name)
4
- klass = Module.const_get(class_name)
5
- return klass.is_a?(Class)
6
- rescue NameError
7
- return false
8
- end
9
-
10
- end
11
-
12
-
@@ -1,24 +0,0 @@
1
- module ActiveMocker
2
-
3
- class ConstSets
4
-
5
- def initialize(string_of_consts, base_const=nil)
6
-
7
- Object.const_set('Foo','Foo')
8
-
9
-
10
- end
11
-
12
- def self.const_exists?(class_name)
13
- klass = Module.const_get(class_name)
14
- return klass.is_a?(Class)
15
- rescue NameError
16
- return false
17
- end
18
-
19
- end
20
-
21
- end
22
-
23
-
24
-
@@ -1,12 +0,0 @@
1
- # http://blog.nathanhumbert.com/2010/02/rails-3-loading-rake-tasks-from-gem.html
2
-
3
- # ['db:schema:load', 'db:migrate', 'db:reset'].each do |task|
4
- # Rake::Task[task].enhance do
5
- # Rake::Task['rebuild_mocks'].invoke
6
- # end
7
- # end
8
-
9
- task rebuild_mocks: :environment do
10
- puts 'rebuilding mocks'
11
- ActiveMocker::Generate.new
12
- end
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Settings><!--This file was automatically generated by Ruby plugin.
3
- You are allowed to:
4
- 1. Reorder generators
5
- 2. Remove generators
6
- 3. Add installed generators
7
- To add new installed generators automatically delete this file and reload the project.
8
- --><GeneratorsGroup><Generator name="active_record:migration" /><Generator name="active_record:model" /><Generator name="active_record:observer" /><Generator name="active_record:session_migration" /><Generator name="controller" /><Generator name="erb:controller" /><Generator name="erb:mailer" /><Generator name="erb:scaffold" /><Generator name="generator" /><Generator name="helper" /><Generator name="integration_test" /><Generator name="mailer" /><Generator name="metal" /><Generator name="migration" /><Generator name="model" /><Generator name="model_subclass" /><Generator name="observer" /><Generator name="performance_test" /><Generator name="plugin" /><Generator name="resource" /><Generator name="scaffold" /><Generator name="scaffold_controller" /><Generator name="session_migration" /><Generator name="stylesheets" /><Generator name="test_unit:controller" /><Generator name="test_unit:helper" /><Generator name="test_unit:integration" /><Generator name="test_unit:mailer" /><Generator name="test_unit:model" /><Generator name="test_unit:observer" /><Generator name="test_unit:performance" /><Generator name="test_unit:plugin" /><Generator name="test_unit:scaffold" /></GeneratorsGroup></Settings>
@@ -1 +0,0 @@
1
- sample_app_rails_4
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Settings><!--This file was automatically generated by Ruby plugin.
3
- You are allowed to:
4
- 1. Remove rake task
5
- 2. Add existing rake tasks
6
- To add existing rake tasks automatically delete this file and reload the project.
7
- --><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
@@ -1,141 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <component name="dataSourceStorage">
3
- <data-source source="LOCAL" name="Rails sample_app_rails_4: development" uuid="d095363b-e016-46dc-9bc8-4150553281f7">
4
- <database-info product="SQLite" version="3.7.2" jdbc-version="2.1" driver-name="SQLiteJDBC" driver-version="native"/>
5
- <case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed"/>
6
- <schema name="" catalog=""/>
7
- <table name="microposts" schema="" catalog="" type="TABLE">
8
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
9
- <column name="content" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
10
- <column name="user_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
11
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
12
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
13
- <primary-key columns="id"/>
14
- <index name="index_microposts_on_user_id_and_created_at" unique="true" columns="user_id,created_at"/>
15
- </table>
16
- <table name="relationships" schema="" catalog="" type="TABLE">
17
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
18
- <column name="follower_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
19
- <column name="followed_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
20
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
21
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
22
- <primary-key columns="id"/>
23
- <index name="index_relationships_on_follower_id" unique="true" columns="follower_id"/>
24
- <index name="index_relationships_on_follower_id_and_followed_id" unique="true" columns="follower_id,followed_id"/>
25
- <index name="index_relationships_on_followed_id" unique="true" columns="followed_id"/>
26
- </table>
27
- <table name="schema_migrations" schema="" catalog="" type="TABLE">
28
- <column name="version" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="false" jdbcType="12"/>
29
- <index name="unique_schema_migrations" unique="true" columns="version"/>
30
- </table>
31
- <table name="sqlite_sequence" schema="" catalog="" type="TABLE">
32
- <column name="name" sqlType="" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
33
- <column name="seq" sqlType="" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
34
- </table>
35
- <table name="users" schema="" catalog="" type="TABLE">
36
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
37
- <column name="name" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
38
- <column name="email" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
39
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
40
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
41
- <column name="password_digest" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
42
- <column name="remember_token" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
43
- <column name="admin" sqlType="BOOLEAN" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
44
- <primary-key columns="id"/>
45
- <index name="index_users_on_remember_token" unique="true" columns="remember_token"/>
46
- <index name="index_users_on_email" unique="true" columns="email"/>
47
- </table>
48
- </data-source>
49
- <data-source source="LOCAL" name="Rails sample_app_rails_4: test" uuid="6e3ca20f-8d53-4e9f-a650-a42bfc864620">
50
- <database-info product="SQLite" version="3.7.2" jdbc-version="2.1" driver-name="SQLiteJDBC" driver-version="native"/>
51
- <case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed"/>
52
- <schema name="" catalog=""/>
53
- <table name="microposts" schema="" catalog="" type="TABLE">
54
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
55
- <column name="content" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
56
- <column name="user_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
57
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
58
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
59
- <primary-key columns="id"/>
60
- <index name="index_microposts_on_user_id_and_created_at" unique="true" columns="user_id,created_at"/>
61
- </table>
62
- <table name="relationships" schema="" catalog="" type="TABLE">
63
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
64
- <column name="follower_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
65
- <column name="followed_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
66
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
67
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
68
- <primary-key columns="id"/>
69
- <index name="index_relationships_on_follower_id_and_followed_id" unique="true" columns="follower_id,followed_id"/>
70
- <index name="index_relationships_on_followed_id" unique="true" columns="followed_id"/>
71
- <index name="index_relationships_on_follower_id" unique="true" columns="follower_id"/>
72
- </table>
73
- <table name="schema_migrations" schema="" catalog="" type="TABLE">
74
- <column name="version" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="false" jdbcType="12"/>
75
- <index name="unique_schema_migrations" unique="true" columns="version"/>
76
- </table>
77
- <table name="sqlite_sequence" schema="" catalog="" type="TABLE">
78
- <column name="name" sqlType="" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
79
- <column name="seq" sqlType="" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
80
- </table>
81
- <table name="users" schema="" catalog="" type="TABLE">
82
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
83
- <column name="name" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
84
- <column name="email" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
85
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
86
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
87
- <column name="password_digest" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
88
- <column name="remember_token" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
89
- <column name="admin" sqlType="BOOLEAN" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
90
- <primary-key columns="id"/>
91
- <index name="index_users_on_remember_token" unique="true" columns="remember_token"/>
92
- <index name="index_users_on_email" unique="true" columns="email"/>
93
- </table>
94
- </data-source>
95
- <data-source source="LOCAL" name="Rails sample_app_rails_4: cucumber" uuid="30cf8d24-5940-4d1a-99ed-b7545cfead7e">
96
- <database-info product="SQLite" version="3.7.2" jdbc-version="2.1" driver-name="SQLiteJDBC" driver-version="native"/>
97
- <case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed"/>
98
- <schema name="" catalog=""/>
99
- <table name="microposts" schema="" catalog="" type="TABLE">
100
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
101
- <column name="content" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
102
- <column name="user_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
103
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
104
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
105
- <primary-key columns="id"/>
106
- <index name="index_microposts_on_user_id_and_created_at" unique="true" columns="user_id,created_at"/>
107
- </table>
108
- <table name="relationships" schema="" catalog="" type="TABLE">
109
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
110
- <column name="follower_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
111
- <column name="followed_id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="true" jdbcType="4"/>
112
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
113
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
114
- <primary-key columns="id"/>
115
- <index name="index_relationships_on_follower_id_and_followed_id" unique="true" columns="follower_id,followed_id"/>
116
- <index name="index_relationships_on_followed_id" unique="true" columns="followed_id"/>
117
- <index name="index_relationships_on_follower_id" unique="true" columns="follower_id"/>
118
- </table>
119
- <table name="schema_migrations" schema="" catalog="" type="TABLE">
120
- <column name="version" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="false" jdbcType="12"/>
121
- <index name="unique_schema_migrations" unique="true" columns="version"/>
122
- </table>
123
- <table name="sqlite_sequence" schema="" catalog="" type="TABLE">
124
- <column name="name" sqlType="" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
125
- <column name="seq" sqlType="" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
126
- </table>
127
- <table name="users" schema="" catalog="" type="TABLE">
128
- <column name="id" sqlType="INTEGER" precision="2000000000" scale="10" nullable="false" jdbcType="4"/>
129
- <column name="name" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
130
- <column name="email" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
131
- <column name="created_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
132
- <column name="updated_at" sqlType="DATETIME" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
133
- <column name="password_digest" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
134
- <column name="remember_token" sqlType="VARCHAR(255)" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
135
- <column name="admin" sqlType="BOOLEAN" precision="2000000000" scale="10" nullable="true" jdbcType="12"/>
136
- <primary-key columns="id"/>
137
- <index name="index_users_on_remember_token" unique="true" columns="remember_token"/>
138
- <index name="index_users_on_email" unique="true" columns="email"/>
139
- </table>
140
- </data-source>
141
- </component>