active_mocker 1.4.2 → 1.5

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