saucy 0.1.6 → 0.1.7

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.
data/README CHANGED
@@ -2,11 +2,13 @@ script/rails g saucy:install
2
2
  script/rails g saucy:features
3
3
  script/rails g saucy:views
4
4
 
5
+
5
6
  To change the layout for a controller inside of saucy, add a line like this to
6
7
  your config/application.rb:
7
8
 
8
9
  config.saucy.layouts.accounts.index = "custom"
9
10
 
11
+
10
12
  To extend the ProjectsController:
11
13
 
12
14
  class ProjectsController < ApplicationController
@@ -17,3 +19,18 @@ To extend the ProjectsController:
17
19
  @deleters = @project.deleters
18
20
  end
19
21
  end
22
+
23
+
24
+ Plans need to exist for users to sign up for. In db/seeds.rb:
25
+
26
+ %w(free expensive mega-expensive).each do |plan_name|
27
+ Plan.find_or_create_by_name(plan_name)
28
+ end
29
+
30
+ Then run: rake db:seed
31
+
32
+ To use the seed data in your Cucumber:
33
+
34
+ features/support/seed.rb:
35
+
36
+ require Rails.root.join('db','seeds')
@@ -1,5 +1,5 @@
1
1
  class AccountsController < ApplicationController
2
- skip_before_filter :authenticate, :only => [:new, :create]
2
+ before_filter :authenticate, :only => [:index, :edit, :update]
3
3
  before_filter :authorize_admin, :except => [:new, :create, :index]
4
4
  layout Saucy::Layouts.to_proc
5
5
 
@@ -27,6 +27,10 @@ DESC
27
27
 
28
28
  def create_paths
29
29
  paths = <<-PATHS
30
+ when 'the list of accounts'
31
+ accounts_path
32
+ when 'the list of plans page'
33
+ plans_path
30
34
  when /^the memberships page for the "([^"]+)" account$/
31
35
  account = Account.find_by_name!($1)
32
36
  account_memberships_path(account)
@@ -6,7 +6,8 @@ Feature: Manage account
6
6
  Scenario: Edit account details
7
7
  Given an account exists with a name of "Test"
8
8
  And I am signed in as an admin of the "Test" account
9
- When I go to the settings page for the "Test" account
9
+ When I go to the list of accounts
10
+ And I follow "Settings" within ".account-header"
10
11
  Then I should see "Settings for Test"
11
12
  When I fill in "Account name" with "Name Change"
12
13
  And I press "Update"
@@ -15,7 +15,8 @@ Feature: Sign up
15
15
  Then I should see error messages
16
16
 
17
17
  Scenario: User signs up with valid data
18
- When I go to the sign up page for the "Free" plan
18
+ When I go to the list of plans page
19
+ And I follow "Free"
19
20
  And I fill in "Email" with "email@person.com"
20
21
  And I fill in "Password" with "password"
21
22
  And I fill in "Confirm password" with "password"
@@ -136,6 +136,21 @@ describe AccountsController, "index with multiple projects" do
136
136
  end
137
137
  end
138
138
 
139
+ describe AccountsController, "signed out" do
140
+ it "redirects to sign_in on index" do
141
+ get :index
142
+ should redirect_to(sign_in_path)
143
+ end
144
+ it "redirects to sign_in on edit" do
145
+ get :edit, :id => 1
146
+ should redirect_to(sign_in_path)
147
+ end
148
+ it "redirects to sign_in on update" do
149
+ put :update, :id => 1, :account => {}
150
+ should redirect_to(sign_in_path)
151
+ end
152
+ end
153
+
139
154
  describe AccountsController, "index with one project" do
140
155
  let(:user) { Factory.stub(:user) }
141
156
  let(:accounts) { %w(one two) }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saucy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 6
10
- version: 0.1.6
9
+ - 7
10
+ version: 0.1.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - thoughtbot, inc.
@@ -17,14 +17,13 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-12-17 00:00:00 -05:00
20
+ date: 2010-12-20 00:00:00 -05:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
24
- type: :runtime
25
- prerelease: false
26
24
  name: formtastic
27
- version_requirements: &id001 !ruby/object:Gem::Requirement
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
28
27
  none: false
29
28
  requirements:
30
29
  - - ">="
@@ -34,12 +33,12 @@ dependencies:
34
33
  - 1
35
34
  - 2
36
35
  version: "1.2"
37
- requirement: *id001
38
- - !ruby/object:Gem::Dependency
39
36
  type: :runtime
40
- prerelease: false
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
41
39
  name: railties
42
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
43
42
  none: false
44
43
  requirements:
45
44
  - - ">="
@@ -50,12 +49,12 @@ dependencies:
50
49
  - 0
51
50
  - 3
52
51
  version: 3.0.3
53
- requirement: *id002
52
+ type: :runtime
53
+ version_requirements: *id002
54
54
  - !ruby/object:Gem::Dependency
55
- type: :development
56
- prerelease: false
57
55
  name: aruba
58
- version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
59
58
  none: false
60
59
  requirements:
61
60
  - - "="
@@ -66,7 +65,8 @@ dependencies:
66
65
  - 2
67
66
  - 6
68
67
  version: 0.2.6
69
- requirement: *id003
68
+ type: :development
69
+ version_requirements: *id003
70
70
  description: Clearance-based Rails engine for Software as a Service (Saas) that provides account and project management
71
71
  email: support@thoughtbot.com
72
72
  executables: []
@@ -76,102 +76,102 @@ extensions: []
76
76
  extra_rdoc_files: []
77
77
 
78
78
  files:
79
- - Gemfile
80
79
  - Gemfile.lock
81
80
  - Rakefile
82
81
  - README
82
+ - Gemfile
83
83
  - config/routes.rb
84
- - app/controllers/accounts_controller.rb
85
- - app/controllers/invitations_controller.rb
86
- - app/controllers/memberships_controller.rb
87
- - app/controllers/plans_controller.rb
88
- - app/controllers/profiles_controller.rb
89
- - app/models/invitation.rb
90
- - app/models/membership.rb
91
- - app/models/permission.rb
92
- - app/models/signup.rb
93
- - app/views/accounts/_account.html.erb
94
- - app/views/accounts/_blank_slate.html.erb
84
+ - app/views/invitations/new.html.erb
85
+ - app/views/invitations/show.html.erb
86
+ - app/views/accounts/new.html.erb
95
87
  - app/views/accounts/_projects.html.erb
96
- - app/views/accounts/_tab_bar.html.erb
97
88
  - app/views/accounts/edit.html.erb
89
+ - app/views/accounts/_tab_bar.html.erb
90
+ - app/views/accounts/_blank_slate.html.erb
91
+ - app/views/accounts/_account.html.erb
98
92
  - app/views/accounts/index.html.erb
99
- - app/views/accounts/new.html.erb
100
93
  - app/views/invitation_mailer/invitation.text.erb
101
- - app/views/invitations/new.html.erb
102
- - app/views/invitations/show.html.erb
94
+ - app/views/plans/index.html.erb
103
95
  - app/views/memberships/edit.html.erb
104
96
  - app/views/memberships/index.html.erb
105
- - app/views/plans/index.html.erb
106
- - app/views/profiles/_inputs.html.erb
107
97
  - app/views/profiles/edit.html.erb
108
- - app/views/projects/_form.html.erb
98
+ - app/views/profiles/_inputs.html.erb
99
+ - app/views/projects/new.html.erb
109
100
  - app/views/projects/edit.html.erb
110
101
  - app/views/projects/index.html.erb
111
- - app/views/projects/new.html.erb
102
+ - app/views/projects/_form.html.erb
103
+ - app/controllers/profiles_controller.rb
104
+ - app/controllers/accounts_controller.rb
105
+ - app/controllers/memberships_controller.rb
106
+ - app/controllers/plans_controller.rb
107
+ - app/controllers/invitations_controller.rb
108
+ - app/models/membership.rb
109
+ - app/models/invitation.rb
110
+ - app/models/signup.rb
111
+ - app/models/permission.rb
112
+ - lib/generators/saucy/views/views_generator.rb
112
113
  - lib/generators/saucy/base.rb
114
+ - lib/generators/saucy/install/install_generator.rb
115
+ - lib/generators/saucy/install/templates/create_saucy_tables.rb
116
+ - lib/generators/saucy/install/templates/controllers/projects_controller.rb
117
+ - lib/generators/saucy/install/templates/models/project.rb
118
+ - lib/generators/saucy/install/templates/models/plan.rb
119
+ - lib/generators/saucy/install/templates/models/account.rb
120
+ - lib/generators/saucy/install/templates/models/invitation_mailer.rb
113
121
  - lib/generators/saucy/features/features_generator.rb
114
122
  - lib/generators/saucy/features/templates/factories.rb
115
- - lib/generators/saucy/features/templates/step_definitions/email_steps.rb
116
123
  - lib/generators/saucy/features/templates/step_definitions/factory_girl_steps.rb
117
124
  - lib/generators/saucy/features/templates/step_definitions/html_steps.rb
118
- - lib/generators/saucy/features/templates/step_definitions/project_steps.rb
119
125
  - lib/generators/saucy/features/templates/step_definitions/session_steps.rb
126
+ - lib/generators/saucy/features/templates/step_definitions/project_steps.rb
127
+ - lib/generators/saucy/features/templates/step_definitions/email_steps.rb
120
128
  - lib/generators/saucy/features/templates/step_definitions/user_steps.rb
121
- - lib/generators/saucy/install/install_generator.rb
122
- - lib/generators/saucy/install/templates/controllers/projects_controller.rb
123
- - lib/generators/saucy/install/templates/create_saucy_tables.rb
124
- - lib/generators/saucy/install/templates/models/account.rb
125
- - lib/generators/saucy/install/templates/models/invitation_mailer.rb
126
- - lib/generators/saucy/install/templates/models/plan.rb
127
- - lib/generators/saucy/install/templates/models/project.rb
128
- - lib/generators/saucy/views/views_generator.rb
129
- - lib/saucy/account.rb
129
+ - lib/saucy.rb
130
+ - lib/saucy/layouts.rb
130
131
  - lib/saucy/account_authorization.rb
131
132
  - lib/saucy/configuration.rb
132
133
  - lib/saucy/engine.rb
133
- - lib/saucy/layouts.rb
134
- - lib/saucy/plan.rb
135
134
  - lib/saucy/project.rb
136
- - lib/saucy/projects_controller.rb
135
+ - lib/saucy/plan.rb
136
+ - lib/saucy/account.rb
137
137
  - lib/saucy/user.rb
138
- - lib/saucy.rb
138
+ - lib/saucy/projects_controller.rb
139
139
  - features/run_features.feature
140
- - features/step_definitions/clearance_steps.rb
141
- - features/step_definitions/rails_steps.rb
142
- - features/support/env.rb
143
140
  - features/support/file.rb
144
- - lib/generators/saucy/features/templates/features/edit_profile.feature
145
- - lib/generators/saucy/features/templates/features/edit_project_permissions.feature
146
- - lib/generators/saucy/features/templates/features/edit_user_permissions.feature
141
+ - features/support/env.rb
142
+ - features/step_definitions/rails_steps.rb
143
+ - features/step_definitions/clearance_steps.rb
144
+ - lib/generators/saucy/features/templates/README
147
145
  - lib/generators/saucy/features/templates/features/manage_account.feature
148
- - lib/generators/saucy/features/templates/features/manage_projects.feature
149
146
  - lib/generators/saucy/features/templates/features/manage_users.feature
150
- - lib/generators/saucy/features/templates/features/new_account.feature
147
+ - lib/generators/saucy/features/templates/features/edit_profile.feature
148
+ - lib/generators/saucy/features/templates/features/edit_user_permissions.feature
151
149
  - lib/generators/saucy/features/templates/features/sign_up.feature
152
- - lib/generators/saucy/features/templates/README
153
- - spec/controllers/accounts_controller_spec.rb
150
+ - lib/generators/saucy/features/templates/features/new_account.feature
151
+ - lib/generators/saucy/features/templates/features/manage_projects.feature
152
+ - lib/generators/saucy/features/templates/features/edit_project_permissions.feature
153
+ - spec/views/accounts/_account.html.erb_spec.rb
154
+ - spec/scaffold/config/routes.rb
154
155
  - spec/controllers/application_controller_spec.rb
155
156
  - spec/controllers/invitations_controller_spec.rb
157
+ - spec/controllers/accounts_controller_spec.rb
156
158
  - spec/controllers/memberships_controller_spec.rb
157
159
  - spec/controllers/profiles_controller_spec.rb
158
160
  - spec/controllers/projects_controller_spec.rb
159
- - spec/environment.rb
160
161
  - spec/layouts_spec.rb
161
- - spec/models/account_spec.rb
162
- - spec/models/invitation_spec.rb
162
+ - spec/saucy_spec.rb
163
+ - spec/support/clearance_matchers.rb
164
+ - spec/support/authorization_helpers.rb
165
+ - spec/support/authentication_helpers.rb
166
+ - spec/models/user_spec.rb
167
+ - spec/models/signup_spec.rb
168
+ - spec/models/project_spec.rb
163
169
  - spec/models/membership_spec.rb
170
+ - spec/models/invitation_spec.rb
164
171
  - spec/models/permission_spec.rb
165
- - spec/models/project_spec.rb
166
- - spec/models/signup_spec.rb
167
- - spec/models/user_spec.rb
168
- - spec/saucy_spec.rb
169
- - spec/scaffold/config/routes.rb
172
+ - spec/models/account_spec.rb
170
173
  - spec/spec_helper.rb
171
- - spec/support/authentication_helpers.rb
172
- - spec/support/authorization_helpers.rb
173
- - spec/support/clearance_matchers.rb
174
- - spec/views/accounts/_account.html.erb_spec.rb
174
+ - spec/environment.rb
175
175
  has_rdoc: true
176
176
  homepage: http://github.com/thoughtbot/saucy
177
177
  licenses: []
@@ -208,7 +208,7 @@ specification_version: 3
208
208
  summary: Clearance-based Rails engine for SaaS
209
209
  test_files:
210
210
  - features/run_features.feature
211
- - features/step_definitions/clearance_steps.rb
212
- - features/step_definitions/rails_steps.rb
213
- - features/support/env.rb
214
211
  - features/support/file.rb
212
+ - features/support/env.rb
213
+ - features/step_definitions/rails_steps.rb
214
+ - features/step_definitions/clearance_steps.rb