bently 1.0.0 → 1.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 (71) hide show
  1. data/README.md +7 -4
  2. data/lib/bently/core_ext/method.rb +95 -0
  3. data/lib/bently/recipe/action-mailer.rb +4 -42
  4. data/lib/bently/recipe/active_admin.rb +15 -0
  5. data/lib/bently/recipe/acts-as-taggable-on.rb +18 -0
  6. data/lib/bently/recipe/better-errors.rb +16 -0
  7. data/lib/bently/recipe/cancan.rb +21 -0
  8. data/lib/bently/recipe/carrierwave.rb +34 -0
  9. data/lib/bently/recipe/cucumber-rails.rb +1 -1
  10. data/lib/bently/recipe/delayed-job-active-record.rb +18 -0
  11. data/lib/bently/recipe/delayed-job-mongoid.rb +16 -0
  12. data/lib/bently/recipe/devise.rb +1 -1
  13. data/lib/bently/recipe/factory-girl-rails.rb +2 -22
  14. data/lib/bently/recipe/foreman-thin.rb +1 -1
  15. data/lib/bently/recipe/foreman.rb +1 -1
  16. data/lib/bently/recipe/formtastic.rb +16 -0
  17. data/lib/bently/recipe/gitignore-emacs.rb +1 -18
  18. data/lib/bently/recipe/gitignore-linux.rb +1 -9
  19. data/lib/bently/recipe/gitignore-osx.rb +1 -18
  20. data/lib/bently/recipe/gitignore-rails.rb +1 -24
  21. data/lib/bently/recipe/gitignore-ruby.rb +1 -24
  22. data/lib/bently/recipe/gitignore-rubymine.rb +1 -7
  23. data/lib/bently/recipe/gitignore-sass.rb +1 -9
  24. data/lib/bently/recipe/gitignore-sublime-text.rb +1 -8
  25. data/lib/bently/recipe/gitignore-textmate.rb +1 -9
  26. data/lib/bently/recipe/gitignore-vim.rb +1 -11
  27. data/lib/bently/recipe/gitignore-windows.rb +1 -15
  28. data/lib/bently/recipe/guard-coffeescript.rb +18 -0
  29. data/lib/bently/recipe/guard-cucumber.rb +18 -0
  30. data/lib/bently/recipe/guard-minitest.rb +18 -0
  31. data/lib/bently/recipe/guard-rails.rb +18 -0
  32. data/lib/bently/recipe/guard-rspec.rb +18 -0
  33. data/lib/bently/recipe/guard-spork.rb +18 -0
  34. data/lib/bently/recipe/haml-rails.rb +1 -1
  35. data/lib/bently/recipe/heroku-sendgrid.rb +1 -17
  36. data/lib/bently/recipe/jasmine-rails.rb +20 -0
  37. data/lib/bently/recipe/kaminari.rb +21 -0
  38. data/lib/bently/recipe/minitest-rails.rb +16 -0
  39. data/lib/bently/recipe/omniauth-facebook.rb +1 -2
  40. data/lib/bently/recipe/omniauth.rb +2 -28
  41. data/lib/bently/recipe/paperclip.rb +39 -0
  42. data/lib/bently/recipe/rspec-rails.rb +1 -1
  43. data/lib/bently/recipe/simple_form.rb +21 -0
  44. data/lib/bently/recipe/twitter-bootstrap-rails.rb +1 -1
  45. data/lib/bently/recipe/twitter.rb +21 -0
  46. data/lib/bently/recipe.rb +15 -1
  47. data/lib/bently/recipe_class/rails.rb +5 -1
  48. data/lib/bently/template/action-mailer/welcome_email.html.erb +18 -0
  49. data/lib/bently/template/action-mailer/welcome_email.text.erb +10 -0
  50. data/lib/bently/template/acts-as-taggable-on/usage.rb +18 -0
  51. data/lib/bently/template/factory-girl-rails/factories.rb +15 -0
  52. data/lib/bently/template/gitignore-emacs/.gitignore +12 -0
  53. data/lib/bently/template/gitignore-linux/.gitignore +3 -0
  54. data/lib/bently/template/gitignore-osx/.gitignore +12 -0
  55. data/lib/bently/template/gitignore-rails/.gitignore +18 -0
  56. data/lib/bently/template/gitignore-ruby/.gitignore +18 -0
  57. data/lib/bently/template/gitignore-rubymine/.gitignore +1 -0
  58. data/lib/bently/template/gitignore-sass/.gitignore +2 -0
  59. data/lib/bently/template/gitignore-sublime-text/.gitignore +2 -0
  60. data/lib/bently/template/gitignore-textmate/.gitignore +3 -0
  61. data/lib/bently/template/gitignore-vim/.gitignore +5 -0
  62. data/lib/bently/template/gitignore-windows/.gitignore +9 -0
  63. data/lib/bently/template/heroku-sendgrid/mail.rb +9 -0
  64. data/lib/bently/template/jasmine-rails/jasmine.yml +17 -0
  65. data/lib/bently/template/omniauth/omniauth.rb +5 -0
  66. data/lib/bently/template/omniauth/sessions_controller.rb +13 -0
  67. data/lib/bently/version.rb +1 -1
  68. data/lib/bently.rb +1 -0
  69. data/spec/bently/base_spec.rb +55 -0
  70. metadata +42 -3
  71. data/Gemfile.lock +0 -28
@@ -5,21 +5,7 @@ module Bently
5
5
  homepage 'https://github.com/github/gitignore/blob/master/Global/Windows.gitignore'
6
6
 
7
7
  def initialize
8
- append '.gitignore', gitignore
9
- end
10
-
11
- protected
12
-
13
- def gitignore
14
- %{# Windows image file caches
15
- Thumbs.db
16
- ehthumbs.db
17
-
18
- # Folder config file
19
- Desktop.ini
20
-
21
- # Recycle Bin used on file shares
22
- $RECYCLE.BIN/}
8
+ append '.gitignore', template('.gitignore')
23
9
  end
24
10
 
25
11
  end
@@ -0,0 +1,18 @@
1
+ module Bently
2
+
3
+ class GuardCoffeescript < RailsRecipe
4
+
5
+ title 'guard-coffeescript'
6
+ homepage 'https://github.com/guard/guard-coffeescript/blob/master/README.md'
7
+
8
+ def initialize
9
+ gem_group :development do
10
+ gem 'guard-coffeescript'
11
+ end
12
+ bundle
13
+ run 'guard init coffeescript'
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ module Bently
2
+
3
+ class GuardCucumber < RailsRecipe
4
+
5
+ title 'guard-cucumber'
6
+ homepage 'https://github.com/guard/guard-cucumber/blob/master/README.md'
7
+
8
+ def initialize
9
+ gem_group :development do
10
+ gem 'guard-cucumber'
11
+ end
12
+ bundle
13
+ run 'guard init cucumber'
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ module Bently
2
+
3
+ class GuardMinitest < RailsRecipe
4
+
5
+ title 'guard-minitest'
6
+ homepage 'https://github.com/guard/guard-minitest/blob/master/README.md'
7
+
8
+ def initialize
9
+ gem_group :development do
10
+ gem 'guard-minitest'
11
+ end
12
+ bundle
13
+ run 'guard init minitest'
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ module Bently
2
+
3
+ class GuardRails < RailsRecipe
4
+
5
+ title 'guard-rails'
6
+ homepage 'https://github.com/guard/guard-rails/blob/master/README.md'
7
+
8
+ def initialize
9
+ gem_group :development do
10
+ gem 'guard-rails'
11
+ end
12
+ bundle
13
+ run 'guard init rails'
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ module Bently
2
+
3
+ class GuardRspec < RailsRecipe
4
+
5
+ title 'guard-rspec'
6
+ homepage 'https://github.com/guard/guard-rspec/blob/master/README.md'
7
+
8
+ def initialize
9
+ gem_group :development do
10
+ gem 'guard-rspec'
11
+ end
12
+ bundle
13
+ run 'guard init rspec'
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ module Bently
2
+
3
+ class GuardSpork < RailsRecipe
4
+
5
+ title 'guard-spork'
6
+ homepage 'https://github.com/guard/guard-spork/blob/master/README.md'
7
+
8
+ def initialize
9
+ gem_group :development do
10
+ gem 'guard-spork'
11
+ end
12
+ bundle
13
+ run 'guard init spork'
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -1,7 +1,7 @@
1
1
  module Bently
2
2
  class HamlRails < RailsRecipe
3
3
 
4
- name 'haml-rails'
4
+ title 'haml-rails'
5
5
  category 'gem'
6
6
  description 'downloads and installs haml Ruby gem with haml-rails Ruby gem'
7
7
  homepage 'https://github.com/haml/haml/blob/master/README.md'
@@ -7,23 +7,7 @@ module Bently
7
7
  def initialize
8
8
  warn 'heroku commands may incur charges to your account'.upcase
9
9
  run 'heroku addons:add sendgrid:starter'
10
- create './config/initializers/mail.rb', mail_initializer
11
- end
12
-
13
- protected
14
-
15
- def mail_initializer
16
- %{
17
- ActionMailer::Base.smtp_settings = {
18
- :address => 'smtp.sendgrid.net',
19
- :port => '587',
20
- :authentication => :plain,
21
- :user_name => ENV['SENDGRID_USERNAME'],
22
- :password => ENV['SENDGRID_PASSWORD'],
23
- :domain => 'heroku.com'
24
- }
25
- ActionMailer::Base.delivery_method = :smtp
26
- }
10
+ create './config/initializers/mail.rb', template('mail.rb')
27
11
  end
28
12
 
29
13
  end
@@ -0,0 +1,20 @@
1
+ module Bently
2
+ class JasmineRails < RailsRecipe
3
+
4
+ title 'jasmine-rails'
5
+ category 'gem'
6
+ description 'downloads and installs jasmine-rails gem'
7
+ homepage 'https://github.com/searls/jasmine-rails/blob/master/README.md'
8
+
9
+ def initialize
10
+ requirement '`brew install qt` for the headless webkit widget'
11
+ gem_group :test, :development do
12
+ gem 'jasmine-rails'
13
+ end
14
+ bundle
15
+ create 'spec/javascripts/support/jasmine.yml', template('jasmine.yml')
16
+ todo 'Modify spec/javascripts/support/jasmine.yml as necessary.'
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ module Bently
2
+ class Kaminari < RailsRecipe
3
+
4
+ title 'kaminari'
5
+ homepage 'https://github.com/amatsuda/kaminari/blob/master/README.rdoc'
6
+
7
+ def initialize
8
+ gem 'kaminari'
9
+ bundle
10
+ generate 'active_admin:install'
11
+ migrate
12
+ usage 'The page scope. To fetch the 7th page of users (default per_page is 25):'
13
+ say ' User.page(7)', '1', :magenta
14
+ usage 'To show a lot more users per each page (change the per_page value)'
15
+ say ' User.page(7).per(50)', '1', :magenta
16
+ usage 'Occasionally you need to pad a number of records that is not a multiple of the page size.'
17
+ say ' User.page(7).per(50).padding(3)', '1', :magenta
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ module Bently
2
+
3
+ class MinitestRails < RailsRecipe
4
+
5
+ title 'minitest-rails'
6
+ homepage 'https://github.com/blowmage/minitest-rails/blob/master/README.rdoc'
7
+
8
+ def initialize
9
+ requirement 'Create a new rails app without Test::Unit: `rails new MyApp --skip-test-unit`'
10
+ gem 'minitest-rails'
11
+ bundle
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -14,8 +14,7 @@ module Bently
14
14
  protected
15
15
 
16
16
  def omniauth_initializer
17
- %{provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']
18
- }
17
+ "provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']"
19
18
  end
20
19
 
21
20
  end
@@ -7,38 +7,12 @@ module Bently
7
7
  def initialize
8
8
  gem 'omniauth'
9
9
  bundle
10
- create './config/initializers/omniauth.rb', omniauth_initializer
10
+ create './config/initializers/omniauth.rb', template('omniauth.rb')
11
11
  insert 'config/routes.rb', " match '/auth/:provider/callback', to: 'sessions#create'\n", :after => "Application.routes.draw do\n"
12
- create './app/controllers/sessions_controller.rb', sessions_controller
12
+ create './app/controllers/sessions_controller.rb', template('sessions_controller.rb')
13
13
  todo 'implement User#find_or_create_from_auth_hash'
14
14
  end
15
15
 
16
- protected
17
-
18
- def omniauth_initializer
19
- %{Rails.application.config.middleware.use OmniAuth::Builder do
20
- provider :developer unless Rails.env.production?
21
- #provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']
22
- #provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
23
- end}
24
- end
25
-
26
- def sessions_controller
27
- %{class SessionsController < ApplicationController
28
- def create
29
- @user = User.find_or_create_from_auth_hash(auth_hash)
30
- self.current_user = @user
31
- redirect_to '/'
32
- end
33
-
34
- protected
35
-
36
- def auth_hash
37
- request.env['omniauth.auth']
38
- end
39
- end}
40
- end
41
-
42
16
  end
43
17
 
44
18
  end
@@ -0,0 +1,39 @@
1
+ module Bently
2
+
3
+ class Paperclip < RailsRecipe
4
+
5
+ title 'paperclip'
6
+ homepage 'https://github.com/thoughtbot/paperclip/blob/master/README.md'
7
+
8
+ def initialize
9
+ requirement 'Install ImageMagick. For Mac OS X use Homebrew: `brew install imagemagick`'
10
+ requirement 'Source ImageMagick path (`which convert`) in development environment file. For example:'
11
+
12
+ say ' Paperclip.options[:command_path] = "/usr/local/bin/"', ''
13
+ gem 'paperclip', "~> 3.0"
14
+ bundle
15
+
16
+ todo 'Sample model:'
17
+ say ' class User < ActiveRecord::Base', ''
18
+ say ' attr_accessible :avatar', ''
19
+ say ' has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"', ''
20
+ say ' end', ''
21
+ todo 'Sample migration generator:'
22
+ say ' rails generate paperclip user avatar', ''
23
+ todo 'Sample edit/new views:'
24
+ say ' <%= form_for @user, :url => users_path, :html => { :multipart => true } do |form| %>',''
25
+ say ' <%= form.file_field :avatar %>',''
26
+ say ' <% end %>',''
27
+ todo 'Sample controller:'
28
+ say ' def create',''
29
+ say ' @user = User.create( params[:user] )',''
30
+ say ' end',''
31
+ todo 'Sample show view:'
32
+ say ' <%= image_tag @user.avatar.url %>', ''
33
+ say ' <%= image_tag @user.avatar.url(:medium) %>', ''
34
+ say ' <%= image_tag @user.avatar.url(:thumb) %>', ''
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -1,7 +1,7 @@
1
1
  module Bently
2
2
  class RspecRails < RailsRecipe
3
3
 
4
- name 'rspec-rails'
4
+ title 'rspec-rails'
5
5
  category 'gem'
6
6
  description 'downloads and installs rspec-rails gem'
7
7
  homepage 'https://github.com/rspec/rspec-rails/blob/master/README.md'
@@ -0,0 +1,21 @@
1
+ module Bently
2
+ class SimpleForm < RailsRecipe
3
+
4
+ title 'simple_form'
5
+ category 'gem'
6
+ description 'downloads and installs simple_form gem'
7
+ homepage 'https://github.com/plataformatec/simple_form/blob/master/README.md'
8
+
9
+ def initialize
10
+ gem 'simple_form'
11
+ bundle
12
+ generate 'simple_form:install'
13
+ todo 'If you want to use the country select, you will need the country_select gem:'
14
+ say 'gem \'country_select\'', ''
15
+ todo 'SimpleForm can be easily integrated to the Twitter Bootstrap. To do that you have to use the bootstrap option in the install generator, like this:'
16
+ say 'rails generate simple_form:install --bootstrap', ''
17
+ say 'You have to be sure that you added a copy of the Twitter Bootstrap assets on your application.', ''
18
+ end
19
+
20
+ end
21
+ end
@@ -1,7 +1,7 @@
1
1
  module Bently
2
2
  class TwitterBootstrapRails < RailsRecipe
3
3
 
4
- name 'twitter-bootstrap-rails'
4
+ title 'twitter-bootstrap-rails'
5
5
  category 'gem'
6
6
  description 'downloads and installs twitter-bootstrap-rails gem'
7
7
  homepage 'https://github.com/seyhunak/twitter-bootstrap-rails/blob/master/README.md'
@@ -0,0 +1,21 @@
1
+ module Bently
2
+ class Twitter < RailsRecipe
3
+
4
+ title 'twitter'
5
+ homepage 'https://github.com/sferik/twitter/blob/master/README.md'
6
+
7
+ def initialize
8
+ gem 'twitter'
9
+ bundle
10
+ todo 'Register your application with Twitter: https://dev.twitter.com/apps/new'
11
+ todo 'Copy and paste in your OAuth data:'
12
+ code %{Twitter.configure do |config|
13
+ config.consumer_key = YOUR_CONSUMER_KEY
14
+ config.consumer_secret = YOUR_CONSUMER_SECRET
15
+ config.oauth_token = YOUR_OAUTH_TOKEN
16
+ config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
17
+ end}
18
+ end
19
+
20
+ end
21
+ end
data/lib/bently/recipe.rb CHANGED
@@ -86,7 +86,7 @@ module Bently
86
86
  new.operations
87
87
  end
88
88
 
89
- def self.name(name) @name ||= name; end
89
+ def self.title(n) @title ||= n; end
90
90
  def self.category(category) @category ||= category; end
91
91
  def self.description(description) @description ||= description; end
92
92
  def self.homepage(homepage=nil) @homepage ||= homepage; end
@@ -106,5 +106,19 @@ module Bently
106
106
  def todo(name) ; say(name, 'TODO', :red) end
107
107
  def warn(text) ; say(text, 'WARNING', :red) end
108
108
  def requirement(text) ; say(text, 'REQUIRED', :red) end
109
+ def usage(text) ; say(text, 'USAGE', :red) end
110
+ def code(text) ; text.each_line.each_with_index{|l,i| say(l, i+1, :magenta) } end
111
+
112
+ protected
113
+
114
+ def template name
115
+ f = "#{BENTLY_REPOSITORY}/lib/bently/template/#{file_name}/#{name}"
116
+ File.read(f)
117
+ end
118
+
119
+ def file_name
120
+ string = self.class.instance_method(:initialize).source_location[0]
121
+ string = string.split('/').last.split('.').first
122
+ end
109
123
  end
110
124
  end
@@ -3,7 +3,11 @@ module Bently
3
3
  class RailsRecipe < RubyRecipe
4
4
 
5
5
  def generate command
6
- run "rails generate #{command}"
6
+ run "bundle exec rails generate #{command}"
7
+ end
8
+
9
+ def migrate
10
+ run 'bundle exec rake db:migrate'
7
11
  end
8
12
 
9
13
  end
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
5
+ </head>
6
+ <body>
7
+ <h1>Welcome to example.com, <%= @user.name %></h1>
8
+ <p>
9
+ You have successfully signed up to example.com,
10
+ your username is: <%= @user.login %>.<br/>
11
+ </p>
12
+ <p>
13
+ To login to the site, just follow this link: <%= @url %>.
14
+ </p>
15
+ <p>Thanks for joining and have a great day!</p>
16
+ </body>
17
+ </html>
18
+
@@ -0,0 +1,10 @@
1
+ Welcome to example.com, <%= @user.name %>
2
+ ===============================================
3
+
4
+ You have successfully signed up to example.com,
5
+ your username is: <%= @user.login %>.
6
+
7
+ To login to the site, just follow this link: <%= @url %>.
8
+
9
+ Thanks for joining and have a great day!
10
+
@@ -0,0 +1,18 @@
1
+ class User < ActiveRecord::Base
2
+ # Alias for acts_as_taggable_on :tags
3
+ acts_as_taggable
4
+ acts_as_taggable_on :skills, :interests
5
+ end
6
+
7
+ @user = User.new(:name => "Bobby")
8
+ @user.tag_list = "awesome, slick, hefty" # this should be familiar
9
+ @user.skill_list = "joking, clowning, boxing" # but you can do it for any context!
10
+ @user.skill_list # => ["joking","clowning","boxing"] as TagList
11
+ @user.save
12
+
13
+ @user.tags # => [<Tag name:"awesome">,<Tag name:"slick">,<Tag name:"hefty">]
14
+ @user.skills # => [<Tag name:"joking">,<Tag name:"clowning">,<Tag name:"boxing">]
15
+
16
+ @frankie = User.create(:name => "Frankie", :skill_list => "joking, flying, eating")
17
+ User.skill_counts # => [<Tag name="joking" count=2>,<Tag name="clowning" count=1>...]
18
+ @frankie.skill_counts
@@ -0,0 +1,15 @@
1
+ # # This will guess the User class
2
+ # FactoryGirl.define do
3
+ # factory :user do
4
+ # first_name "John"
5
+ # last_name "Doe"
6
+ # admin false
7
+ # end
8
+ #
9
+ # # This will use the User class (Admin would have been guessed)
10
+ # factory :admin, class: User do
11
+ # first_name "Admin"
12
+ # last_name "User"
13
+ # admin true
14
+ # end
15
+ # end
@@ -0,0 +1,12 @@
1
+ *~
2
+ \#*\#
3
+ /.emacs.desktop
4
+ /.emacs.desktop.lock
5
+ .elc
6
+ auto-save-list
7
+ tramp
8
+ .\#*
9
+
10
+ # Org-mode
11
+ .org-id-locations
12
+ *_archive
@@ -0,0 +1,3 @@
1
+ .*
2
+ !.gitignore
3
+ *~
@@ -0,0 +1,12 @@
1
+ .DS_Store
2
+ .AppleDouble
3
+ .LSOverride
4
+ Icon
5
+
6
+
7
+ # Thumbnails
8
+ ._*
9
+
10
+ # Files that might appear on external disk
11
+ .Spotlight-V100
12
+ .Trashes
@@ -0,0 +1,18 @@
1
+ *.rbc
2
+ *.sassc
3
+ .sass-cache
4
+ capybara-*.html
5
+ .rspec
6
+ .rvmrc
7
+ /.bundle
8
+ /vendor/bundle
9
+ /log/*
10
+ /tmp/*
11
+ /db/*.sqlite3
12
+ /public/system/*
13
+ /coverage/
14
+ /spec/tmp/*
15
+ **.orig
16
+ rerun.txt
17
+ pickle-email-*.html
18
+ .project
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ # .yardoc
17
+ # _yardoc
18
+ # doc/
@@ -0,0 +1 @@
1
+ .idea/workspace.xml
@@ -0,0 +1,2 @@
1
+ ### SASS Ignores - "Sassy CSS" http://sass-lang.com/
2
+ *.sass-cache
@@ -0,0 +1,2 @@
1
+ # SublimeText project files
2
+ *.sublime-workspace
@@ -0,0 +1,3 @@
1
+ *.tmproj
2
+ *.tmproject
3
+ tmtags
@@ -0,0 +1,5 @@
1
+ .*.s[a-w][a-z]
2
+ *.un~
3
+ Session.vim
4
+ .netrwhist
5
+ *~
@@ -0,0 +1,9 @@
1
+ # Windows image file caches
2
+ Thumbs.db
3
+ ehthumbs.db
4
+
5
+ # Folder config file
6
+ Desktop.ini
7
+
8
+ # Recycle Bin used on file shares
9
+ $RECYCLE.BIN/
@@ -0,0 +1,9 @@
1
+ ActionMailer::Base.smtp_settings = {
2
+ :address => 'smtp.sendgrid.net',
3
+ :port => '587',
4
+ :authentication => :plain,
5
+ :user_name => ENV['SENDGRID_USERNAME'],
6
+ :password => ENV['SENDGRID_PASSWORD'],
7
+ :domain => 'heroku.com'
8
+ }
9
+ ActionMailer::Base.delivery_method = :smtp
@@ -0,0 +1,17 @@
1
+ src_files:
2
+ - "application.{js,coffee}"
3
+
4
+ stylesheets:
5
+
6
+ helpers:
7
+ - "helpers/**/*.{js,coffee}"
8
+
9
+ spec_files:
10
+ - "**/*[Ss]pec.{js,coffee}"
11
+
12
+ src_dir: "app/assets/javascripts"
13
+
14
+ spec_dir: spec/javascripts
15
+
16
+ asset_paths:
17
+ - "vendor/assets/javascripts"
@@ -0,0 +1,5 @@
1
+ Rails.application.config.middleware.use OmniAuth::Builder do
2
+ provider :developer unless Rails.env.production?
3
+ #provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']
4
+ #provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
5
+ end
@@ -0,0 +1,13 @@
1
+ class SessionsController < ApplicationController
2
+ def create
3
+ @user = User.find_or_create_from_auth_hash(auth_hash)
4
+ self.current_user = @user
5
+ redirect_to '/'
6
+ end
7
+
8
+ protected
9
+
10
+ def auth_hash
11
+ request.env['omniauth.auth']
12
+ end
13
+ end