sigame 0.0.1

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 (54) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +41 -0
  3. data/Rakefile +29 -0
  4. data/app/controllers/followings_controller.rb +17 -0
  5. data/app/models/following.rb +22 -0
  6. data/config/routes.rb +5 -0
  7. data/db/migrate/20120808132126_create_followings.rb +13 -0
  8. data/lib/generators/sigame/install/USAGE +8 -0
  9. data/lib/generators/sigame/install/install_generator.rb +8 -0
  10. data/lib/sigame.rb +9 -0
  11. data/lib/sigame/engine.rb +15 -0
  12. data/lib/sigame/version.rb +3 -0
  13. data/lib/tasks/sigame_tasks.rake +4 -0
  14. data/spec/controllers/followings_controller_spec.rb +72 -0
  15. data/spec/dummy/README.rdoc +261 -0
  16. data/spec/dummy/Rakefile +7 -0
  17. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  18. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  19. data/spec/dummy/app/controllers/application_controller.rb +9 -0
  20. data/spec/dummy/app/controllers/home_controller.rb +4 -0
  21. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  22. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  23. data/spec/dummy/config.ru +4 -0
  24. data/spec/dummy/config/application.rb +65 -0
  25. data/spec/dummy/config/boot.rb +10 -0
  26. data/spec/dummy/config/database.yml +25 -0
  27. data/spec/dummy/config/environment.rb +5 -0
  28. data/spec/dummy/config/environments/development.rb +37 -0
  29. data/spec/dummy/config/environments/production.rb +67 -0
  30. data/spec/dummy/config/environments/test.rb +37 -0
  31. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  32. data/spec/dummy/config/initializers/inflections.rb +15 -0
  33. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  34. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  35. data/spec/dummy/config/initializers/session_store.rb +8 -0
  36. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  37. data/spec/dummy/config/locales/en.yml +5 -0
  38. data/spec/dummy/config/routes.rb +60 -0
  39. data/spec/dummy/db/development.sqlite3 +0 -0
  40. data/spec/dummy/db/schema.rb +27 -0
  41. data/spec/dummy/db/test.sqlite3 +0 -0
  42. data/spec/dummy/log/development.log +206 -0
  43. data/spec/dummy/log/test.log +2333 -0
  44. data/spec/dummy/public/404.html +26 -0
  45. data/spec/dummy/public/422.html +26 -0
  46. data/spec/dummy/public/500.html +25 -0
  47. data/spec/dummy/public/favicon.ico +0 -0
  48. data/spec/dummy/script/rails +6 -0
  49. data/spec/factories.rb +7 -0
  50. data/spec/models/following_spec.rb +52 -0
  51. data/spec/routing/followings_routing_spec.rb +15 -0
  52. data/spec/spec_helper.rb +41 -0
  53. data/spec/support/user.rb +7 -0
  54. metadata +240 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,7 @@
1
+ FactoryGirl.define do
2
+ factory :following do
3
+ user
4
+ followed { create(:user) }
5
+ end
6
+ factory :user
7
+ end
@@ -0,0 +1,52 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Following do
5
+ it { should belong_to(:user) }
6
+ it { should belong_to(:followed).class_name("User") }
7
+ [:user_id, :followed_id].each do |attribute|
8
+ it { should_not allow_mass_assignment_of(attribute) }
9
+ end
10
+ [:followed].each do |attribute|
11
+ it { should allow_mass_assignment_of(attribute) }
12
+ end
13
+ [:user, :followed].each do |attribute|
14
+ it { should validate_presence_of(attribute) }
15
+ end
16
+ describe :validations do
17
+ describe "uniqueness validation" do
18
+ before { create(:following) }
19
+ it { should validate_uniqueness_of(:followed_id).scoped_to(:user_id) }
20
+ end
21
+ describe "follow himself" do
22
+ let(:user) {create :user}
23
+ let(:following) {build(:following, user: user, followed: user)}
24
+ it {
25
+ expect {
26
+ following.save.should be_false
27
+ }.to change { following.errors[:followed] }.from([]).to(["não pode ser o próprio"])
28
+ }
29
+ end
30
+ end
31
+ describe "user followers updation" do
32
+ let(:user__1) {create :user}
33
+ let(:user__2) {create :user}
34
+ let(:following) {build(:following, user: user__1, followed: user__2)}
35
+
36
+ context "creating following" do
37
+ it {
38
+ expect {
39
+ following.save!
40
+ }.to change{user__2.reload.followers_count}.by(1)
41
+ }
42
+ end
43
+ context "deleting following" do
44
+ before { following.save! }
45
+ it {
46
+ expect {
47
+ following.destroy
48
+ }.to change{user__2.reload.followers_count}.by(-1)
49
+ }
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,15 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require "spec_helper"
3
+
4
+ describe FollowingsController do
5
+ describe "routing" do
6
+ it {
7
+ post("/users/1/followings").should route_to(controller: "followings", action: "create", user_id: "1")
8
+ user_followings_path("1").should == "/users/1/followings"
9
+ }
10
+ it {
11
+ delete("/users/1/followings").should route_to(controller: "followings", action: "destroy", user_id: "1")
12
+ user_followings_path("1").should == "/users/1/followings"
13
+ }
14
+ end
15
+ end
@@ -0,0 +1,41 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
10
+ Dir[File.join(ENGINE_RAILS_ROOT, "spec/support/**/*.rb")].each {|f| require f }
11
+
12
+ RSpec.configure do |config|
13
+ # ## Mock Framework
14
+ #
15
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
16
+ #
17
+ # config.mock_with :mocha
18
+ # config.mock_with :flexmock
19
+ # config.mock_with :rr
20
+
21
+ config.include FactoryGirl::Syntax::Methods
22
+
23
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
24
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
25
+
26
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
27
+ # examples within a transaction, remove the following line or assign false
28
+ # instead of true.
29
+ config.use_transactional_fixtures = true
30
+
31
+ # If true, the base class of anonymous controllers will be inferred
32
+ # automatically. This will be the default behavior in future versions of
33
+ # rspec-rails.
34
+ config.infer_base_class_for_anonymous_controllers = false
35
+
36
+ # Run specs in random order to surface order dependencies. If you find an
37
+ # order dependency and want to debug it, you can fix the order by providing
38
+ # the seed, which is printed after each run.
39
+ # --seed 1234
40
+ config.order = "random"
41
+ end
@@ -0,0 +1,7 @@
1
+ class User < ActiveRecord::Base
2
+ has_many :followings
3
+ ActiveRecord::Migration.create_table :users, temporary: true do |t|
4
+ t.integer :followers_count, default: 0
5
+ t.string :name
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,240 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sigame
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Pedro Nascimento
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.0
20
+ none: false
21
+ prerelease: false
22
+ name: rails
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 3.2.0
28
+ none: false
29
+ type: :runtime
30
+ - !ruby/object:Gem::Dependency
31
+ version_requirements: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ none: false
37
+ prerelease: false
38
+ name: sqlite3
39
+ requirement: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ none: false
45
+ type: :development
46
+ - !ruby/object:Gem::Dependency
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ none: false
53
+ prerelease: false
54
+ name: rspec-rails
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ none: false
61
+ type: :development
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ none: false
69
+ prerelease: false
70
+ name: pry-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ none: false
77
+ type: :development
78
+ - !ruby/object:Gem::Dependency
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ none: false
85
+ prerelease: false
86
+ name: factory_girl_rails
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ none: false
93
+ type: :development
94
+ - !ruby/object:Gem::Dependency
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ none: false
101
+ prerelease: false
102
+ name: shoulda-matchers
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ none: false
109
+ type: :development
110
+ description: Allow users to follow each other.
111
+ email:
112
+ - pnascimento@gmail.com
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - app/controllers/followings_controller.rb
118
+ - app/models/following.rb
119
+ - config/routes.rb
120
+ - db/migrate/20120808132126_create_followings.rb
121
+ - lib/generators/sigame/install/install_generator.rb
122
+ - lib/generators/sigame/install/USAGE
123
+ - lib/sigame/engine.rb
124
+ - lib/sigame/version.rb
125
+ - lib/sigame.rb
126
+ - lib/tasks/sigame_tasks.rake
127
+ - MIT-LICENSE
128
+ - Rakefile
129
+ - README.md
130
+ - spec/controllers/followings_controller_spec.rb
131
+ - spec/dummy/app/assets/javascripts/application.js
132
+ - spec/dummy/app/assets/stylesheets/application.css
133
+ - spec/dummy/app/controllers/application_controller.rb
134
+ - spec/dummy/app/controllers/home_controller.rb
135
+ - spec/dummy/app/helpers/application_helper.rb
136
+ - spec/dummy/app/views/layouts/application.html.erb
137
+ - spec/dummy/config/application.rb
138
+ - spec/dummy/config/boot.rb
139
+ - spec/dummy/config/database.yml
140
+ - spec/dummy/config/environment.rb
141
+ - spec/dummy/config/environments/development.rb
142
+ - spec/dummy/config/environments/production.rb
143
+ - spec/dummy/config/environments/test.rb
144
+ - spec/dummy/config/initializers/backtrace_silencers.rb
145
+ - spec/dummy/config/initializers/inflections.rb
146
+ - spec/dummy/config/initializers/mime_types.rb
147
+ - spec/dummy/config/initializers/secret_token.rb
148
+ - spec/dummy/config/initializers/session_store.rb
149
+ - spec/dummy/config/initializers/wrap_parameters.rb
150
+ - spec/dummy/config/locales/en.yml
151
+ - spec/dummy/config/routes.rb
152
+ - spec/dummy/config.ru
153
+ - spec/dummy/db/development.sqlite3
154
+ - spec/dummy/db/schema.rb
155
+ - spec/dummy/db/test.sqlite3
156
+ - spec/dummy/log/development.log
157
+ - spec/dummy/log/test.log
158
+ - spec/dummy/public/404.html
159
+ - spec/dummy/public/422.html
160
+ - spec/dummy/public/500.html
161
+ - spec/dummy/public/favicon.ico
162
+ - spec/dummy/Rakefile
163
+ - spec/dummy/README.rdoc
164
+ - spec/dummy/script/rails
165
+ - spec/factories.rb
166
+ - spec/models/following_spec.rb
167
+ - spec/routing/followings_routing_spec.rb
168
+ - spec/spec_helper.rb
169
+ - spec/support/user.rb
170
+ homepage: http://helabs.com.br/opensource
171
+ licenses: []
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ segments:
182
+ - 0
183
+ hash: 3559861508612642011
184
+ none: false
185
+ required_rubygems_version: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ segments:
191
+ - 0
192
+ hash: 3559861508612642011
193
+ none: false
194
+ requirements: []
195
+ rubyforge_project:
196
+ rubygems_version: 1.8.24
197
+ signing_key:
198
+ specification_version: 3
199
+ summary: Allow users to follow each other.
200
+ test_files:
201
+ - spec/controllers/followings_controller_spec.rb
202
+ - spec/dummy/app/assets/javascripts/application.js
203
+ - spec/dummy/app/assets/stylesheets/application.css
204
+ - spec/dummy/app/controllers/application_controller.rb
205
+ - spec/dummy/app/controllers/home_controller.rb
206
+ - spec/dummy/app/helpers/application_helper.rb
207
+ - spec/dummy/app/views/layouts/application.html.erb
208
+ - spec/dummy/config/application.rb
209
+ - spec/dummy/config/boot.rb
210
+ - spec/dummy/config/database.yml
211
+ - spec/dummy/config/environment.rb
212
+ - spec/dummy/config/environments/development.rb
213
+ - spec/dummy/config/environments/production.rb
214
+ - spec/dummy/config/environments/test.rb
215
+ - spec/dummy/config/initializers/backtrace_silencers.rb
216
+ - spec/dummy/config/initializers/inflections.rb
217
+ - spec/dummy/config/initializers/mime_types.rb
218
+ - spec/dummy/config/initializers/secret_token.rb
219
+ - spec/dummy/config/initializers/session_store.rb
220
+ - spec/dummy/config/initializers/wrap_parameters.rb
221
+ - spec/dummy/config/locales/en.yml
222
+ - spec/dummy/config/routes.rb
223
+ - spec/dummy/config.ru
224
+ - spec/dummy/db/development.sqlite3
225
+ - spec/dummy/db/schema.rb
226
+ - spec/dummy/db/test.sqlite3
227
+ - spec/dummy/log/development.log
228
+ - spec/dummy/log/test.log
229
+ - spec/dummy/public/404.html
230
+ - spec/dummy/public/422.html
231
+ - spec/dummy/public/500.html
232
+ - spec/dummy/public/favicon.ico
233
+ - spec/dummy/Rakefile
234
+ - spec/dummy/README.rdoc
235
+ - spec/dummy/script/rails
236
+ - spec/factories.rb
237
+ - spec/models/following_spec.rb
238
+ - spec/routing/followings_routing_spec.rb
239
+ - spec/spec_helper.rb
240
+ - spec/support/user.rb