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,3 +0,0 @@
1
- // Place all the styles related to the Sessions controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -1,3 +0,0 @@
1
- // Place all the styles related to the StaticPages controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -1,3 +0,0 @@
1
- // Place all the styles related to the Users controller here.
2
- // They will automatically be included in application.css.
3
- // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -1,6 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- # Prevent CSRF attacks by raising an exception.
3
- # For APIs, you may want to use :null_session instead.
4
- protect_from_forgery with: :exception
5
- include SessionsHelper
6
- end
@@ -1,31 +0,0 @@
1
- class MicropostsController < ApplicationController
2
- before_action :signed_in_user, only: [:create, :destroy]
3
- before_action :correct_user, only: :destroy
4
-
5
- def create
6
- @micropost = current_user.microposts.build(micropost_params)
7
- if @micropost.save
8
- flash[:success] = "Micropost created!"
9
- redirect_to root_url
10
- else
11
- @feed_items = []
12
- render 'static_pages/home'
13
- end
14
- end
15
-
16
- def destroy
17
- @micropost.destroy
18
- redirect_to root_url
19
- end
20
-
21
- private
22
-
23
- def micropost_params
24
- params.require(:micropost).permit(:content)
25
- end
26
-
27
- def correct_user
28
- @micropost = current_user.microposts.find_by(id: params[:id])
29
- redirect_to root_url if @micropost.nil?
30
- end
31
- end
@@ -1,21 +0,0 @@
1
- class RelationshipsController < ApplicationController
2
- before_action :signed_in_user
3
-
4
- def create
5
- @user = User.find(params[:relationship][:followed_id])
6
- current_user.follow!(@user)
7
- respond_to do |format|
8
- format.html { redirect_to @user }
9
- format.js
10
- end
11
- end
12
-
13
- def destroy
14
- @user = Relationship.find(params[:id]).followed
15
- current_user.unfollow!(@user)
16
- respond_to do |format|
17
- format.html { redirect_to @user }
18
- format.js
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- class SessionsController < ApplicationController
2
-
3
- def new
4
- end
5
-
6
- def create
7
- user = User.find_by(email: params[:session][:email].downcase)
8
- if user && user.authenticate(params[:session][:password])
9
- sign_in user
10
- redirect_back_or user
11
- else
12
- flash.now[:error] = 'Invalid email/password combination'
13
- render 'new'
14
- end
15
- end
16
-
17
- def destroy
18
- sign_out
19
- redirect_to root_url
20
- end
21
- end
@@ -1,18 +0,0 @@
1
- class StaticPagesController < ApplicationController
2
-
3
- def home
4
- if signed_in?
5
- @micropost = current_user.microposts.build
6
- @feed_items = current_user.feed.paginate(page: params[:page])
7
- end
8
- end
9
-
10
- def help
11
- end
12
-
13
- def about
14
- end
15
-
16
- def contact
17
- end
18
- end
@@ -1,80 +0,0 @@
1
- class UsersController < ApplicationController
2
- before_action :signed_in_user,
3
- only: [:index, :edit, :update, :destroy, :following, :followers]
4
- before_action :correct_user, only: [:edit, :update]
5
- before_action :admin_user, only: :destroy
6
-
7
- def index
8
- @users = User.paginate(page: params[:page])
9
- end
10
-
11
- def show
12
- @user = User.find(params[:id])
13
- @microposts = @user.microposts.paginate(page: params[:page])
14
- end
15
-
16
- def new
17
- @user = User.new
18
- end
19
-
20
- def create
21
- @user = User.new(user_params)
22
- if @user.save
23
- sign_in @user
24
- flash[:success] = "Welcome to the Sample App!"
25
- redirect_to @user
26
- else
27
- render 'new'
28
- end
29
- end
30
-
31
- def edit
32
- end
33
-
34
- def update
35
- if @user.update_attributes(user_params)
36
- flash[:success] = "Profile updated"
37
- redirect_to @user
38
- else
39
- render 'edit'
40
- end
41
- end
42
-
43
- def destroy
44
- User.find(params[:id]).destroy
45
- flash[:success] = "User destroyed."
46
- redirect_to users_url
47
- end
48
-
49
- def following
50
- @title = "Following"
51
- @user = User.find(params[:id])
52
- @users = @user.followed_users.paginate(page: params[:page])
53
- render 'show_follow'
54
- end
55
-
56
- def followers
57
- @title = "Followers"
58
- @user = User.find(params[:id])
59
- @users = @user.followers.paginate(page: params[:page])
60
- render 'show_follow'
61
- end
62
-
63
- private
64
-
65
- def user_params
66
- params.require(:user).permit(:name, :email, :password,
67
- :password_confirmation)
68
- end
69
-
70
- # Before filters
71
-
72
- def correct_user
73
- @user = User.find(params[:id])
74
- redirect_to(root_url) unless current_user?(@user)
75
- end
76
-
77
- def admin_user
78
- redirect_to(root_url) unless current_user.admin?
79
- end
80
- end
@@ -1,12 +0,0 @@
1
- module ApplicationHelper
2
-
3
- # Returns the full title on a per-page basis.
4
- def full_title(page_title)
5
- base_title = "Ruby on Rails Tutorial Sample App"
6
- if page_title.empty?
7
- base_title
8
- else
9
- "#{base_title} | #{page_title}"
10
- end
11
- end
12
- end
@@ -1,49 +0,0 @@
1
- module SessionsHelper
2
-
3
- def sign_in(user)
4
- remember_token = User.new_remember_token
5
- cookies.permanent[:remember_token] = remember_token
6
- user.update_attribute(:remember_token, User.digest(remember_token))
7
- self.current_user = user
8
- end
9
-
10
- def signed_in?
11
- !current_user.nil?
12
- end
13
-
14
- def current_user=(user)
15
- @current_user = user
16
- end
17
-
18
- def current_user
19
- remember_token = User.digest(cookies[:remember_token])
20
- @current_user ||= User.find_by(remember_token: remember_token)
21
- end
22
-
23
- def current_user?(user)
24
- user == current_user
25
- end
26
-
27
- def signed_in_user
28
- unless signed_in?
29
- store_location
30
- redirect_to signin_url, notice: "Please sign in."
31
- end
32
- end
33
-
34
- def sign_out
35
- current_user.update_attribute(:remember_token,
36
- User.digest(User.new_remember_token))
37
- cookies.delete(:remember_token)
38
- self.current_user = nil
39
- end
40
-
41
- def redirect_back_or(default)
42
- redirect_to(session[:return_to] || default)
43
- session.delete(:return_to)
44
- end
45
-
46
- def store_location
47
- session[:return_to] = request.url if request.get?
48
- end
49
- end
@@ -1,2 +0,0 @@
1
- module StaticPagesHelper
2
- end
@@ -1,10 +0,0 @@
1
- module UsersHelper
2
-
3
- # Returns the Gravatar (http://gravatar.com/) for the given user.
4
- def gravatar_for(user, options = { size: 50 })
5
- gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
6
- size = options[:size]
7
- gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
8
- image_tag(gravatar_url, alt: user.name, class: "gravatar")
9
- end
10
- end
File without changes
File without changes
@@ -1,24 +0,0 @@
1
- class Micropost < ActiveRecord::Base
2
- belongs_to :user
3
- default_scope -> { order('created_at DESC') }
4
- MAGIC_ID_NUMBER = 90
5
- MAGIC_ID_STRING = 'F-1'
6
-
7
- module DoNotIncludeInMock
8
-
9
- end
10
- include DoNotIncludeInMock
11
- # self.primary_key = :lol
12
- # self.table_name = :posts
13
- # Returns microposts from the users being followed by the given user.
14
- def self.from_users_followed_by(user=nil)
15
- followed_user_ids = "SELECT followed_id FROM relationships
16
- WHERE follower_id = :user_id"
17
- where("user_id IN (#{followed_user_ids}) OR user_id = :user_id",
18
- user_id: user.id)
19
- end
20
-
21
- def display_name
22
-
23
- end
24
- end
@@ -1,6 +0,0 @@
1
- class Relationship < ActiveRecord::Base
2
- belongs_to :follower, class_name: "User"
3
- belongs_to :followed, class_name: "User"
4
- validates :follower_id, presence: true
5
- validates :followed_id, presence: true
6
- end
@@ -1,39 +0,0 @@
1
- class User < ActiveRecord::Base
2
- has_many :microposts, dependent: :destroy
3
- has_many :relationships, foreign_key: "follower_id", dependent: :destroy
4
- has_many :followed_users, through: :relationships, source: :followed
5
- has_many :reverse_relationships, foreign_key: "followed_id",
6
- class_name: "Relationship",
7
- dependent: :destroy
8
- has_many :followers, through: :reverse_relationships, source: :follower
9
-
10
- def User.new_remember_token
11
- SecureRandom.urlsafe_base64
12
- end
13
-
14
- def User.digest(token)
15
- Digest::SHA1.hexdigest(token.to_s)
16
- end
17
-
18
- def feed
19
- Micropost.from_users_followed_by(self)
20
- end
21
-
22
- def following?(other_user)
23
- relationships.find_by(followed_id: other_user.id)
24
- end
25
-
26
- def follow!(other_user)
27
- relationships.create!(followed_id: other_user.id)
28
- end
29
-
30
- def unfollow!(other_user)
31
- relationships.find_by(followed_id: other_user.id).destroy
32
- end
33
-
34
- private
35
-
36
- def create_remember_token
37
- self.remember_token = User.digest(User.new_remember_token)
38
- end
39
- end
@@ -1,13 +0,0 @@
1
- <footer class="footer">
2
- <small>
3
- <a href="http://railstutorial.org/">Rails Tutorial</a>
4
- by Michael Hartl
5
- </small>
6
- <nav>
7
- <ul>
8
- <li><%= link_to "About", about_path %></li>
9
- <li><%= link_to "Contact", contact_path %></li>
10
- <li><a href="http://news.railstutorial.org/">News</a></li>
11
- </ul>
12
- </nav>
13
- </footer>
@@ -1,31 +0,0 @@
1
- <header class="navbar navbar-fixed-top navbar-inverse">
2
- <div class="navbar-inner">
3
- <div class="container">
4
- <%= link_to "sample app", root_path, id: "logo" %>
5
- <nav>
6
- <ul class="nav pull-right">
7
- <li><%= link_to "Home", root_path %></li>
8
- <li><%= link_to "Help", help_path %></li>
9
- <% if signed_in? %>
10
- <li><%= link_to "Users", users_path %></li>
11
- <li id="fat-menu" class="dropdown">
12
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">
13
- Account <b class="caret"></b>
14
- </a>
15
- <ul class="dropdown-menu">
16
- <li><%= link_to "Profile", current_user %></li>
17
- <li><%= link_to "Settings", edit_user_path(current_user) %></li>
18
- <li class="divider"></li>
19
- <li>
20
- <%= link_to "Sign out", signout_path, method: "delete" %>
21
- </li>
22
- </ul>
23
- </li>
24
- <% else %>
25
- <li><%= link_to "Sign in", signin_path %></li>
26
- <% end %>
27
- </ul>
28
- </nav>
29
- </div>
30
- </div>
31
- </header>
@@ -1,3 +0,0 @@
1
- <!--[if lt IE 9]>
2
- <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
3
- <![endif]-->
@@ -1,22 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title><%= full_title(yield(:title)) %></title>
5
- <%= stylesheet_link_tag "application", media: "all",
6
- "data-turbolinks-track" => true %>
7
- <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
8
- <%= csrf_meta_tags %>
9
- <%= render 'layouts/shim' %>
10
- </head>
11
- <body>
12
- <%= render 'layouts/header' %>
13
- <div class="container">
14
- <% flash.each do |key, value| %>
15
- <div class="alert alert-<%= key %>"><%= value %></div>
16
- <% end %>
17
- <%= yield %>
18
- <%= render 'layouts/footer' %>
19
- <%= debug(params) if Rails.env.development? %>
20
- </div>
21
- </body>
22
- </html>
@@ -1,11 +0,0 @@
1
- <li>
2
- <span class="content"><%= micropost.content %></span>
3
- <span class="timestamp">
4
- Posted <%= time_ago_in_words(micropost.created_at) %> ago.
5
- </span>
6
- <% if current_user?(micropost.user) %>
7
- <%= link_to "delete", micropost, method: :delete,
8
- data: { confirm: "You sure?" },
9
- title: micropost.content %>
10
- <% end %>
11
- </li>