apple_cart 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/.gitignore +4 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +82 -0
  5. data/LICENSE +22 -0
  6. data/README.md +1 -0
  7. data/Rakefile +2 -0
  8. data/apple_cart.gemspec +40 -0
  9. data/bin/apple_cart +103 -0
  10. data/lib/apple_cart.rb +3 -0
  11. data/lib/apple_cart/helpers.rb +17 -0
  12. data/lib/apple_cart/version.rb +3 -0
  13. data/source/.autotest +23 -0
  14. data/source/.gitignore +36 -0
  15. data/source/.rspec +2 -0
  16. data/source/.rvmrc.erb +1 -0
  17. data/source/Capfile +5 -0
  18. data/source/Gemfile +87 -0
  19. data/source/app/helpers/body_class_helper.rb +7 -0
  20. data/source/app/views/layouts/application.html.erb.erb +14 -0
  21. data/source/app/views/pages/maintenance.html.erb.erb +37 -0
  22. data/source/app/views/shared/_flashes.html.erb +5 -0
  23. data/source/app/views/shared/_javascript.html.erb +7 -0
  24. data/source/autotest/discover.rb +2 -0
  25. data/source/config/cucumber.yml +13 -0
  26. data/source/config/database.yml.example +14 -0
  27. data/source/config/deploy.rb.erb +23 -0
  28. data/source/config/initializers/actionmailer.rb.erb +12 -0
  29. data/source/config/initializers/constants.rb +1 -0
  30. data/source/config/initializers/core_ext.rb +1 -0
  31. data/source/config/initializers/date_and_time_formats.rb +9 -0
  32. data/source/db/samplize.rb +58 -0
  33. data/source/db/seed.rb +27 -0
  34. data/source/features/step_definitions/form_steps.rb +16 -0
  35. data/source/features/step_definitions/object_creation_steps.rb +34 -0
  36. data/source/features/step_definitions/third_person_web_steps.rb +94 -0
  37. data/source/features/support/factory_girl.rb +1 -0
  38. data/source/features/support/regex.rb +3 -0
  39. data/source/features/support/seed_data.rb +6 -0
  40. data/source/lib/formats.rb +5 -0
  41. data/source/lib/recipes/kompanee-recipes.rb +2 -0
  42. data/source/lib/tasks/db.rake +38 -0
  43. data/source/lib/tasks/seed.rake +33 -0
  44. data/source/public/humans.txt +49 -0
  45. data/source/public/stylesheets/sass/fonts.scss +38 -0
  46. data/source/public/stylesheets/sass/grids.scss +14 -0
  47. data/source/public/stylesheets/sass/reset.scss +98 -0
  48. data/source/public/stylesheets/sass/template.scss +63 -0
  49. data/source/spec/factories/users.rb +12 -0
  50. data/source/spec/support/color.rb +3 -0
  51. data/source/spec/support/devise.rb +3 -0
  52. data/source/spec/support/focused.rb +6 -0
  53. data/source/spec/support/matchers/paperclip_matchers.rb +5 -0
  54. data/source/spec/support/pending.rb +5 -0
  55. data/source/template.rb +309 -0
  56. metadata +169 -0
@@ -0,0 +1,33 @@
1
+ namespace :db do
2
+ desc "Reset the database and load seed data"
3
+ task :reset_and_seed => ['db:reset', 'db:seed']
4
+
5
+ desc "Remigrate the database and load seed data"
6
+ task :remigrate_and_seed => ['db:migrate:reset', 'db:seed']
7
+
8
+ desc 'Provide a base load of randomly generated (but valid) data for development.'
9
+ task :seed => :prepare do
10
+ Rake::Task['db:seed:base'].invoke
11
+ Rake::Task['db:seed:sample'].invoke unless Rails.env.production? || Rails.env.test?
12
+ end
13
+
14
+ namespace :seed do
15
+ task :test => "db:test:prepare" do
16
+ Rails.env = 'test'
17
+ Rake::Task['db:seed'].invoke
18
+ end
19
+
20
+ task :base => :prepare do
21
+ DB::Seed.all
22
+ end
23
+
24
+ task :sample => :prepare do
25
+ DB::Samplize.all
26
+ end
27
+
28
+ task :prepare => :environment do
29
+ require File.join(Rails.root, "db", "samplize")
30
+ require File.join(Rails.root, "db", "seed")
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,49 @@
1
+ development:
2
+ scripting languages:
3
+ server side: Ruby
4
+ client side: Javascript
5
+ frameworks: Rails
6
+ source control: Git
7
+ ide: Vim
8
+
9
+ company:
10
+ name: The Kompanee
11
+ address 1: 115 Penn Warren Drive
12
+ address 2: Suite 300-141
13
+ city: Brentwood
14
+ state or province: Tennessee
15
+ country: United States
16
+ twitter: @thekompanee
17
+ homepage: http://www.thekompanee.com
18
+
19
+ team member:
20
+ name: Jeff Felchner
21
+ title: Grand Poobah
22
+
23
+ email: poobah [at] thekompanee [the dot] com
24
+ twitter: @jeff_felchner
25
+ homepage: http://www.jefffelchner.com
26
+
27
+ preferred contact: email
28
+
29
+ from: Nashville, Tennessee, United States
30
+ languages: English, French
31
+
32
+ site:
33
+ launch: 2011-01-29
34
+ language: English
35
+
36
+ compatibility:
37
+ html: 5
38
+ css: 3
39
+
40
+ browsers:
41
+ internet explorer: >= 8
42
+ firefox: >= 3.6
43
+ chrome: >= 5
44
+ safari: >= 5
45
+ opera: >= 10
46
+
47
+ display: 1024x768
48
+
49
+ mobile version: no
@@ -0,0 +1,38 @@
1
+ /*
2
+ Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3
+ Code licensed under the BSD License:
4
+ http://developer.yahoo.com/yui/license.html
5
+ version: 3.3.0
6
+ build: 3167
7
+ */
8
+
9
+ /**
10
+ * Nudge down to get to 13px equivalent for these form elements
11
+ */
12
+ select,
13
+ input,
14
+ button,
15
+ textarea {
16
+ font:99%;
17
+ }
18
+
19
+ /**
20
+ * To help tables remember to inherit
21
+ */
22
+ table {
23
+ font-size:inherit;
24
+ font:100%;
25
+ }
26
+
27
+ /**
28
+ * Bump up IE to get to 13px equivalent for these fixed-width elements
29
+ */
30
+ pre,
31
+ code,
32
+ kbd,
33
+ samp,
34
+ tt {
35
+ font-family:monospace;
36
+ *font-size:108%;
37
+ line-height:100%;
38
+ }
@@ -0,0 +1,14 @@
1
+ .line:after,.lastUnit:after{clear:both;display:block;visibility:hidden;overflow:hidden;height:0 !important;line-height:0;font-size:xx-large;content:" x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ";}
2
+ .line{*zoom:1;}
3
+ .unit{float:left;}
4
+ .size1of1{float:none;}
5
+ .size1of2{width:50%;}
6
+ .size1of3{width:33.33333%;}
7
+ .size2of3{width:66.66666%;}
8
+ .size1of4{width:25%;}
9
+ .size3of4{width:75%;}
10
+ .size1of5{width:20%;}
11
+ .size2of5{width:40%;}
12
+ .size3of5{width:60%;}
13
+ .size4of5{width:80%;}
14
+ .lastUnit{display:table-cell;float:none;width:auto;*display:block;*zoom:1;_position:relative;_left:-3px;_margin-right:-3px;}
@@ -0,0 +1,98 @@
1
+ /* http://meyerweb.com/eric/tools/css/reset/ */
2
+ /* v1.0 | 20080212 */
3
+
4
+ * {
5
+ margin: 0;
6
+ padding: 0;
7
+ border: none;
8
+ text-decoration: none;
9
+ font-size: 100%;
10
+ font-weight: normal;
11
+ text-align: left;
12
+ vertical-align: baseline;
13
+ background: transparent;
14
+ outline: none; }
15
+
16
+ code, kbd, samp, pre, tt, var, textarea, input, select, isindex, listing,
17
+ xmp, plaintext {
18
+ font: inherit;
19
+ font-size: 1em;
20
+ white-space: normal; }
21
+
22
+ dfn, i, cite, var, address, em {
23
+ font-style: normal; }
24
+
25
+ th, b, strong, h1, h2, h3, h4, h5, h6 {
26
+ font-weight: normal; }
27
+
28
+ /* tables still need 'cellspacing="0"' in the markup */
29
+ table {
30
+ border-collapse: collapse;
31
+ border-spacing: 0; }
32
+
33
+ caption, th, td, center {
34
+ text-align: left;
35
+ vertical-align: top; }
36
+
37
+ body {
38
+ line-height: 1;
39
+ background: white;
40
+ color: black; }
41
+
42
+ blockquote,
43
+ q {
44
+ quotes: none; }
45
+
46
+ blockquote:before,
47
+ blockquote:after,
48
+ q:before,
49
+ q:after {
50
+ content: '';
51
+ content: none;
52
+ }
53
+
54
+ ul, ol, dir, menu {
55
+ list-style: none; }
56
+
57
+ sub, sup {
58
+ vertical-align: baseline; }
59
+
60
+ a {
61
+ color: inherit; }
62
+
63
+ hr {
64
+ display: none; } /* we don't need a visual hr in layout */
65
+
66
+ font {
67
+ color: inherit !important;
68
+ font: inherit !important;
69
+ color: inherit !important; } /* disables some nasty font attributes in standard browsers */
70
+
71
+ marquee {
72
+ overflow: inherit !important;
73
+ -moz-binding: none; }
74
+
75
+ blink {
76
+ text-decoration: none; }
77
+
78
+ nobr {
79
+ white-space: normal; }
80
+
81
+ html,
82
+ body {
83
+ width: 100%;
84
+ height: 100%;
85
+ }
86
+
87
+ /* remember to define focus styles! */
88
+ :focus {
89
+ outline: 0;
90
+ }
91
+
92
+ /* remember to highlight inserts somehow! */
93
+ ins {
94
+ text-decoration: none;
95
+ }
96
+ del {
97
+ text-decoration: line-through;
98
+ }
@@ -0,0 +1,63 @@
1
+ body {
2
+ /* IE5.5 */
3
+ _text-align: center;
4
+ }
5
+
6
+ .main {
7
+ display: table-cell;
8
+ *display: block;
9
+ width: auto;
10
+ }
11
+
12
+ .body,
13
+ .main {
14
+ *zoom: 1;
15
+ }
16
+
17
+ .body:after,
18
+ .main:after {
19
+ clear: both;
20
+ display: block;
21
+ visibility: hidden;
22
+ overflow: hidden;
23
+ height: 0 !important;
24
+ line-height: 0;
25
+ font-size: xx-large;
26
+ content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ";
27
+ }
28
+
29
+ /* wraps other template elems to set width */
30
+ .page {
31
+ margin: 0 auto;
32
+ width: 950px;
33
+
34
+ /* text-align IE5.5 */
35
+ _text-align: left;
36
+ }
37
+
38
+ /* "old school" and "liquid" extend page to allow for different page widths */
39
+ .oldSchool {
40
+ width: 750px;
41
+ }
42
+
43
+ .gs960 {
44
+ width: 960px;
45
+ }
46
+
47
+ .liquid {
48
+ width: auto;
49
+ margin: 0;
50
+ }
51
+
52
+ /* ====== Columns ====== */
53
+ .leftCol {
54
+ float: left;
55
+ width: 250px;
56
+ _margin-right: -3px;
57
+ }
58
+
59
+ .rightCol {
60
+ float: right;
61
+ width: 300px;
62
+ _margin-left: -3px;
63
+ }
@@ -0,0 +1,12 @@
1
+ require 'faker'
2
+
3
+ Factory.define :user do |f|
4
+ f.email "someone@myemail.com"
5
+ f.password "test"
6
+
7
+ f.confirmed_at Date.parse("2010-08-01")
8
+ end
9
+
10
+ Factory.define :user_sample, :parent => :user do |f|
11
+ f.email {Faker::Internet.email}
12
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.color_enabled = true
3
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include Devise::TestHelpers, :type => :controller
3
+ end
@@ -0,0 +1,6 @@
1
+ RSpec.configure do |config|
2
+ # Configure RSpec to run focused specs, and also respect the alias 'fit' for focused specs
3
+ config.filter_run :focused => true
4
+ config.alias_example_to :fit, :focused => true
5
+ config.run_all_when_everything_filtered = true
6
+ end
@@ -0,0 +1,5 @@
1
+ # require 'paperclip/matchers'
2
+
3
+ # RSpec.configure do |config|
4
+ # config.include Paperclip::Shoulda::Matchers
5
+ # end
@@ -0,0 +1,5 @@
1
+ RSpec.configure do |config|
2
+ # Configure RSpec to respect the alias 'pit' for pending specs
3
+ config.filter_run :pending => true
4
+ config.alias_example_to :pit, :pending => true
5
+ end
@@ -0,0 +1,309 @@
1
+ require File.expand_path(File.join(__FILE__, "..", "..", "lib", "apple_cart", "helpers"))
2
+
3
+ @source_root = File.dirname(__FILE__)
4
+ @source_paths << @source_root
5
+
6
+ @app_class = app_name.camelize
7
+ @app_domain = app_name.gsub!(/_/, '')
8
+
9
+ def configure_session_storage
10
+ ar_session_store = yes? " Would you like to use ActiveRecord sessions for this project?"
11
+
12
+ if ar_session_store
13
+ comment_lines "config/initializers/session_store.rb", "cookie_store"
14
+ uncomment_lines "config/initializers/session_store.rb", "active_record_store"
15
+ end
16
+ end
17
+
18
+ def git_commit(message)
19
+ git :add => "."
20
+ git :commit => "\-a \-q \-m '#{message}'"
21
+ end
22
+
23
+ PREFERRED_GENERATORS = <<-GENERATORS
24
+ config.generators do |generator|
25
+ generator.orm :active_record
26
+ generator.test_framework :rspec,
27
+ :fixture => false
28
+ end
29
+
30
+ GENERATORS
31
+
32
+ JAVASCRIPT_EXPANSIONS = <<-EXPANSIONS
33
+ config.action_view.javascript_expansions[:defaults] = %w{head jquery rails}
34
+ config.action_view.javascript_expansions[:ui] = %w{jquery-ui}
35
+ EXPANSIONS
36
+
37
+ STYLESHEET_EXPANSIONS = <<-EXPANSIONS
38
+
39
+ # Stylesheet files you want as :defaults.
40
+ config.action_view.stylesheet_expansions[:defaults] = %w(reset fonts base)
41
+ EXPANSIONS
42
+
43
+
44
+ talk "Git Configuration"
45
+
46
+ say "Initializing Git repository..."
47
+ git :init
48
+ git_commit "Initial Commit"
49
+
50
+ say "Fixing .gitignore to include the proper files..."
51
+ copy_source_file ".gitignore"
52
+
53
+ say "Making sure these empty directories are added to the repo..."
54
+ empty_directory_with_gitkeep "app/models"
55
+ empty_directory_with_gitkeep "app/views/pages"
56
+ empty_directory_with_gitkeep "db/migrate"
57
+ empty_directory_with_gitkeep "log"
58
+
59
+ git_commit "Configure Git"
60
+
61
+
62
+ talk "We certainly don't need any of this..."
63
+
64
+ remove_file "public/favicon.ico"
65
+ remove_file "public/index.html"
66
+ remove_file "public/images/rails.png"
67
+ remove_file "public/stylesheets/application.css"
68
+ remove_file "public/javascripts/application.js"
69
+ remove_file "db/seeds.rb"
70
+
71
+ git_commit "Remove unneeded files"
72
+
73
+
74
+ talk "Create standard images structure..."
75
+
76
+ empty_directory_with_gitkeep "public/images/backgrounds"
77
+ empty_directory_with_gitkeep "public/images/buttons"
78
+ empty_directory_with_gitkeep "public/images/buttons/image"
79
+ empty_directory_with_gitkeep "public/images/buttons/text"
80
+ empty_directory_with_gitkeep "public/images/decorations"
81
+ empty_directory_with_gitkeep "public/images/icons"
82
+ empty_directory_with_gitkeep "public/images/logos"
83
+
84
+ git_commit "Create standard images structure"
85
+
86
+
87
+ talk "Create humans.txt file..."
88
+
89
+ copy_source_file "public/humans.txt"
90
+
91
+ git_commit "Create humans.txt file"
92
+
93
+
94
+ talk "Add Base Stylesheets"
95
+
96
+ empty_directory "public/stylesheets/sass"
97
+ copy_source_file "public/stylesheets/sass/reset.scss"
98
+ copy_source_file "public/stylesheets/sass/fonts.scss"
99
+ copy_source_file "public/stylesheets/sass/grids.scss"
100
+ copy_source_file "public/stylesheets/sass/template.scss"
101
+
102
+ git_commit "Add Base Stylesheets"
103
+
104
+
105
+ talk "Update Javascript Customizations"
106
+
107
+ say "Enable Rails To Use jQuery"
108
+ get "https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js", "public/javascripts/jquery.js"
109
+ get "https://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.js", "public/javascripts/jquery-ui.js"
110
+ get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
111
+
112
+ get "https://github.com/headjs/headjs/raw/master/dist/head.js", "public/javascripts/head.js"
113
+
114
+ git_commit "Update Javascript Customizations"
115
+
116
+
117
+ talk "Configure Ruby Version Manager"
118
+
119
+ template ".rvmrc.erb", ".rvmrc"
120
+
121
+ git_commit "Configure Ruby Version Manager"
122
+
123
+
124
+ talk "Configure application.rb"
125
+
126
+ say "Setting up preferred Rails generators..."
127
+ inject_into_class "config/application.rb", "Application", PREFERRED_GENERATORS
128
+ empty_directory_with_gitkeep "spec/factories"
129
+
130
+ say "Autoloading /lib files on startup..."
131
+ gsub_file "config/application.rb", /#\s*config\.autoload.*$/, 'config.autoload_paths += %W(#{config.root}/lib)'
132
+
133
+ say "Setting up the default time zone..."
134
+ gsub_file "config/application.rb", /#\s*config\.time_zone.*$/, 'config.time_zone = "Central Time (US & Canada)"'
135
+
136
+ say "Creating default javascript expansions..."
137
+ gsub_file "config/application.rb", /^\s*config\.action_view\.javascript_expansions.*$/, JAVASCRIPT_EXPANSIONS
138
+
139
+ say "Creating default stylesheet expansions..."
140
+ gsub_file "config/application.rb", STYLESHEET_EXPANSIONS, :after => "= %w{jquery-ui}\n"
141
+
142
+ git_commit "Configuration"
143
+
144
+
145
+ talk "Configure Initializers"
146
+
147
+ say "Setting up application constants..."
148
+ empty_directory_with_gitkeep "app/constants"
149
+ copy_source_file "config/initializers/constants.rb"
150
+
151
+ say "Configuring ActionMailer hosts..."
152
+ template "config/initializers/actionmailer.rb.erb", "config/initializers/actionmailer.rb"
153
+
154
+ say "Setting up core extensions..."
155
+ empty_directory_with_gitkeep "lib/core_ext"
156
+ copy_source_file "config/initializers/core_ext.rb"
157
+
158
+ say "Configuring Session storage method..."
159
+ configure_session_storage
160
+
161
+ say "Formatting Dates and Times..."
162
+ copy_source_file "config/initializers/date_and_time_formats.rb"
163
+
164
+ git_commit "Configure Initializers"
165
+
166
+
167
+ talk "Configure Routes"
168
+
169
+ say "Removing route comments..."
170
+ gsub_file "config/routes.rb", /\s+#.*/, ""
171
+ gsub_file "config/routes.rb", /\n\n/, "\n"
172
+
173
+ say "Configuring default route..."
174
+ route "root :to => 'devise/sessions#new'"
175
+
176
+ git_commit "Configure Routes"
177
+
178
+
179
+ talk "Setup Database"
180
+
181
+ remove_file "config/database.yml"
182
+ copy_source_file "config/database.yml.example"
183
+ link_file "config/database.yml.example", "config/database.yml"
184
+
185
+ rake "db:create"
186
+
187
+ git_commit "Setup Database"
188
+
189
+
190
+ talk "Setup Database Seeding"
191
+
192
+ copy_source_file "db/seed.rb"
193
+ copy_source_file "db/samplize.rb"
194
+
195
+ git_commit "Setup Database Seeding"
196
+
197
+
198
+ talk "Configure Staging Environment"
199
+
200
+ copy_file File.expand_path("config/environments/production.rb"), "config/environments/staging.rb"
201
+
202
+ git_commit "Configure For Staging"
203
+
204
+
205
+ talk "Bundler FTW!"
206
+
207
+ copy_file "Gemfile.temp", "Gemfile"
208
+
209
+ say "Preparing RVM environment..."
210
+ say "If Ruby 1.9.2-HEAD was not previously installed, you may want to grab some popcorn..."
211
+ run "rvm use ruby-1.9.2-head@#{app_name}"
212
+
213
+ say "Installing your requested gems..."
214
+ run "bundle install"
215
+
216
+ git_commit "Bundler FTW!"
217
+
218
+
219
+ talk "Set Up Gems"
220
+
221
+ say "Installing RSpec..."
222
+ generate "rspec:install"
223
+ copy_source_file ".rspec", :force => true
224
+ directory "spec/support"
225
+
226
+ say "Installing Cucumber..."
227
+ generate "cucumber:install", "--rspec --capybara"
228
+ copy_source_file "config/cucumber.yml", :force => true
229
+ directory "features/support"
230
+ directory "features/step_definitions"
231
+
232
+ say "Installing SimpleForm..."
233
+ generate "simple_form:install"
234
+
235
+ say "Installing Devise..."
236
+ generate "devise:install"
237
+
238
+ say "Creating Devise views..."
239
+ generate "devise:views"
240
+
241
+ say "Creating Devise User..."
242
+ generate "devise User"
243
+
244
+ say "Installing simple factory for User..."
245
+ copy_source_file "spec/factories/users.rb"
246
+
247
+ git_commit "Set Up Gems"
248
+
249
+
250
+ talk "Install Common Rake Tasks"
251
+
252
+ directory "lib/tasks"
253
+
254
+ git_commit "Install Common Rake Tasks"
255
+
256
+
257
+ talk "Miscellaneous"
258
+
259
+ say "Installing formats file..."
260
+ copy_source_file "lib/formats.rb"
261
+
262
+ git_commit "Install formats file"
263
+
264
+
265
+ talk "Configure Autotest"
266
+
267
+ say "Creating Autotest Directives..."
268
+ directory "autotest"
269
+
270
+ say "Creating Autotest default configuration..."
271
+ copy_source_file ".autotest"
272
+
273
+ git_commit "Configure Autotest"
274
+
275
+
276
+ talk "Configure Capistrano"
277
+
278
+ say "Installing common deploy file..."
279
+ template "config/deploy.rb.erb", "config/deploy.rb"
280
+
281
+ say "Creating recipes directory with default recipes..."
282
+ directory "lib/recipes"
283
+
284
+ say "Capifying project..."
285
+ copy_source_file "Capfile"
286
+
287
+ git_commit "Configure Capistrano"
288
+
289
+
290
+ talk "Install View Files"
291
+
292
+ say "Installing view helpers..."
293
+ directory "app/views/shared"
294
+ copy_source_file "app/helpers/body_class_helper.rb"
295
+
296
+ say "Replacing application.html.erb with our custom version..."
297
+ template "app/views/layouts/application.html.erb.erb", "app/views/layouts/application.html.erb", :force => true
298
+
299
+ say "Creating a temporary maintenance page..."
300
+ template "app/views/pages/maintenance.html.erb.erb", "app/views/pages/maintenance.html.erb"
301
+
302
+ git_commit "Install View Files"
303
+
304
+
305
+
306
+ puts
307
+ talk "Congratulations"
308
+ say "You just upset the apple cart! Enjoy those apples!"
309
+ say "Remember to run 'rails generate hoptoad' with your API key."