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
@@ -1,17 +0,0 @@
1
- FactoryGirl.define do
2
- factory :user do
3
- sequence(:name) { |n| "Person #{n}" }
4
- sequence(:email) { |n| "person_#{n}@example.com"}
5
- password "foobar"
6
- password_confirmation "foobar"
7
-
8
- factory :admin do
9
- admin true
10
- end
11
- end
12
-
13
- factory :micropost do
14
- content "Lorem ipsum"
15
- user
16
- end
17
- end
@@ -1,145 +0,0 @@
1
- require 'rspec'
2
- $:.unshift File.expand_path('../../', __FILE__)
3
- APP_ROOT = File.expand_path('../../', __FILE__) unless defined? APP_ROOT
4
- require 'config/initializers/active_mocker.rb'
5
- load 'spec/mocks/micropost_mock.rb'
6
- load 'spec/mocks/user_mock.rb'
7
-
8
- describe MicropostMock do
9
-
10
- describe 'user=' do
11
-
12
- it 'setting user will assign its foreign key' do
13
- user = UserMock.create!
14
- post = MicropostMock.create(user: user)
15
- expect(post.user_id).to eq user.id
16
- end
17
-
18
- it 'setting user will not assign its foreign key if the object does not respond to persisted?' do
19
- user = {}
20
- post = MicropostMock.create(user: user)
21
- expect(post.user_id).to eq nil
22
- end
23
-
24
- end
25
-
26
- describe '::MAGIC_ID_NUMBER' do
27
-
28
- it 'has constant from model' do
29
-
30
- expect(MicropostMock::MAGIC_ID_NUMBER).to eq 90
31
-
32
- end
33
-
34
- end
35
-
36
- describe '::MAGIC_ID_STRING' do
37
-
38
- it 'has constant from model' do
39
-
40
- expect(MicropostMock::MAGIC_ID_STRING).to eq 'F-1'
41
-
42
- end
43
-
44
- end
45
-
46
- describe '::constants' do
47
-
48
- it 'has constant from model' do
49
-
50
- expect(MicropostMock.constants).to include(:MAGIC_ID_NUMBER, :MAGIC_ID_STRING)
51
-
52
- end
53
-
54
- end
55
-
56
- describe 'Mocking methods' do
57
-
58
- context 'mocked from class before new' do
59
-
60
- before do
61
- MicropostMock.mock_instance_method(:display_name) do
62
- 'Method Mocked at class level'
63
- end
64
- end
65
-
66
- it 'when no instance level mocks is set will default to class level' do
67
- expect(MicropostMock.new.display_name).to eq 'Method Mocked at class level'
68
- end
69
-
70
- it 'instance mocking overrides class mocking' do
71
- post = MicropostMock.new
72
- post.mock_instance_method(:display_name) do
73
- 'Method Mocked at instance level'
74
- end
75
- expect(post.display_name).to eq 'Method Mocked at instance level'
76
- end
77
-
78
- end
79
-
80
- context 'mocked from class after new' do
81
-
82
- before do
83
- MicropostMock.create
84
- MicropostMock.mock_instance_method(:display_name) do
85
- 'Method Mocked at class level'
86
- end
87
-
88
- end
89
-
90
- it 'when no instance level mocks is set will default to class level' do
91
- expect(MicropostMock.first.display_name).to eq 'Method Mocked at class level'
92
- end
93
-
94
- it 'instance mocking overrides class mocking' do
95
- post = MicropostMock.first
96
- post.mock_instance_method(:display_name) do
97
- 'Method Mocked at instance level'
98
- end
99
- expect(post.display_name).to eq 'Method Mocked at instance level'
100
- end
101
-
102
- end
103
-
104
-
105
-
106
- end
107
-
108
- describe 'Sub classing' do
109
-
110
- context 'using sub class' do
111
-
112
- before do
113
- class SubUserMock < UserMock
114
- end
115
- end
116
-
117
- let(:given_a_sub_user_record) { SubUserMock.create }
118
- let(:given_a_post) { MicropostMock.create(user_id: given_a_sub_user_record.id) }
119
-
120
- it 'when setting #user_id it will set #user from sub class' do
121
- expect(given_a_post.user).to eq given_a_sub_user_record
122
- expect(given_a_post.user.class).to eq SubUserMock
123
- end
124
-
125
- end
126
-
127
- context 'without a sub class' do
128
-
129
- let(:given_a_sub_user_record) { UserMock.create }
130
- let(:given_a_post) { MicropostMock.create(user_id: given_a_sub_user_record.id) }
131
-
132
- it 'when setting #user_id it will set #user from sub class' do
133
- expect(given_a_post.user).to eq given_a_sub_user_record
134
- expect(given_a_post.user.class).to eq UserMock
135
- end
136
-
137
- end
138
-
139
- end
140
-
141
- after(:each) do
142
- ActiveMocker::LoadedMocks.clear_all
143
- end
144
-
145
- end
@@ -1,153 +0,0 @@
1
- require 'active_mocker/active_mock'
2
- Object.send(:remove_const, "MicropostMock") if Object.const_defined?("MicropostMock")
3
-
4
- class MicropostMock < ActiveMock::Base
5
-
6
- MAGIC_ID_NUMBER = 90
7
-
8
- MAGIC_ID_STRING = "F-1"
9
-
10
- class << self
11
-
12
- def attributes
13
- @attributes ||= HashWithIndifferentAccess.new({"id"=>nil, "content"=>nil, "user_id"=>nil, "up_votes"=>nil, "created_at"=>nil, "updated_at"=>nil})
14
- end
15
-
16
- def types
17
- @types ||= { id: build_type(Fixnum), content: build_type(String), user_id: build_type(Fixnum), up_votes: build_type(Fixnum), created_at: build_type(DateTime), updated_at: build_type(DateTime) }
18
- end
19
-
20
- def associations
21
- @associations ||= {:user=>nil}
22
- end
23
-
24
- def model_instance_methods
25
- @model_instance_methods ||= {"display_name"=>:not_implemented}
26
- end
27
-
28
- def model_class_methods
29
- @model_class_methods ||= {"from_users_followed_by"=>:not_implemented}
30
- end
31
-
32
- def mocked_class
33
- 'Micropost'
34
- end
35
-
36
- def column_names
37
- attribute_names
38
- end
39
-
40
- def attribute_names
41
- @attribute_names ||= ["id", "content", "user_id", "up_votes", "created_at", "updated_at"]
42
- end
43
-
44
- def primary_key
45
- "id"
46
- end
47
-
48
- end
49
-
50
- ##################################
51
- # Attributes getter/setters #
52
- ##################################
53
-
54
- def id
55
- read_attribute(:id)
56
- end
57
-
58
- def id=(val)
59
- write_attribute(:id, val)
60
- end
61
-
62
- def content
63
- read_attribute(:content)
64
- end
65
-
66
- def content=(val)
67
- write_attribute(:content, val)
68
- end
69
-
70
- def user_id
71
- read_attribute(:user_id)
72
- end
73
-
74
- def user_id=(val)
75
- write_attribute(:user_id, val)
76
- association = classes('User').try(:find, user_id)
77
- write_association(:user,association) unless association.nil?
78
- end
79
-
80
- def up_votes
81
- read_attribute(:up_votes)
82
- end
83
-
84
- def up_votes=(val)
85
- write_attribute(:up_votes, val)
86
- end
87
-
88
- def created_at
89
- read_attribute(:created_at)
90
- end
91
-
92
- def created_at=(val)
93
- write_attribute(:created_at, val)
94
- end
95
-
96
- def updated_at
97
- read_attribute(:updated_at)
98
- end
99
-
100
- def updated_at=(val)
101
- write_attribute(:updated_at, val)
102
- end
103
-
104
- ##################################
105
- # Associations #
106
- ##################################
107
-
108
- # belongs_to
109
- def user
110
- @associations[:user]
111
- end
112
-
113
- def user=(val)
114
- @associations[:user] = val
115
- write_attribute(:user_id, val.id) if val.respond_to?(:persisted?) && val.persisted?
116
- end
117
-
118
- def build_user(attributes={}, &block)
119
- association = classes('User').try(:new, attributes, &block)
120
- write_association(:user, association) unless association.nil?
121
- end
122
-
123
- def create_user(attributes={}, &block)
124
- association = classes('User').try(:create,attributes, &block)
125
- write_association(:user, nil) unless association.nil?
126
- end
127
- alias_method :create_user!, :create_user
128
-
129
-
130
- ##################################
131
- # Model Methods getter/setters #
132
- ##################################
133
-
134
-
135
- def display_name()
136
- block = model_instance_methods['display_name']
137
- self.class.is_implemented(block, '#display_name')
138
- block.call(*[])
139
- end
140
-
141
- def self.from_users_followed_by(user=nil)
142
- block = model_class_methods['from_users_followed_by']
143
- is_implemented(block, '::from_users_followed_by')
144
- block.call(*[user])
145
- end
146
-
147
- private
148
-
149
- def self.reload
150
- load __FILE__
151
- end
152
-
153
- end
@@ -1,151 +0,0 @@
1
- require 'active_mocker/active_mock'
2
- Object.send(:remove_const, "RelationshipMock") if Object.const_defined?("RelationshipMock")
3
-
4
- class RelationshipMock < ActiveMock::Base
5
-
6
- class << self
7
-
8
- def attributes
9
- @attributes ||= HashWithIndifferentAccess.new({"id"=>nil, "follower_id"=>nil, "followed_id"=>nil, "created_at"=>nil, "updated_at"=>nil})
10
- end
11
-
12
- def types
13
- @types ||= { id: build_type(Fixnum), follower_id: build_type(Fixnum), followed_id: build_type(Fixnum), created_at: build_type(DateTime), updated_at: build_type(DateTime) }
14
- end
15
-
16
- def associations
17
- @associations ||= {:follower=>nil, :followed=>nil}
18
- end
19
-
20
- def model_instance_methods
21
- @model_instance_methods ||= {}
22
- end
23
-
24
- def model_class_methods
25
- @model_class_methods ||= {}
26
- end
27
-
28
- def mocked_class
29
- 'Relationship'
30
- end
31
-
32
- def column_names
33
- attribute_names
34
- end
35
-
36
- def attribute_names
37
- @attribute_names ||= ["id", "follower_id", "followed_id", "created_at", "updated_at"]
38
- end
39
-
40
- def primary_key
41
- "id"
42
- end
43
-
44
- end
45
-
46
- ##################################
47
- # Attributes getter/setters #
48
- ##################################
49
-
50
- def id
51
- read_attribute(:id)
52
- end
53
-
54
- def id=(val)
55
- write_attribute(:id, val)
56
- end
57
-
58
- def follower_id
59
- read_attribute(:follower_id)
60
- end
61
-
62
- def follower_id=(val)
63
- write_attribute(:follower_id, val)
64
- association = classes('User').try(:find, follower_id)
65
- write_association(:follower,association) unless association.nil?
66
- end
67
-
68
- def followed_id
69
- read_attribute(:followed_id)
70
- end
71
-
72
- def followed_id=(val)
73
- write_attribute(:followed_id, val)
74
- association = classes('User').try(:find, followed_id)
75
- write_association(:followed,association) unless association.nil?
76
- end
77
-
78
- def created_at
79
- read_attribute(:created_at)
80
- end
81
-
82
- def created_at=(val)
83
- write_attribute(:created_at, val)
84
- end
85
-
86
- def updated_at
87
- read_attribute(:updated_at)
88
- end
89
-
90
- def updated_at=(val)
91
- write_attribute(:updated_at, val)
92
- end
93
-
94
- ##################################
95
- # Associations #
96
- ##################################
97
-
98
- # belongs_to
99
- def follower
100
- @associations[:follower]
101
- end
102
-
103
- def follower=(val)
104
- @associations[:follower] = val
105
- write_attribute(:follower_id, val.id) if val.respond_to?(:persisted?) && val.persisted?
106
- end
107
-
108
- def build_follower(attributes={}, &block)
109
- association = classes('User').try(:new, attributes, &block)
110
- write_association(:follower, association) unless association.nil?
111
- end
112
-
113
- def create_follower(attributes={}, &block)
114
- association = classes('User').try(:create,attributes, &block)
115
- write_association(:follower, nil) unless association.nil?
116
- end
117
- alias_method :create_follower!, :create_follower
118
-
119
- def followed
120
- @associations[:followed]
121
- end
122
-
123
- def followed=(val)
124
- @associations[:followed] = val
125
- write_attribute(:followed_id, val.id) if val.respond_to?(:persisted?) && val.persisted?
126
- end
127
-
128
- def build_followed(attributes={}, &block)
129
- association = classes('User').try(:new, attributes, &block)
130
- write_association(:followed, association) unless association.nil?
131
- end
132
-
133
- def create_followed(attributes={}, &block)
134
- association = classes('User').try(:create,attributes, &block)
135
- write_association(:followed, nil) unless association.nil?
136
- end
137
- alias_method :create_followed!, :create_followed
138
-
139
-
140
- ##################################
141
- # Model Methods getter/setters #
142
- ##################################
143
-
144
-
145
- private
146
-
147
- def self.reload
148
- load __FILE__
149
- end
150
-
151
- end