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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +35 -29
- data/lib/active_mocker.rb +3 -1
- data/lib/active_mocker/active_record.rb +27 -5
- data/lib/active_mocker/active_record/scope.rb +5 -5
- data/lib/active_mocker/active_record/unknown_module.rb +4 -4
- data/lib/active_mocker/generate.rb +36 -15
- data/lib/active_mocker/loaded_mocks.rb +60 -54
- data/lib/active_mocker/mock.rb +24 -0
- data/lib/active_mocker/mock/association.rb +6 -0
- data/lib/{active_mock → active_mocker/mock}/base.rb +43 -89
- data/lib/{active_mock → active_mocker/mock}/collection.rb +14 -7
- data/lib/{active_mock → active_mocker/mock}/do_nothing_active_record_methods.rb +7 -1
- data/lib/active_mocker/mock/exceptions.rb +25 -0
- data/lib/active_mocker/mock/has_and_belongs_to_many.rb +6 -0
- data/lib/active_mocker/mock/has_many.rb +60 -0
- data/lib/active_mocker/mock/hash_process.rb +19 -0
- data/lib/active_mocker/mock/mock_abilities.rb +98 -0
- data/lib/{active_mock → active_mocker/mock}/next_id.rb +7 -2
- data/lib/{active_mock → active_mocker/mock}/object_inspect.rb +3 -1
- data/lib/{active_mock → active_mocker/mock}/queries.rb +32 -29
- data/lib/active_mocker/mock/records.rb +62 -0
- data/lib/{active_mock → active_mocker/mock}/relation.rb +4 -3
- data/lib/active_mocker/mock/template_methods.rb +39 -0
- data/lib/active_mocker/mock_template.erb +45 -31
- data/lib/active_mocker/model_reader.rb +29 -0
- data/lib/active_mocker/model_schema.rb +23 -16
- data/lib/active_mocker/model_schema/generate.rb +19 -8
- data/lib/active_mocker/railtie.rb +17 -0
- data/lib/active_mocker/reparameterize.rb +2 -4
- data/lib/active_mocker/rspec_helper.rb +18 -0
- data/lib/active_mocker/task.rake +15 -0
- data/lib/active_mocker/version.rb +1 -1
- metadata +80 -206
- data/.gitignore +0 -19
- data/.hound.yml +0 -0
- data/.travis.yml +0 -5
- data/Gemfile +0 -4
- data/Rakefile +0 -26
- data/active_mocker.gemspec +0 -40
- data/lib/active_mock/association.rb +0 -7
- data/lib/active_mock/creators.rb +0 -25
- data/lib/active_mock/has_and_belongs_to_many.rb +0 -7
- data/lib/active_mock/has_many.rb +0 -54
- data/lib/active_mock/records.rb +0 -83
- data/lib/active_mocker/active_mock.rb +0 -26
- data/lib/active_mocker/active_record/const_missing.rb +0 -5
- data/lib/active_mocker/class_exists.rb +0 -12
- data/lib/active_mocker/const_sets.rb +0 -24
- data/lib/active_mocker/mock_task.rb +0 -12
- data/sample_app_rails_4/.idea/.generators +0 -8
- data/sample_app_rails_4/.idea/.name +0 -1
- data/sample_app_rails_4/.idea/.rakeTasks +0 -7
- data/sample_app_rails_4/.idea/dataSources.ids +0 -141
- data/sample_app_rails_4/.idea/dataSources.xml +0 -36
- data/sample_app_rails_4/.idea/dictionaries/zeisler.xml +0 -3
- data/sample_app_rails_4/.idea/encodings.xml +0 -5
- data/sample_app_rails_4/.idea/inspectionProfiles/Project_Default.xml +0 -20
- data/sample_app_rails_4/.idea/inspectionProfiles/profiles_settings.xml +0 -7
- data/sample_app_rails_4/.idea/misc.xml +0 -5
- data/sample_app_rails_4/.idea/modules.xml +0 -10
- data/sample_app_rails_4/.idea/runConfigurations/Development__sample_app_rails_4.xml +0 -28
- data/sample_app_rails_4/.idea/runConfigurations/Production__sample_app_rails_4.xml +0 -28
- data/sample_app_rails_4/.idea/runConfigurations/spec__sample_app_rails_4.xml +0 -26
- data/sample_app_rails_4/.idea/runConfigurations/test__sample_app_rails_4.xml +0 -28
- data/sample_app_rails_4/.idea/sample_app_rails_4.iml +0 -262
- data/sample_app_rails_4/.idea/scopes/scope_settings.xml +0 -5
- data/sample_app_rails_4/.idea/vcs.xml +0 -7
- data/sample_app_rails_4/.idea/workspace.xml +0 -619
- data/sample_app_rails_4/.rspec +0 -1
- data/sample_app_rails_4/.secret +0 -1
- data/sample_app_rails_4/Gemfile +0 -13
- data/sample_app_rails_4/Guardfile +0 -53
- data/sample_app_rails_4/LICENSE +0 -21
- data/sample_app_rails_4/README.md +0 -25
- data/sample_app_rails_4/README.nitrous.md +0 -20
- data/sample_app_rails_4/Rakefile +0 -6
- data/sample_app_rails_4/app/assets/images/rails.png +0 -0
- data/sample_app_rails_4/app/assets/javascripts/application.js +0 -17
- data/sample_app_rails_4/app/assets/javascripts/sessions.js.coffee +0 -3
- data/sample_app_rails_4/app/assets/javascripts/static_pages.js.coffee +0 -3
- data/sample_app_rails_4/app/assets/javascripts/users.js.coffee +0 -3
- data/sample_app_rails_4/app/assets/stylesheets/application.css +0 -13
- data/sample_app_rails_4/app/assets/stylesheets/custom.css.scss +0 -246
- data/sample_app_rails_4/app/assets/stylesheets/sessions.css.scss +0 -3
- data/sample_app_rails_4/app/assets/stylesheets/static_pages.css.scss +0 -3
- data/sample_app_rails_4/app/assets/stylesheets/users.css.scss +0 -3
- data/sample_app_rails_4/app/controllers/application_controller.rb +0 -6
- data/sample_app_rails_4/app/controllers/concerns/.keep +0 -0
- data/sample_app_rails_4/app/controllers/microposts_controller.rb +0 -31
- data/sample_app_rails_4/app/controllers/relationships_controller.rb +0 -21
- data/sample_app_rails_4/app/controllers/sessions_controller.rb +0 -21
- data/sample_app_rails_4/app/controllers/static_pages_controller.rb +0 -18
- data/sample_app_rails_4/app/controllers/users_controller.rb +0 -80
- data/sample_app_rails_4/app/helpers/application_helper.rb +0 -12
- data/sample_app_rails_4/app/helpers/sessions_helper.rb +0 -49
- data/sample_app_rails_4/app/helpers/static_pages_helper.rb +0 -2
- data/sample_app_rails_4/app/helpers/users_helper.rb +0 -10
- data/sample_app_rails_4/app/mailers/.keep +0 -0
- data/sample_app_rails_4/app/models/.keep +0 -0
- data/sample_app_rails_4/app/models/concerns/.keep +0 -0
- data/sample_app_rails_4/app/models/micropost.rb +0 -24
- data/sample_app_rails_4/app/models/relationship.rb +0 -6
- data/sample_app_rails_4/app/models/user.rb +0 -39
- data/sample_app_rails_4/app/views/layouts/_footer.html.erb +0 -13
- data/sample_app_rails_4/app/views/layouts/_header.html.erb +0 -31
- data/sample_app_rails_4/app/views/layouts/_shim.html.erb +0 -3
- data/sample_app_rails_4/app/views/layouts/application.html.erb +0 -22
- data/sample_app_rails_4/app/views/microposts/_micropost.html.erb +0 -11
- data/sample_app_rails_4/app/views/relationships/create.js.erb +0 -2
- data/sample_app_rails_4/app/views/relationships/destroy.js.erb +0 -2
- data/sample_app_rails_4/app/views/sessions/new.html.erb +0 -19
- data/sample_app_rails_4/app/views/shared/_error_messages.html.erb +0 -12
- data/sample_app_rails_4/app/views/shared/_feed.html.erb +0 -6
- data/sample_app_rails_4/app/views/shared/_feed_item.html.erb +0 -15
- data/sample_app_rails_4/app/views/shared/_micropost_form.html.erb +0 -7
- data/sample_app_rails_4/app/views/shared/_stats.html.erb +0 -15
- data/sample_app_rails_4/app/views/shared/_user_info.html.erb +0 -12
- data/sample_app_rails_4/app/views/static_pages/about.html.erb +0 -8
- data/sample_app_rails_4/app/views/static_pages/contact.html.erb +0 -6
- data/sample_app_rails_4/app/views/static_pages/help.html.erb +0 -8
- data/sample_app_rails_4/app/views/static_pages/home.html.erb +0 -34
- data/sample_app_rails_4/app/views/static_pages/show.html.erb +0 -0
- data/sample_app_rails_4/app/views/users/_follow.html.erb +0 -5
- data/sample_app_rails_4/app/views/users/_follow_form.html.erb +0 -9
- data/sample_app_rails_4/app/views/users/_unfollow.html.erb +0 -5
- data/sample_app_rails_4/app/views/users/_user.html.erb +0 -8
- data/sample_app_rails_4/app/views/users/edit.html.erb +0 -27
- data/sample_app_rails_4/app/views/users/index.html.erb +0 -10
- data/sample_app_rails_4/app/views/users/new.html.erb +0 -24
- data/sample_app_rails_4/app/views/users/show.html.erb +0 -24
- data/sample_app_rails_4/app/views/users/show_follow.html.erb +0 -30
- data/sample_app_rails_4/bin/bundle +0 -3
- data/sample_app_rails_4/bin/rails +0 -4
- data/sample_app_rails_4/bin/rake +0 -4
- data/sample_app_rails_4/bin/rspec +0 -16
- data/sample_app_rails_4/config.ru +0 -4
- data/sample_app_rails_4/config/application.rb +0 -28
- data/sample_app_rails_4/config/boot.rb +0 -4
- data/sample_app_rails_4/config/database.yml +0 -27
- data/sample_app_rails_4/config/environment.rb +0 -5
- data/sample_app_rails_4/config/environments/development.rb +0 -25
- data/sample_app_rails_4/config/environments/production.rb +0 -79
- data/sample_app_rails_4/config/environments/test.rb +0 -38
- data/sample_app_rails_4/config/initializers/active_mocker.rb +0 -12
- data/sample_app_rails_4/config/initializers/backtrace_silencers.rb +0 -7
- data/sample_app_rails_4/config/initializers/filter_parameter_logging.rb +0 -4
- data/sample_app_rails_4/config/initializers/inflections.rb +0 -16
- data/sample_app_rails_4/config/initializers/mime_types.rb +0 -5
- data/sample_app_rails_4/config/initializers/secret_token.rb +0 -22
- data/sample_app_rails_4/config/initializers/session_store.rb +0 -3
- data/sample_app_rails_4/config/initializers/wrap_parameters.rb +0 -14
- data/sample_app_rails_4/config/locales/en.yml +0 -23
- data/sample_app_rails_4/config/routes.rb +0 -17
- data/sample_app_rails_4/db/migrate/20130311191400_create_users.rb +0 -10
- data/sample_app_rails_4/db/migrate/20130311194153_add_index_to_users_email.rb +0 -5
- data/sample_app_rails_4/db/migrate/20130311201841_add_password_digest_to_users.rb +0 -5
- data/sample_app_rails_4/db/migrate/20130314184954_add_remember_token_to_users.rb +0 -6
- data/sample_app_rails_4/db/migrate/20130315015932_add_admin_to_users.rb +0 -5
- data/sample_app_rails_4/db/migrate/20130315175534_create_microposts.rb +0 -11
- data/sample_app_rails_4/db/migrate/20130315230445_create_relationships.rb +0 -13
- data/sample_app_rails_4/db/schema.rb +0 -51
- data/sample_app_rails_4/db/seeds.rb +0 -7
- data/sample_app_rails_4/features/signing_in.feature +0 -13
- data/sample_app_rails_4/features/step_definitions/authentication_steps.rb +0 -30
- data/sample_app_rails_4/features/support/env.rb +0 -59
- data/sample_app_rails_4/lib/assets/.keep +0 -0
- data/sample_app_rails_4/lib/tasks/.keep +0 -0
- data/sample_app_rails_4/lib/tasks/active_mocker.rake +0 -10
- data/sample_app_rails_4/lib/tasks/cucumber.rake +0 -65
- data/sample_app_rails_4/lib/tasks/sample_data.rake +0 -42
- data/sample_app_rails_4/lib/unit_logger.rb +0 -22
- data/sample_app_rails_4/public/404.html +0 -27
- data/sample_app_rails_4/public/422.html +0 -26
- data/sample_app_rails_4/public/500.html +0 -26
- data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css +0 -5091
- data/sample_app_rails_4/public/assets/application-4962059d8f80f9bb096692bacc29c4e8.css.gz +0 -0
- data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js +0 -12952
- data/sample_app_rails_4/public/assets/application-eeb856e3fe2c8f879c91d0e81d59cb40.js.gz +0 -0
- data/sample_app_rails_4/public/assets/glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png +0 -0
- data/sample_app_rails_4/public/assets/glyphicons-halflings-white-62b67d9edee3db90d18833087f848d6e.png +0 -0
- data/sample_app_rails_4/public/assets/manifest-802de9eb1c853769101852422b620883.json +0 -1
- data/sample_app_rails_4/public/assets/rails-231a680f23887d9dd70710ea5efd3c62.png +0 -0
- data/sample_app_rails_4/public/favicon.ico +0 -0
- data/sample_app_rails_4/public/robots.txt +0 -5
- data/sample_app_rails_4/script/cucumber +0 -10
- data/sample_app_rails_4/spec/compare_mocker_and_record_spec.rb +0 -1038
- data/sample_app_rails_4/spec/factories.rb +0 -17
- data/sample_app_rails_4/spec/micropost_mock_spec.rb +0 -145
- data/sample_app_rails_4/spec/mocks/micropost_mock.rb +0 -153
- data/sample_app_rails_4/spec/mocks/relationship_mock.rb +0 -151
- data/sample_app_rails_4/spec/mocks/user_mock.rb +0 -215
- data/sample_app_rails_4/spec/reload_spec.rb +0 -45
- data/sample_app_rails_4/spec/spec_helper.rb +0 -46
- data/sample_app_rails_4/spec/user_mock_spec.rb +0 -197
- data/sample_app_rails_4/vendor/assets/javascripts/.keep +0 -0
- data/sample_app_rails_4/vendor/assets/stylesheets/.keep +0 -0
- data/spec/lib/acitve_mock/queriable_spec.rb +0 -207
- data/spec/lib/active_mocker/db_to_ruby_type_spec.rb +0 -124
- data/spec/lib/active_mocker/generate_spec.rb +0 -40
- data/spec/lib/active_mocker/loaded_mocks_spec.rb +0 -167
- data/spec/lib/active_mocker/logger_spec.rb +0 -32
- data/spec/lib/active_mocker/model_reader_spec.rb +0 -206
- data/spec/lib/active_mocker/model_schema/generate_spec.rb +0 -111
- data/spec/lib/active_mocker/model_schema_spec.rb +0 -145
- data/spec/lib/active_mocker/schema_reader_spec.rb +0 -109
- data/spec/lib/model.rb +0 -43
- data/spec/lib/person.rb +0 -9
- data/spec/lib/readme_spec.rb +0 -199
- data/spec/lib/reparameterize_spec.rb +0 -202
- data/spec/lib/schema.rb +0 -40
- data/spec/unit_logger.rb +0 -24
data/.gitignore
DELETED
data/.hound.yml
DELETED
|
File without changes
|
data/.travis.yml
DELETED
data/Gemfile
DELETED
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
|
data/active_mocker.gemspec
DELETED
|
@@ -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
|
data/lib/active_mock/creators.rb
DELETED
|
@@ -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
|
-
|
data/lib/active_mock/has_many.rb
DELETED
|
@@ -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
|
-
|
data/lib/active_mock/records.rb
DELETED
|
@@ -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,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>
|