saucy 0.14.2 → 0.14.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ --- {}
2
+
@@ -0,0 +1,6 @@
1
+ ~
2
+ *.swp
3
+ *.swo
4
+ tmp
5
+ pkg
6
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
@@ -1,3 +1,8 @@
1
+ 0.14.3
2
+
3
+ * Redirect to upgrade page if beyond limit
4
+ * Fix error when an already logged in user accepts an invite
5
+
1
6
  0.14.2
2
7
 
3
8
  * Handle the case of nil billing_address
data/Gemfile CHANGED
@@ -1,23 +1,9 @@
1
1
  source "http://rubygems.org"
2
- gem "cucumber"
3
- gem "aruba"
4
- gem "rake"
5
- gem "rspec-rails", :require => false
6
- gem "rails", ">= 3.0.3"
7
- gem "thin"
8
- gem "clearance", "~> 0.11.0"
9
- gem "shoulda-matchers", "~> 1.0.0.beta3", :require => false
10
- gem "bourne", :require => false
11
- gem "sqlite3", :require => false
12
- gem "factory_girl", :require => false
13
- gem "sinatra"
14
- gem "sham_rack"
15
- gem "braintree"
16
- gem "timecop"
17
- gem "airbrake", "~> 3.0.4"
2
+
3
+ gemspec
18
4
 
19
5
  # used by the rails app in cucumber
20
- gem "cucumber-rails", :require => false
6
+ gem "cucumber-rails", '~> 1.0.6', :require => false
21
7
  gem "capybara", :require => false
22
8
  gem "factory_girl_rails", :require => false
23
9
  gem "formtastic", :require => false
@@ -1,3 +1,15 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ saucy (0.14.2)
5
+ airbrake (~> 3.0.4)
6
+ braintree (>= 2.6.2)
7
+ clearance (~> 0.11.2)
8
+ formtastic (>= 1.2)
9
+ railties (>= 3.0.3)
10
+ sham_rack (= 1.3.3)
11
+ sinatra (>= 1.1.2)
12
+
1
13
  GEM
2
14
  remote: http://rubygems.org/
3
15
  specs:
@@ -61,15 +73,15 @@ GEM
61
73
  clearance (0.11.2)
62
74
  diesel (~> 0.1.4)
63
75
  rails (>= 3.0)
64
- cucumber (1.0.4)
76
+ cucumber (1.0.6)
65
77
  builder (>= 2.1.2)
66
78
  diff-lcs (>= 1.1.2)
67
79
  gherkin (~> 2.4.18)
68
80
  json (>= 1.4.6)
69
81
  term-ansicolor (>= 1.0.6)
70
- cucumber-rails (1.0.3)
82
+ cucumber-rails (1.0.6)
71
83
  capybara (>= 1.1.1)
72
- cucumber (~> 1.0.4)
84
+ cucumber (>= 1.0.6)
73
85
  nokogiri (>= 1.5.0)
74
86
  daemons (1.1.4)
75
87
  database_cleaner (0.6.7)
@@ -83,34 +95,33 @@ GEM
83
95
  factory_girl_rails (1.2.0)
84
96
  factory_girl (~> 2.1.0)
85
97
  railties (>= 3.0.0)
86
- ffi (1.0.9)
98
+ ffi (1.0.10)
87
99
  formtastic (1.2.4)
88
100
  actionpack (>= 2.3.7)
89
101
  activesupport (>= 2.3.7)
90
102
  i18n (~> 0.4)
91
- gherkin (2.4.18)
103
+ gherkin (2.4.21)
92
104
  json (>= 1.4.6)
93
105
  hike (1.2.1)
94
106
  i18n (0.6.0)
95
107
  jquery-rails (1.0.14)
96
108
  railties (~> 3.0)
97
109
  thor (~> 0.14)
98
- json (1.5.4)
99
- json_pure (1.5.4)
100
- spruz (~> 0.2.8)
110
+ json (1.6.1)
111
+ json_pure (1.6.1)
101
112
  launchy (2.0.5)
102
113
  addressable (~> 2.2.6)
103
114
  mail (2.3.0)
104
115
  i18n (>= 0.4.0)
105
116
  mime-types (~> 1.16)
106
117
  treetop (~> 1.4.8)
107
- mime-types (1.16)
118
+ mime-types (1.17.2)
108
119
  mocha (0.9.8)
109
120
  rake
110
121
  multi_json (1.0.3)
111
122
  nokogiri (1.5.0)
112
123
  polyglot (0.3.2)
113
- rack (1.3.2)
124
+ rack (1.3.5)
114
125
  rack-cache (1.0.3)
115
126
  rack (>= 0.4)
116
127
  rack-mount (0.8.3)
@@ -151,24 +162,23 @@ GEM
151
162
  railties (~> 3.0)
152
163
  rspec (~> 2.6.0)
153
164
  rubyzip (0.9.4)
154
- selenium-webdriver (2.5.0)
165
+ selenium-webdriver (2.8.0)
155
166
  childprocess (>= 0.2.1)
156
167
  ffi (>= 1.0.7)
157
168
  json_pure
158
169
  rubyzip
159
170
  sham_rack (1.3.3)
160
171
  rack
161
- shoulda-matchers (1.0.0.beta3)
172
+ shoulda-matchers (1.0.0)
162
173
  sinatra (1.2.6)
163
174
  rack (~> 1.1)
164
- tilt (< 2.0, >= 1.2.2)
175
+ tilt (>= 1.2.2, < 2.0)
165
176
  sprockets (2.0.0)
166
177
  hike (~> 1.2)
167
178
  rack (~> 1.0)
168
- tilt (!= 1.3.0, ~> 1.1)
169
- spruz (0.2.13)
179
+ tilt (~> 1.1, != 1.3.0)
170
180
  sqlite3 (1.3.4)
171
- term-ansicolor (1.0.6)
181
+ term-ansicolor (1.0.7)
172
182
  thin (1.2.11)
173
183
  daemons (>= 1.0.9)
174
184
  eventmachine (>= 0.12.6)
@@ -187,14 +197,11 @@ PLATFORMS
187
197
  ruby
188
198
 
189
199
  DEPENDENCIES
190
- airbrake (~> 3.0.4)
191
- aruba
200
+ aruba (~> 0.4)
192
201
  bourne
193
- braintree
194
202
  capybara
195
- clearance (~> 0.11.0)
196
- cucumber
197
- cucumber-rails
203
+ cucumber (~> 1.0.6)
204
+ cucumber-rails (~> 1.0.6)
198
205
  database_cleaner
199
206
  dynamic_form
200
207
  factory_girl
@@ -205,9 +212,8 @@ DEPENDENCIES
205
212
  rails (>= 3.0.3)
206
213
  rake
207
214
  rspec-rails
208
- sham_rack
209
- shoulda-matchers (~> 1.0.0.beta3)
210
- sinatra
215
+ saucy!
216
+ shoulda-matchers (~> 1.0.0)
211
217
  sqlite3
212
218
  thin
213
219
  timecop
data/Rakefile CHANGED
@@ -1,13 +1,10 @@
1
- require 'rubygems'
2
1
  require 'bundler/setup'
2
+ require "bundler/gem_tasks"
3
+
3
4
  require 'rake'
4
- require 'rubygems/package_task'
5
5
  require 'cucumber/rake/task'
6
6
  require 'rspec/core/rake_task'
7
7
 
8
- APP_RAKEFILE = File.expand_path("../tmp/aruba/testapp/Rakefile", __FILE__)
9
- load 'rails/tasks/engine.rake'
10
-
11
8
  desc 'Default: run all tests'
12
9
  task :default => [:spec, :cucumber]
13
10
 
@@ -20,22 +17,3 @@ RSpec::Core::RakeTask.new do |t|
20
17
  t.pattern = "spec/**/*_spec.rb"
21
18
  t.rspec_opts = "--format progress"
22
19
  end
23
-
24
- eval("$specification = begin; #{IO.read('saucy.gemspec')}; end")
25
- Gem::PackageTask.new($specification) do |package|
26
- package.need_zip = true
27
- package.need_tar = true
28
- end
29
-
30
- gem_file = "pkg/#{$specification.name}-#{$specification.version}.gem"
31
-
32
- desc "Build and install the latest gem"
33
- task :install => :gem do
34
- sh("gem install --local #{gem_file}")
35
- end
36
-
37
- desc "Build and release the latest gem"
38
- task :release => :gem do
39
- sh("gem push #{gem_file}")
40
- end
41
-
@@ -26,10 +26,7 @@ class Invitation < ActiveRecord::Base
26
26
  if valid?
27
27
  transaction do
28
28
  save!
29
- @user.save!
30
- @user.memberships.create!(:account => account,
31
- :admin => admin,
32
- :projects => projects)
29
+ save_and_create_membership(@user)
33
30
  end
34
31
  end
35
32
  end
@@ -56,6 +53,17 @@ class Invitation < ActiveRecord::Base
56
53
 
57
54
  private
58
55
 
56
+ def save_and_create_membership(user)
57
+ user.save!
58
+ if !account.has_member?(user)
59
+ user.memberships.create!(:account => account,
60
+ :admin => admin,
61
+ :projects => projects)
62
+ else
63
+ true
64
+ end
65
+ end
66
+
59
67
  def deliver_invitation
60
68
  InvitationMailer.invitation(self).deliver
61
69
  end
@@ -69,5 +69,5 @@ When /^I copy the specs for this project$/ do
69
69
  end
70
70
 
71
71
  Then /^at least one example should have run$/ do
72
- Then %{the output should match /[1-9]0* examples/}
72
+ steps %{Then the output should match /[1-9]0* examples/}
73
73
  end
@@ -1,7 +1,7 @@
1
1
  require 'aruba/cucumber'
2
2
 
3
3
  Before do
4
- @aruba_timeout_seconds = 120
4
+ @aruba_timeout_seconds = 140
5
5
  end
6
6
 
7
7
  PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
@@ -135,5 +135,5 @@ Feature: Manage Projects
135
135
  | name: Test | Project 1 |
136
136
  When I go to the projects page for the "Test" account
137
137
  And I follow "New Project"
138
- Then I should be on the projects page for the "Test" account
138
+ Then I should be on the upgrade plan page for the "Test" account
139
139
  And I should see "at your limit"
@@ -138,5 +138,5 @@ Feature: Managing users
138
138
  | name | value |
139
139
  | users | 1 |
140
140
  When I follow "Invite user"
141
- Then I should be on the memberships page for the "Test" account
141
+ Then I should be on the upgrade plan page for the "Test" account
142
142
  And I should see "at your limit"
@@ -1,5 +1,5 @@
1
1
  require 'saucy/fake_braintree'
2
2
 
3
- After do |s|
3
+ After do |s|
4
4
  FakeBraintree.clear!
5
5
  end
@@ -9,3 +9,4 @@ require 'saucy/notifications'
9
9
  require 'saucy/engine'
10
10
  require 'saucy/projects_controller'
11
11
  require 'saucy/coupons'
12
+ require 'saucy/version'
@@ -59,7 +59,7 @@ module Saucy
59
59
 
60
60
  def ensure_account_within_limit(limit_name)
61
61
  if !Limit.can_add_one?(limit_name, current_account)
62
- redirect_to :back, :alert => t("saucy.errors.limited", :default => "You are at your limit of %{name} for your current plan.", :name => limit_name)
62
+ redirect_to edit_account_plan_path(current_account), :alert => t("saucy.errors.limited", :default => "You are at your limit of %{name} for your current plan.", :name => limit_name)
63
63
  end
64
64
  end
65
65
  end
@@ -133,13 +133,26 @@ module Saucy
133
133
  if valid?
134
134
  result = Braintree::Customer.update(customer_token, customer_attributes)
135
135
  handle_customer_result(result)
136
+ if !result.success?
137
+ Airbrake.notify(nil,
138
+ :error_class => "Customer update",
139
+ :error_message => "Customer update failed",
140
+ :parameters => { :customer_token => customer_token, :customer_attributes => customer_attributes }
141
+ )
142
+ end
136
143
  result.success?
144
+ else
145
+ Airbrake.notify(nil,
146
+ :error_class => "Subscription Validation",
147
+ :error_message => "Customer failed validation",
148
+ :parameters => customer_attributes
149
+ )
137
150
  end
138
151
  end
139
152
 
140
153
  def save_subscription
141
154
  if subscription
142
- Braintree::Subscription.update(subscription_token,
155
+ Braintree::Subscription.update(subscription_token,
143
156
  :plan_id => plan_id,
144
157
  :price => plan.price.to_s)
145
158
  elsif plan.billed?
@@ -174,7 +187,7 @@ module Saucy
174
187
  card_attributes.merge!(:options => credit_card_options)
175
188
  end
176
189
  card_attributes
177
- else
190
+ else
178
191
  {}
179
192
  end
180
193
  end
@@ -207,6 +220,11 @@ module Saucy
207
220
  end
208
221
 
209
222
  def handle_errors(result, remote_errors)
223
+ Airbrake.notify(nil,
224
+ :error_class => "handle_errors",
225
+ :error_message => "handle_errors",
226
+ :parameters => { :result => result, :remote_errors => remote_errors }
227
+ )
210
228
  if result && result.status == "processor_declined"
211
229
  errors[:card_number] << "was denied by the payment processor with the message: #{result.processor_response_text}"
212
230
  elsif result && result.status == "gateway_rejected"
@@ -234,6 +252,11 @@ module Saucy
234
252
  self.next_billing_date = zone.parse(result.subscription.next_billing_date)
235
253
  self.subscription_status = result.subscription.status
236
254
  else
255
+ Airbrake.notify(nil,
256
+ :error_class => "Subscription creation",
257
+ :error_message => "Subscription creation failed",
258
+ :parameters => subscription_attributes
259
+ )
237
260
  false
238
261
  end
239
262
  end
@@ -0,0 +1,3 @@
1
+ module Saucy
2
+ VERSION = '0.14.3'
3
+ end
@@ -0,0 +1,43 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "saucy/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = %q{saucy}
7
+ s.version = Saucy::VERSION
8
+ s.summary = %q{Clearance-based Rails engine for SaaS}
9
+ s.description = %q{Clearance-based Rails engine for Software as a Service (Saas) that provides account and project management}
10
+
11
+ s.files = `git ls-files`.split("\n")
12
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
+ s.require_path = 'lib'
14
+
15
+ s.has_rdoc = false
16
+
17
+ s.authors = ["thoughtbot, inc.", "Joe Ferris", "Mike Burns", "Chad Pytel", "Jason Morrison", "Ben Orenstein"]
18
+ s.email = %q{support@thoughtbot.com}
19
+ s.homepage = "http://github.com/thoughtbot/saucy"
20
+
21
+ s.add_dependency('clearance', '~> 0.11.2')
22
+ s.add_dependency('formtastic', '>= 1.2')
23
+ s.add_dependency('railties', '>= 3.0.3')
24
+ s.add_dependency('braintree', '>= 2.6.2')
25
+ s.add_dependency('sham_rack', '1.3.3')
26
+ s.add_dependency('sinatra', '>= 1.1.2')
27
+ s.add_dependency('airbrake', '~> 3.0.4')
28
+
29
+ s.add_development_dependency('aruba', '~> 0.4')
30
+ s.add_development_dependency('shoulda-matchers', '~> 1.0.0')
31
+ s.add_development_dependency('bourne')
32
+ s.add_development_dependency('sqlite3')
33
+ s.add_development_dependency('factory_girl')
34
+ s.add_development_dependency('timecop')
35
+ s.add_development_dependency('rake')
36
+ s.add_development_dependency('cucumber', '~> 1.0.6')
37
+ s.add_development_dependency('rspec-rails')
38
+ s.add_development_dependency('rails', '>= 3.0.3')
39
+ s.add_development_dependency('thin')
40
+
41
+ s.platform = Gem::Platform::RUBY
42
+ s.rubygems_version = %q{1.2.0}
43
+ end
@@ -53,7 +53,7 @@ describe AccountsController, "successful create for a confirmed user" do
53
53
  post :create, :signup => signup_attributes, :plan_id => plan.to_param
54
54
  end
55
55
 
56
- it "creates an signup" do
56
+ it "creates a signup" do
57
57
  Signup.should have_received(:new).with(signup_attributes)
58
58
  signup.should have_received(:save)
59
59
  end
@@ -190,6 +190,29 @@ describe Invitation, "valid accept for an existing user specifically set" do
190
190
  end
191
191
  end
192
192
 
193
+ describe Invitation, "valid accept for an existing user specifically set, who is already a member" do
194
+ let(:user) { Factory(:user) }
195
+ subject { Factory(:invitation, :email => user.email) }
196
+ let(:account) { subject.account }
197
+
198
+ before do
199
+ Factory(:membership, :user => user, :account => account)
200
+ @result = subject.accept({:existing_user => user})
201
+ end
202
+
203
+ it "returns true" do
204
+ @result.should be_true
205
+ end
206
+
207
+ it "adds the user to the account" do
208
+ account.users.should include(user)
209
+ end
210
+
211
+ it "marks the invitation as used" do
212
+ subject.reload.should be_used
213
+ end
214
+ end
215
+
193
216
  describe Invitation, "saved" do
194
217
  let(:mail) { stub('invitation', :deliver => true) }
195
218
  subject { Factory(:invitation) }
@@ -0,0 +1,6 @@
1
+ test: &test
2
+ adapter: sqlite3
3
+ database: tmp/test.sqlite3
4
+ pool: 5
5
+ timeout: 5000
6
+
File without changes
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saucy
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.14.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 14
8
+ - 3
9
+ version: 0.14.3
6
10
  platform: ruby
7
11
  authors:
8
12
  - thoughtbot, inc.
@@ -15,16 +19,20 @@ autorequire:
15
19
  bindir: bin
16
20
  cert_chain: []
17
21
 
18
- date: 2011-10-28 00:00:00 Z
22
+ date: 2011-12-08 00:00:00 -05:00
23
+ default_executable:
19
24
  dependencies:
20
25
  - !ruby/object:Gem::Dependency
21
26
  name: clearance
22
27
  prerelease: false
23
28
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
29
  requirements:
26
30
  - - ~>
27
31
  - !ruby/object:Gem::Version
32
+ segments:
33
+ - 0
34
+ - 11
35
+ - 2
28
36
  version: 0.11.2
29
37
  type: :runtime
30
38
  version_requirements: *id001
@@ -32,10 +40,12 @@ dependencies:
32
40
  name: formtastic
33
41
  prerelease: false
34
42
  requirement: &id002 !ruby/object:Gem::Requirement
35
- none: false
36
43
  requirements:
37
44
  - - ">="
38
45
  - !ruby/object:Gem::Version
46
+ segments:
47
+ - 1
48
+ - 2
39
49
  version: "1.2"
40
50
  type: :runtime
41
51
  version_requirements: *id002
@@ -43,10 +53,13 @@ dependencies:
43
53
  name: railties
44
54
  prerelease: false
45
55
  requirement: &id003 !ruby/object:Gem::Requirement
46
- none: false
47
56
  requirements:
48
57
  - - ">="
49
58
  - !ruby/object:Gem::Version
59
+ segments:
60
+ - 3
61
+ - 0
62
+ - 3
50
63
  version: 3.0.3
51
64
  type: :runtime
52
65
  version_requirements: *id003
@@ -54,10 +67,13 @@ dependencies:
54
67
  name: braintree
55
68
  prerelease: false
56
69
  requirement: &id004 !ruby/object:Gem::Requirement
57
- none: false
58
70
  requirements:
59
71
  - - ">="
60
72
  - !ruby/object:Gem::Version
73
+ segments:
74
+ - 2
75
+ - 6
76
+ - 2
61
77
  version: 2.6.2
62
78
  type: :runtime
63
79
  version_requirements: *id004
@@ -65,10 +81,13 @@ dependencies:
65
81
  name: sham_rack
66
82
  prerelease: false
67
83
  requirement: &id005 !ruby/object:Gem::Requirement
68
- none: false
69
84
  requirements:
70
85
  - - "="
71
86
  - !ruby/object:Gem::Version
87
+ segments:
88
+ - 1
89
+ - 3
90
+ - 3
72
91
  version: 1.3.3
73
92
  type: :runtime
74
93
  version_requirements: *id005
@@ -76,10 +95,13 @@ dependencies:
76
95
  name: sinatra
77
96
  prerelease: false
78
97
  requirement: &id006 !ruby/object:Gem::Requirement
79
- none: false
80
98
  requirements:
81
99
  - - ">="
82
100
  - !ruby/object:Gem::Version
101
+ segments:
102
+ - 1
103
+ - 1
104
+ - 2
83
105
  version: 1.1.2
84
106
  type: :runtime
85
107
  version_requirements: *id006
@@ -87,10 +109,13 @@ dependencies:
87
109
  name: airbrake
88
110
  prerelease: false
89
111
  requirement: &id007 !ruby/object:Gem::Requirement
90
- none: false
91
112
  requirements:
92
113
  - - ~>
93
114
  - !ruby/object:Gem::Version
115
+ segments:
116
+ - 3
117
+ - 0
118
+ - 4
94
119
  version: 3.0.4
95
120
  type: :runtime
96
121
  version_requirements: *id007
@@ -98,13 +123,141 @@ dependencies:
98
123
  name: aruba
99
124
  prerelease: false
100
125
  requirement: &id008 !ruby/object:Gem::Requirement
101
- none: false
102
126
  requirements:
103
- - - "="
127
+ - - ~>
104
128
  - !ruby/object:Gem::Version
105
- version: 0.2.6
129
+ segments:
130
+ - 0
131
+ - 4
132
+ version: "0.4"
106
133
  type: :development
107
134
  version_requirements: *id008
135
+ - !ruby/object:Gem::Dependency
136
+ name: shoulda-matchers
137
+ prerelease: false
138
+ requirement: &id009 !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ segments:
143
+ - 1
144
+ - 0
145
+ - 0
146
+ version: 1.0.0
147
+ type: :development
148
+ version_requirements: *id009
149
+ - !ruby/object:Gem::Dependency
150
+ name: bourne
151
+ prerelease: false
152
+ requirement: &id010 !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ segments:
157
+ - 0
158
+ version: "0"
159
+ type: :development
160
+ version_requirements: *id010
161
+ - !ruby/object:Gem::Dependency
162
+ name: sqlite3
163
+ prerelease: false
164
+ requirement: &id011 !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ segments:
169
+ - 0
170
+ version: "0"
171
+ type: :development
172
+ version_requirements: *id011
173
+ - !ruby/object:Gem::Dependency
174
+ name: factory_girl
175
+ prerelease: false
176
+ requirement: &id012 !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ segments:
181
+ - 0
182
+ version: "0"
183
+ type: :development
184
+ version_requirements: *id012
185
+ - !ruby/object:Gem::Dependency
186
+ name: timecop
187
+ prerelease: false
188
+ requirement: &id013 !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ segments:
193
+ - 0
194
+ version: "0"
195
+ type: :development
196
+ version_requirements: *id013
197
+ - !ruby/object:Gem::Dependency
198
+ name: rake
199
+ prerelease: false
200
+ requirement: &id014 !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ segments:
205
+ - 0
206
+ version: "0"
207
+ type: :development
208
+ version_requirements: *id014
209
+ - !ruby/object:Gem::Dependency
210
+ name: cucumber
211
+ prerelease: false
212
+ requirement: &id015 !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ~>
215
+ - !ruby/object:Gem::Version
216
+ segments:
217
+ - 1
218
+ - 0
219
+ - 6
220
+ version: 1.0.6
221
+ type: :development
222
+ version_requirements: *id015
223
+ - !ruby/object:Gem::Dependency
224
+ name: rspec-rails
225
+ prerelease: false
226
+ requirement: &id016 !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ segments:
231
+ - 0
232
+ version: "0"
233
+ type: :development
234
+ version_requirements: *id016
235
+ - !ruby/object:Gem::Dependency
236
+ name: rails
237
+ prerelease: false
238
+ requirement: &id017 !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ segments:
243
+ - 3
244
+ - 0
245
+ - 3
246
+ version: 3.0.3
247
+ type: :development
248
+ version_requirements: *id017
249
+ - !ruby/object:Gem::Dependency
250
+ name: thin
251
+ prerelease: false
252
+ requirement: &id018 !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ segments:
257
+ - 0
258
+ version: "0"
259
+ type: :development
260
+ version_requirements: *id018
108
261
  description: Clearance-based Rails engine for Software as a Service (Saas) that provides account and project management
109
262
  email: support@thoughtbot.com
110
263
  executables: []
@@ -114,13 +267,14 @@ extensions: []
114
267
  extra_rdoc_files: []
115
268
 
116
269
  files:
270
+ - .bundle/config
271
+ - .gitignore
272
+ - .rspec
117
273
  - CHANGELOG.md
118
274
  - Gemfile
119
275
  - Gemfile.lock
120
- - Rakefile
121
276
  - README.md
122
- - config/locales/en.yml
123
- - config/routes.rb
277
+ - Rakefile
124
278
  - app/controllers/accounts_controller.rb
125
279
  - app/controllers/admin/accounts_controller.rb
126
280
  - app/controllers/admin/base_controller.rb
@@ -187,11 +341,34 @@ files:
187
341
  - app/views/projects/show.html.erb
188
342
  - app/views/shared/_project_dropdown.html.erb
189
343
  - app/views/shared/_saucy_javascript.html.erb
190
- - public/saucy/stylesheets/flutie.css
191
- - public/saucy/stylesheets/screen.css
344
+ - config/locales/en.yml
345
+ - config/routes.rb
346
+ - db/migrate/20111014142613_create_canceled_accounts.rb
347
+ - features/run_features.feature
348
+ - features/step_definitions/clearance_steps.rb
349
+ - features/step_definitions/rails_steps.rb
350
+ - features/step_definitions/saucy_steps.rb
351
+ - features/support/env.rb
352
+ - features/support/file.rb
192
353
  - lib/generators/saucy/base.rb
193
354
  - lib/generators/saucy/features/features_generator.rb
355
+ - lib/generators/saucy/features/templates/README
194
356
  - lib/generators/saucy/features/templates/factories.rb
357
+ - lib/generators/saucy/features/templates/features/admin_reporting.feature
358
+ - lib/generators/saucy/features/templates/features/edit_profile.feature
359
+ - lib/generators/saucy/features/templates/features/edit_project_permissions.feature
360
+ - lib/generators/saucy/features/templates/features/edit_user_permissions.feature
361
+ - lib/generators/saucy/features/templates/features/manage_account.feature
362
+ - lib/generators/saucy/features/templates/features/manage_billing.feature
363
+ - lib/generators/saucy/features/templates/features/manage_plan.feature
364
+ - lib/generators/saucy/features/templates/features/manage_projects.feature
365
+ - lib/generators/saucy/features/templates/features/manage_users.feature
366
+ - lib/generators/saucy/features/templates/features/new_account.feature
367
+ - lib/generators/saucy/features/templates/features/project_dropdown.feature
368
+ - lib/generators/saucy/features/templates/features/sign_up.feature
369
+ - lib/generators/saucy/features/templates/features/sign_up_coupon.feature
370
+ - lib/generators/saucy/features/templates/features/sign_up_paid.feature
371
+ - lib/generators/saucy/features/templates/features/trial_plans.feature
195
372
  - lib/generators/saucy/features/templates/step_definitions/account_steps.rb
196
373
  - lib/generators/saucy/features/templates/step_definitions/braintree_steps.rb
197
374
  - lib/generators/saucy/features/templates/step_definitions/country_steps.rb
@@ -213,6 +390,7 @@ files:
213
390
  - lib/generators/saucy/specs/specs_generator.rb
214
391
  - lib/generators/saucy/specs/templates/support/braintree.rb
215
392
  - lib/generators/saucy/views/views_generator.rb
393
+ - lib/saucy.rb
216
394
  - lib/saucy/account.rb
217
395
  - lib/saucy/account_authorization.rb
218
396
  - lib/saucy/configuration.rb
@@ -224,34 +402,14 @@ files:
224
402
  - lib/saucy/plan.rb
225
403
  - lib/saucy/project.rb
226
404
  - lib/saucy/projects_controller.rb
405
+ - lib/saucy/railties/tasks.rake
227
406
  - lib/saucy/routing_extensions.rb
228
407
  - lib/saucy/subscription.rb
229
408
  - lib/saucy/user.rb
230
- - lib/saucy.rb
231
- - lib/saucy/railties/tasks.rake
232
- - features/run_features.feature
233
- - features/step_definitions/clearance_steps.rb
234
- - features/step_definitions/rails_steps.rb
235
- - features/step_definitions/saucy_steps.rb
236
- - features/support/env.rb
237
- - features/support/file.rb
238
- - lib/generators/saucy/features/templates/features/admin_reporting.feature
239
- - lib/generators/saucy/features/templates/features/edit_profile.feature
240
- - lib/generators/saucy/features/templates/features/edit_project_permissions.feature
241
- - lib/generators/saucy/features/templates/features/edit_user_permissions.feature
242
- - lib/generators/saucy/features/templates/features/manage_account.feature
243
- - lib/generators/saucy/features/templates/features/manage_billing.feature
244
- - lib/generators/saucy/features/templates/features/manage_plan.feature
245
- - lib/generators/saucy/features/templates/features/manage_projects.feature
246
- - lib/generators/saucy/features/templates/features/manage_users.feature
247
- - lib/generators/saucy/features/templates/features/new_account.feature
248
- - lib/generators/saucy/features/templates/features/project_dropdown.feature
249
- - lib/generators/saucy/features/templates/features/sign_up.feature
250
- - lib/generators/saucy/features/templates/features/sign_up_coupon.feature
251
- - lib/generators/saucy/features/templates/features/sign_up_paid.feature
252
- - lib/generators/saucy/features/templates/features/trial_plans.feature
253
- - lib/generators/saucy/features/templates/README
254
- - db/migrate/20111014142613_create_canceled_accounts.rb
409
+ - lib/saucy/version.rb
410
+ - public/saucy/stylesheets/flutie.css
411
+ - public/saucy/stylesheets/screen.css
412
+ - saucy.gemspec
255
413
  - spec/controllers/accounts_controller_spec.rb
256
414
  - spec/controllers/admin/accounts_controller_spec.rb
257
415
  - spec/controllers/admin/base_controller_spec.rb
@@ -282,14 +440,18 @@ files:
282
440
  - spec/route_extensions_spec.rb
283
441
  - spec/saucy/configuration_spec.rb
284
442
  - spec/saucy/notifications_spec.rb
443
+ - spec/scaffold/config/database.yml
285
444
  - spec/scaffold/config/routes.rb
445
+ - spec/scaffold/views/layouts/application.html.erb
286
446
  - spec/spec_helper.rb
447
+ - spec/support/.gitkeep
287
448
  - spec/support/authentication_helpers.rb
288
449
  - spec/support/authorization_helpers.rb
289
450
  - spec/support/braintree.rb
290
451
  - spec/support/clearance_matchers.rb
291
452
  - spec/support/notifications.rb
292
453
  - spec/views/accounts/_account.html.erb_spec.rb
454
+ has_rdoc: true
293
455
  homepage: http://github.com/thoughtbot/saucy
294
456
  licenses: []
295
457
 
@@ -299,21 +461,23 @@ rdoc_options: []
299
461
  require_paths:
300
462
  - lib
301
463
  required_ruby_version: !ruby/object:Gem::Requirement
302
- none: false
303
464
  requirements:
304
465
  - - ">="
305
466
  - !ruby/object:Gem::Version
467
+ segments:
468
+ - 0
306
469
  version: "0"
307
470
  required_rubygems_version: !ruby/object:Gem::Requirement
308
- none: false
309
471
  requirements:
310
472
  - - ">="
311
473
  - !ruby/object:Gem::Version
474
+ segments:
475
+ - 0
312
476
  version: "0"
313
477
  requirements: []
314
478
 
315
479
  rubyforge_project:
316
- rubygems_version: 1.8.10
480
+ rubygems_version: 1.3.6
317
481
  signing_key:
318
482
  specification_version: 3
319
483
  summary: Clearance-based Rails engine for SaaS
@@ -354,8 +518,11 @@ test_files:
354
518
  - spec/route_extensions_spec.rb
355
519
  - spec/saucy/configuration_spec.rb
356
520
  - spec/saucy/notifications_spec.rb
521
+ - spec/scaffold/config/database.yml
357
522
  - spec/scaffold/config/routes.rb
523
+ - spec/scaffold/views/layouts/application.html.erb
358
524
  - spec/spec_helper.rb
525
+ - spec/support/.gitkeep
359
526
  - spec/support/authentication_helpers.rb
360
527
  - spec/support/authorization_helpers.rb
361
528
  - spec/support/braintree.rb