happy_seed 0.0.12 → 0.0.13
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.
- checksums.yaml +4 -4
- data/happy_seed.rb +15 -7
- data/lib/generators/happy_seed/.DS_Store +0 -0
- data/lib/generators/happy_seed/admin/templates/spec/controllers/admin/stats_controller_spec.rb +11 -11
- data/lib/generators/happy_seed/base/templates/app/views/setup/index.html.haml +1 -1
- data/lib/generators/happy_seed/base/templates/spec/controllers/application_controller_spec.rb +5 -0
- data/lib/generators/happy_seed/devise/templates/docs/README.03.devise.rdoc +0 -1
- data/lib/generators/happy_seed/devise_invitable/devise_invitable_generator.rb +47 -0
- data/lib/generators/happy_seed/devise_invitable/templates/app/views/devise/invitations/edit.html.haml +21 -0
- data/lib/generators/happy_seed/devise_invitable/templates/app/views/devise/invitations/new.html.haml +19 -0
- data/lib/generators/happy_seed/devise_invitable/templates/docs/README.03.devise_invitable.rdoc +23 -0
- data/lib/generators/happy_seed/googleoauth/.DS_Store +0 -0
- data/lib/generators/happy_seed/googleoauth/googleoauth_generator.rb +35 -0
- data/lib/generators/happy_seed/googleoauth/templates/.DS_Store +0 -0
- data/lib/generators/happy_seed/googleoauth/templates/add_refresh_token_to_identity.rb +5 -0
- data/lib/generators/happy_seed/googleoauth/templates/docs/README.06.googleoauth.rdoc +47 -0
- data/lib/generators/happy_seed/googleoauth/templates/lib/google_api_client.rb +7 -0
- data/lib/generators/happy_seed/happy_seed_generator.rb +4 -2
- data/lib/generators/happy_seed/instagram/templates/docs/README.05.instagram.rdoc +1 -2
- data/lib/generators/happy_seed/omniauth/.DS_Store +0 -0
- data/lib/generators/happy_seed/omniauth/templates/docs/README.04.omniauth.rdoc +9 -4
- data/lib/generators/happy_seed/splash/templates/spec/controllers/splash_controller_spec.rb +5 -0
- data/lib/generators/happy_seed/static_blog/templates/Gemfile.lock +6 -6
- data/lib/generators/happy_seed/twitter/templates/.DS_Store +0 -0
- data/lib/generators/happy_seed/twitter/templates/docs/README.05.twitter.rdoc +3 -1
- data/lib/happy_seed/version.rb +1 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +10 -0
- metadata +28 -12
- data/lib/generators/happy_seed/static/templates/Gemfile.lock +0 -162
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62ac3acdd4c2feedeb1700dc32d9e239ce9c6cd1
|
4
|
+
data.tar.gz: ab518316f93e508e78e82e5961d4e78b646cf89b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6db15c3d154c9aded6f3ecc8ce04ebfffab00db315fc5709df163af1c52c76f7612f3d90f9fe50419f05336fd91a33cfcb43abf905d8a869050e1f67f793fb3
|
7
|
+
data.tar.gz: 56396ab2d5bf48143e1beb7a8a9ad1073901f1d7b85177a835212bf6b6849373556c392e11389d3a5910b4a779a7b8602cd17a5b60e944ad4655bbe4f1af299f
|
data/happy_seed.rb
CHANGED
@@ -15,7 +15,9 @@ gem_group :development, :test do
|
|
15
15
|
gem "guard-rspec"
|
16
16
|
gem "guard-cucumber"
|
17
17
|
gem "database_cleaner"
|
18
|
-
gem
|
18
|
+
gem "spring-commands-rspec"
|
19
|
+
gem "quiet_assets"
|
20
|
+
gem "launchy"
|
19
21
|
end
|
20
22
|
|
21
23
|
gem_group :test do
|
@@ -35,11 +37,6 @@ end
|
|
35
37
|
Bundler.with_clean_env do
|
36
38
|
run "bundle install > /dev/null"
|
37
39
|
|
38
|
-
if !File.exists? "/Users/wschenk/src/happy_seed/ta/Gemfile.lock"
|
39
|
-
puts "Gemfile.lock should exist"
|
40
|
-
exit
|
41
|
-
end
|
42
|
-
|
43
40
|
gsub_file "app/assets/javascripts/application.js", /= require turbolinks/, "require turbolinks"
|
44
41
|
|
45
42
|
# Install rspec
|
@@ -50,12 +47,18 @@ Bundler.with_clean_env do
|
|
50
47
|
# Install cucumber
|
51
48
|
generate "cucumber:install"
|
52
49
|
|
50
|
+
append_to_file "features/support/env.rb", "
|
51
|
+
World(FactoryGirl::Syntax::Methods)
|
52
|
+
Warden.test_mode!
|
53
|
+
World(Warden::Test::Helpers)
|
54
|
+
After{ Warden.test_reset! }"
|
55
|
+
|
53
56
|
# Install Guard
|
54
57
|
run "guard init"
|
55
58
|
|
56
59
|
# Use the spring version and also run everything on startup
|
57
60
|
gsub_file "Guardfile", 'cmd: "bundle exec rspec"', 'cmd: "bin/rspec", all_on_start: true'
|
58
|
-
|
61
|
+
gsub_file "Guardfile", 'guard "cucumber"', 'guard "cucumber", cli: "--color --strict"'
|
59
62
|
|
60
63
|
# Run the base generator
|
61
64
|
generate "happy_seed:base"
|
@@ -84,6 +87,11 @@ Bundler.with_clean_env do
|
|
84
87
|
generate "happy_seed:devise"
|
85
88
|
packages << "devise"
|
86
89
|
|
90
|
+
if all_in || yes?( "Would you like to install devise_invitable?")
|
91
|
+
generate "happy_seed:devise_invitable"
|
92
|
+
packages << "devise_invitable"
|
93
|
+
end
|
94
|
+
|
87
95
|
if all_in || yes?( "Would you like to install twitter?" )
|
88
96
|
generate "happy_seed:twitter"
|
89
97
|
packages << "twitter"
|
Binary file
|
data/lib/generators/happy_seed/admin/templates/spec/controllers/admin/stats_controller_spec.rb
CHANGED
@@ -23,18 +23,18 @@ RSpec.describe Admin::StatsController, :type => :controller do
|
|
23
23
|
expect( response.content_type).to eq( "application/json" )
|
24
24
|
end
|
25
25
|
|
26
|
-
it "should return hourly data for user scope" do
|
27
|
-
|
26
|
+
# it "should return hourly data for user scope" do
|
27
|
+
# start_time = Time.parse "2014-07-19 15:26:48 -0400"
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
# 10.times do |t|
|
30
|
+
# create :user, created_at: start_time - (21.minutes * t)
|
31
|
+
# end
|
32
32
|
|
33
|
-
|
33
|
+
# sign_in :admin_user, create( :admin_user )
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
35
|
+
# get :stats, scope: 'user'
|
36
|
+
# expect( response.status ).to eq( 200 )
|
37
|
+
# expect( response.content_type).to eq( "application/json" )
|
38
|
+
# expect( response.body ).to eq("[[\"2014-07-19 16:00:00 UTC\",3],[\"2014-07-19 17:00:00 UTC\",2],[\"2014-07-19 18:00:00 UTC\",3],[\"2014-07-19 19:00:00 UTC\",2]]")
|
39
|
+
# end
|
40
40
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module HappySeed
|
2
|
+
module Generators
|
3
|
+
class DeviseInvitableGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
|
6
|
+
def install_device_invitable
|
7
|
+
unless gem_available?( "devise" )
|
8
|
+
puts "The omniauth generator requires devise"
|
9
|
+
|
10
|
+
if yes?( "Run happy_seed:devise now?" )
|
11
|
+
generate "happy_seed:devise"
|
12
|
+
else
|
13
|
+
exit
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
gem 'devise_invitable'
|
18
|
+
|
19
|
+
Bundler.with_clean_env do
|
20
|
+
run "bundle install > /dev/null"
|
21
|
+
run 'rake db:migrate'
|
22
|
+
end
|
23
|
+
|
24
|
+
run 'rails generate devise_invitable:install'
|
25
|
+
run 'rails generate devise_invitable User'
|
26
|
+
run 'rails generate devise_invitable:views'
|
27
|
+
|
28
|
+
directory '.'
|
29
|
+
|
30
|
+
if gem_available?( "haml-rails" )
|
31
|
+
remove_file 'app/views/devise/invitations/new.html.erb'
|
32
|
+
remove_file 'app/views/devise/invitations/edit.html.erb'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
def gem_available?(name)
|
38
|
+
Gem::Specification.find_by_name(name)
|
39
|
+
rescue Gem::LoadError
|
40
|
+
false
|
41
|
+
rescue
|
42
|
+
Gem.available?(name)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- @title = t 'devise.invitations.edit.header'
|
2
|
+
.container
|
3
|
+
.row
|
4
|
+
.center_panel
|
5
|
+
.panel.panel-default.only
|
6
|
+
|
7
|
+
.panel-heading
|
8
|
+
= @title
|
9
|
+
|
10
|
+
.panel-body
|
11
|
+
|
12
|
+
= form_for resource, as: resource_name, url: invitation_path(resource_name), layout: :horizontal, html: { method: :put } do |f|
|
13
|
+
|
14
|
+
= devise_error_messages!
|
15
|
+
|
16
|
+
= f.hidden_field :invitation_token
|
17
|
+
|
18
|
+
= f.password_field :password
|
19
|
+
= f.password_field :password_confirmation
|
20
|
+
|
21
|
+
= f.submit "Add password"
|
data/lib/generators/happy_seed/devise_invitable/templates/app/views/devise/invitations/new.html.haml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
- @title = t "devise.invitations.new.header"
|
2
|
+
.container
|
3
|
+
.row
|
4
|
+
.center_panel
|
5
|
+
.panel.panel-default.only
|
6
|
+
|
7
|
+
.panel-heading
|
8
|
+
= t "devise.invitations.new.header"
|
9
|
+
|
10
|
+
.panel-body
|
11
|
+
|
12
|
+
= form_for resource, as: resource_name, url: invitation_path(resource_name), layout: :horizontal, html: { method: :post } do |f|
|
13
|
+
|
14
|
+
/ = devise_error_messages!
|
15
|
+
|
16
|
+
- resource.class.invite_key_fields.each do |field|
|
17
|
+
= f.text_field field
|
18
|
+
|
19
|
+
= f.submit "Invite User"
|
data/lib/generators/happy_seed/devise_invitable/templates/docs/README.03.devise_invitable.rdoc
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
HappySeed Devise Invitable Install
|
2
|
+
===================
|
3
|
+
|
4
|
+
### What does this do?
|
5
|
+
|
6
|
+
The `happy_seed:devise_invitable` generator
|
7
|
+
|
8
|
+
* Installs devise_invitable
|
9
|
+
* _runs `rake db:migrate`_ because of the way the `devise_invitable` gem works
|
10
|
+
* Adds columns for invite
|
11
|
+
* Copies over devise views
|
12
|
+
* Gives them bootstrap views
|
13
|
+
|
14
|
+
### Why do you want this?
|
15
|
+
|
16
|
+
This allows you to invite users to the site and have them sign up through a link.
|
17
|
+
### Environment Variables
|
18
|
+
|
19
|
+
na
|
20
|
+
|
21
|
+
### What needs to be done?
|
22
|
+
|
23
|
+
na
|
Binary file
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'generators/happy_seed/happy_seed_generator'
|
2
|
+
|
3
|
+
module HappySeed
|
4
|
+
module Generators
|
5
|
+
class GoogleoauthGenerator < HappySeedGenerator
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
|
9
|
+
def install_facebook
|
10
|
+
require_omniauth
|
11
|
+
|
12
|
+
gem 'omniauth-google-oauth2'
|
13
|
+
gem 'google-api-client', require: "google/api_client"
|
14
|
+
|
15
|
+
Bundler.with_clean_env do
|
16
|
+
run "bundle install > /dev/null"
|
17
|
+
end
|
18
|
+
|
19
|
+
directory 'docs'
|
20
|
+
directory 'lib'
|
21
|
+
|
22
|
+
add_omniauth :google_oauth2, 'email,profile,offline", prompt: "consent', 'GoogleApiClient', "google_oauth2"
|
23
|
+
prepend_file "app/models/user.rb", "require 'google_api_client'\n"
|
24
|
+
insert_into_file "app/models/identity.rb", "\n identity.refreshtoken = auth.credentials.refresh_token", after: "identity.accesstoken = auth.credentials.token"
|
25
|
+
migration_template("add_refresh_token_to_identity.rb", "db/migrate/add_refresh_token_to_identity.rb" )
|
26
|
+
end
|
27
|
+
|
28
|
+
protected
|
29
|
+
def self.next_migration_number(dir)
|
30
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
Binary file
|
@@ -0,0 +1,47 @@
|
|
1
|
+
HappySeed Google Oauth Install
|
2
|
+
====================
|
3
|
+
|
4
|
+
### What does this do?
|
5
|
+
|
6
|
+
The `happy_seed:googleoauth` depends upon `happy_seed:omniauth` and
|
7
|
+
|
8
|
+
* Installs googleauth authentication
|
9
|
+
* Creates a sub client in lib/google_api_client that uses googles default stuff
|
10
|
+
|
11
|
+
### Why do you want this?
|
12
|
+
|
13
|
+
If you want to have the user connect via google, this is the one line command for it.
|
14
|
+
|
15
|
+
### Environment Variables
|
16
|
+
|
17
|
+
```
|
18
|
+
GOOGLE_OAUTH2_APP_ID=
|
19
|
+
GOOGLE_OAUTH2_APP_SECRET=
|
20
|
+
```
|
21
|
+
|
22
|
+
### What needs to be done?
|
23
|
+
|
24
|
+
In config/initializers/devise.rb make sure that the scope you are requesting is correct.
|
25
|
+
|
26
|
+
Since you need to set the callbacks as urls, you'll need to create one app for local development and another app for production. (Possibly one for staging as well.)
|
27
|
+
|
28
|
+
- Go to 'https://console.developers.google.com'
|
29
|
+
- Select your project.
|
30
|
+
- Click 'APIs & auth'
|
31
|
+
- Go to credentials
|
32
|
+
- Create new client ID
|
33
|
+
- Call back is http://localhost:3000/users/auth/google_oauth2/callback
|
34
|
+
- Make sure "Contacts API" and "Google+ API" are on.
|
35
|
+
- Go to Consent Screen, and provide an 'EMAIL ADDRESS' and a 'PRODUCT NAME'
|
36
|
+
- Wait 10 minutes for changes to take effect.
|
37
|
+
|
38
|
+
Once you have the client connected, then you need to discover the API.
|
39
|
+
|
40
|
+
```
|
41
|
+
client = user.google_oauth2_client
|
42
|
+
admin_api = client.discovered_api("admin", "directory_v1")
|
43
|
+
|
44
|
+
request = { api_method: admin_api.users.list }
|
45
|
+
request[:parameters] = { domain: "happyfuncorp.com" }
|
46
|
+
response = client.execute request
|
47
|
+
```
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class GoogleApiClient
|
2
|
+
def self.client( identity )
|
3
|
+
client = Google::APIClient.new(:application_name => 'HappySeed App', :application_version => "1.0.0" )
|
4
|
+
client.authorization.update_token!({:access_token => identity.accesstoken, :refresh_token => identity.refreshtoken})
|
5
|
+
client
|
6
|
+
end
|
7
|
+
end
|
@@ -18,7 +18,7 @@ module HappySeed
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
def add_omniauth( provider, scope = nil )
|
21
|
+
def add_omniauth( provider, scope = nil, client_api = nil, init = nil )
|
22
22
|
scopeline = nil
|
23
23
|
scopeline = ", scope: \"#{scope}\"" if scope
|
24
24
|
inject_into_file 'config/initializers/devise.rb', after: "==> OmniAuth\n" do <<-"RUBY"
|
@@ -32,6 +32,8 @@ module HappySeed
|
|
32
32
|
say_status :env, "Unable to add template variables to .env", :red
|
33
33
|
end
|
34
34
|
|
35
|
+
client_api ||= provider.to_s.humanize
|
36
|
+
init ||= "access_token: #{provider}.accesstoken"
|
35
37
|
inject_into_file 'app/controllers/omniauth_callbacks_controller.rb', "\n def #{provider}\n generic_callback( '#{provider}' )\n end\n", before: /\s*def generic_callback/
|
36
38
|
inject_into_file 'app/models/user.rb', :before => "\nend" do <<-"RUBY"
|
37
39
|
|
@@ -40,7 +42,7 @@ module HappySeed
|
|
40
42
|
end
|
41
43
|
|
42
44
|
def #{provider}_client
|
43
|
-
@#{provider}_client ||= #{
|
45
|
+
@#{provider}_client ||= #{client_api}.client( #{init} )
|
44
46
|
end
|
45
47
|
RUBY
|
46
48
|
end
|
@@ -7,7 +7,6 @@ The `happy_seed:instagram` depends upon `happy_seed:omniauth` and
|
|
7
7
|
|
8
8
|
* Installs instagram authentication
|
9
9
|
* Installs instagram gem
|
10
|
-
* Installs links in the nav bar and use signup/signin pages
|
11
10
|
|
12
11
|
### Why do you want this?
|
13
12
|
|
@@ -22,4 +21,4 @@ If you want to have the user connect via instagram, this is the one line command
|
|
22
21
|
|
23
22
|
### What needs to be done?
|
24
23
|
|
25
|
-
|
24
|
+
Get yourself an app at http://instagram.com/developer/clients/manage/
|
Binary file
|
@@ -10,8 +10,9 @@ The `happy_seed:omniauth` generator depends upon `happy_seed:devise` and
|
|
10
10
|
* Installs an omniauth_controller
|
11
11
|
* Updates devise configuration
|
12
12
|
* Adds routes
|
13
|
-
*
|
14
|
-
*
|
13
|
+
* Removes devise email/password validations, updates database
|
14
|
+
* Adds FormUser < User model for validations
|
15
|
+
* Adds a registration controller to allow the user to add email and password for auth strategies that don't support it.
|
15
16
|
|
16
17
|
### Why do you want this?
|
17
18
|
|
@@ -19,12 +20,16 @@ This lets you easily add oauth authentication for 3rd party sites to you applica
|
|
19
20
|
|
20
21
|
The Identity model is used to link up the user with the remote information. What information is given is stored, though you could go deeper with this. Additionally, the access token for the user is store in the Identity model for interacting with the remote service on behalf of the user.
|
21
22
|
|
22
|
-
It also creates the omniauth_callback controller. Devise as it's setup out of the box has the user's email address as the login, but not all services will give you the user's email address. (Twitter for example.) The controller in this case will check
|
23
|
+
It also creates the omniauth_callback controller. Devise as it's setup out of the box has the user's email address as the login, but not all services will give you the user's email address. (Twitter for example.) The controller in this case will check only set the email address if one is returned.
|
24
|
+
|
25
|
+
It also creates a registration controller to allow a user to set an email. If the user hasn't set a password, they can change email without it. If they set an password, then it is required to change things in the future.
|
26
|
+
|
27
|
+
Documented in spec/features/registration_spec.rb
|
23
28
|
|
24
29
|
|
25
30
|
### Environment Variables
|
26
31
|
|
27
|
-
|
32
|
+
Set up a $HOME/.seed_defaults file which contains development application keys. These will be copied over initially so that you don't need to enter them in all the time.
|
28
33
|
|
29
34
|
### What needs to be done?
|
30
35
|
|
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
RSpec.describe SplashController, :type => :controller do
|
4
|
+
after do
|
5
|
+
ENV['HTTP_AUTH_USERNAME'] = nil
|
6
|
+
ENV['HTTP_AUTH_PASSWORD'] = nil
|
7
|
+
end
|
8
|
+
|
4
9
|
it "should return the index page" do
|
5
10
|
get :index
|
6
11
|
expect(response).to render_template( :index )
|
@@ -40,7 +40,7 @@ GEM
|
|
40
40
|
execjs (2.2.2)
|
41
41
|
ffi (1.9.6)
|
42
42
|
gem_config (0.3.1)
|
43
|
-
haml (4.0.
|
43
|
+
haml (4.0.5)
|
44
44
|
tilt
|
45
45
|
hike (1.2.3)
|
46
46
|
hitimes (1.2.2)
|
@@ -52,7 +52,7 @@ GEM
|
|
52
52
|
thor (>= 0.14, < 2.0)
|
53
53
|
json (1.8.1)
|
54
54
|
kramdown (1.5.0)
|
55
|
-
listen (2.8.
|
55
|
+
listen (2.8.2)
|
56
56
|
celluloid (>= 0.15.2)
|
57
57
|
rb-fsevent (>= 0.9.3)
|
58
58
|
rb-inotify (>= 0.9)
|
@@ -67,7 +67,7 @@ GEM
|
|
67
67
|
middleman-sprockets (>= 3.1.2)
|
68
68
|
sass (>= 3.4.0, < 4.0)
|
69
69
|
uglifier (~> 2.5)
|
70
|
-
middleman-autometatags (0.0.
|
70
|
+
middleman-autometatags (0.0.1)
|
71
71
|
middleman-core (>= 3.0.0)
|
72
72
|
middleman-blog (3.5.3)
|
73
73
|
addressable (~> 2.3.5)
|
@@ -105,7 +105,7 @@ GEM
|
|
105
105
|
sprockets (~> 2.12.1)
|
106
106
|
sprockets-helpers (~> 1.1.0)
|
107
107
|
sprockets-sass (~> 1.2.0)
|
108
|
-
minitest (5.
|
108
|
+
minitest (5.4.3)
|
109
109
|
multi_json (1.10.1)
|
110
110
|
net-sftp (2.1.2)
|
111
111
|
net-ssh (>= 2.6.5)
|
@@ -116,7 +116,7 @@ GEM
|
|
116
116
|
tilt (~> 1.4.1)
|
117
117
|
padrino-support (0.12.4)
|
118
118
|
activesupport (>= 3.1)
|
119
|
-
ptools (1.
|
119
|
+
ptools (1.2.6)
|
120
120
|
rack (1.5.2)
|
121
121
|
rack-livereload (0.3.15)
|
122
122
|
rack
|
@@ -144,7 +144,7 @@ GEM
|
|
144
144
|
tzinfo (1.2.2)
|
145
145
|
thread_safe (~> 0.1)
|
146
146
|
uber (0.0.11)
|
147
|
-
uglifier (2.
|
147
|
+
uglifier (2.5.3)
|
148
148
|
execjs (>= 0.3.0)
|
149
149
|
json (>= 1.8.0)
|
150
150
|
|
Binary file
|
@@ -23,7 +23,9 @@ If you want to have the user connect via twitter, this is the one line command f
|
|
23
23
|
|
24
24
|
Go to twitter.com and sign up for an application. Since you need to set the callbacks as urls, you'll need to create one app for local development and another app for production. (Possibly one for staging as well.)
|
25
25
|
|
26
|
-
|
26
|
+
Allow the application to sign in with twitter.
|
27
|
+
|
28
|
+
https://apps.twitter.com
|
27
29
|
|
28
30
|
Also see more:
|
29
31
|
|
data/lib/happy_seed/version.rb
CHANGED
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
2
|
+
-------------------------
|
3
|
+
HappySeedTest: test_truth
|
4
|
+
-------------------------
|
5
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
6
|
+
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
7
|
+
-------------------------
|
8
|
+
HappySeedTest: test_truth
|
9
|
+
-------------------------
|
10
|
+
[1m[35m (0.0ms)[0m rollback transaction
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: happy_seed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Will Schenk
|
@@ -9,48 +9,48 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-01-
|
12
|
+
date: 2015-01-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '4.2'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ~>
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '4.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: thor
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: sqlite3
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - '>='
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
description: HappySeed is a project that will build up a rails apps using some common
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- Rakefile
|
67
67
|
- bin/happy_seed
|
68
68
|
- happy_seed.rb
|
69
|
+
- lib/generators/happy_seed/.DS_Store
|
69
70
|
- lib/generators/happy_seed/admin/admin_generator.rb
|
70
71
|
- lib/generators/happy_seed/admin/templates/app/admin/campaigns.rb
|
71
72
|
- lib/generators/happy_seed/admin/templates/app/admin/dashboard.rb
|
@@ -130,14 +131,25 @@ files:
|
|
130
131
|
- lib/generators/happy_seed/devise/templates/spec/factories/users.rb
|
131
132
|
- lib/generators/happy_seed/devise/templates/spec/features/forgot_password_spec.rb
|
132
133
|
- lib/generators/happy_seed/devise/templates/test/mailers/previews/devise_preview.rb
|
134
|
+
- lib/generators/happy_seed/devise_invitable/devise_invitable_generator.rb
|
135
|
+
- lib/generators/happy_seed/devise_invitable/templates/app/views/devise/invitations/edit.html.haml
|
136
|
+
- lib/generators/happy_seed/devise_invitable/templates/app/views/devise/invitations/new.html.haml
|
137
|
+
- lib/generators/happy_seed/devise_invitable/templates/docs/README.03.devise_invitable.rdoc
|
133
138
|
- lib/generators/happy_seed/facebook/facebook_generator.rb
|
134
139
|
- lib/generators/happy_seed/facebook/templates/docs/README.06.facebook.rdoc
|
140
|
+
- lib/generators/happy_seed/googleoauth/.DS_Store
|
141
|
+
- lib/generators/happy_seed/googleoauth/googleoauth_generator.rb
|
142
|
+
- lib/generators/happy_seed/googleoauth/templates/.DS_Store
|
143
|
+
- lib/generators/happy_seed/googleoauth/templates/add_refresh_token_to_identity.rb
|
144
|
+
- lib/generators/happy_seed/googleoauth/templates/docs/README.06.googleoauth.rdoc
|
145
|
+
- lib/generators/happy_seed/googleoauth/templates/lib/google_api_client.rb
|
135
146
|
- lib/generators/happy_seed/happy_seed_generator.rb
|
136
147
|
- lib/generators/happy_seed/instagram/instagram_generator.rb
|
137
148
|
- lib/generators/happy_seed/instagram/templates/docs/README.05.instagram.rdoc
|
138
149
|
- lib/generators/happy_seed/jazz_hands/jazz_hands_generator.rb
|
139
150
|
- lib/generators/happy_seed/jazz_hands/templates/config/initializers/jazz_hands.rb
|
140
151
|
- lib/generators/happy_seed/jazz_hands/templates/docs/README.12.jazz_hands.rdoc
|
152
|
+
- lib/generators/happy_seed/omniauth/.DS_Store
|
141
153
|
- lib/generators/happy_seed/omniauth/omniauth_generator.rb
|
142
154
|
- lib/generators/happy_seed/omniauth/templates/app/controllers/omniauth_callbacks_controller.rb
|
143
155
|
- lib/generators/happy_seed/omniauth/templates/app/controllers/registrations_controller.rb
|
@@ -168,7 +180,6 @@ files:
|
|
168
180
|
- lib/generators/happy_seed/static/static_generator.rb
|
169
181
|
- lib/generators/happy_seed/static/templates/.gitignore
|
170
182
|
- lib/generators/happy_seed/static/templates/Gemfile
|
171
|
-
- lib/generators/happy_seed/static/templates/Gemfile.lock
|
172
183
|
- lib/generators/happy_seed/static/templates/config.rb
|
173
184
|
- lib/generators/happy_seed/static/templates/data/site.yml
|
174
185
|
- lib/generators/happy_seed/static/templates/source/images/.gitkeep
|
@@ -214,6 +225,7 @@ files:
|
|
214
225
|
- lib/generators/happy_seed/static_blog/templates/source/stylesheets/fonts/socicon-webfont.woff
|
215
226
|
- lib/generators/happy_seed/static_blog/templates/source/stylesheets/socicons.css
|
216
227
|
- lib/generators/happy_seed/static_blog/templates/source/tag.html.haml
|
228
|
+
- lib/generators/happy_seed/twitter/templates/.DS_Store
|
217
229
|
- lib/generators/happy_seed/twitter/templates/docs/README.05.twitter.rdoc
|
218
230
|
- lib/generators/happy_seed/twitter/twitter_generator.rb
|
219
231
|
- lib/happy_seed.rb
|
@@ -250,6 +262,8 @@ files:
|
|
250
262
|
- test/dummy/config/locales/en.yml
|
251
263
|
- test/dummy/config/routes.rb
|
252
264
|
- test/dummy/config/secrets.yml
|
265
|
+
- test/dummy/db/test.sqlite3
|
266
|
+
- test/dummy/log/test.log
|
253
267
|
- test/dummy/public/404.html
|
254
268
|
- test/dummy/public/422.html
|
255
269
|
- test/dummy/public/500.html
|
@@ -266,17 +280,17 @@ require_paths:
|
|
266
280
|
- lib
|
267
281
|
required_ruby_version: !ruby/object:Gem::Requirement
|
268
282
|
requirements:
|
269
|
-
- -
|
283
|
+
- - '>='
|
270
284
|
- !ruby/object:Gem::Version
|
271
285
|
version: '0'
|
272
286
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
273
287
|
requirements:
|
274
|
-
- -
|
288
|
+
- - '>='
|
275
289
|
- !ruby/object:Gem::Version
|
276
290
|
version: '0'
|
277
291
|
requirements: []
|
278
292
|
rubyforge_project:
|
279
|
-
rubygems_version: 2.
|
293
|
+
rubygems_version: 2.2.2
|
280
294
|
signing_key:
|
281
295
|
specification_version: 4
|
282
296
|
summary: HappySeed is a project that will build up a rails apps using some common
|
@@ -310,6 +324,8 @@ test_files:
|
|
310
324
|
- test/dummy/config/routes.rb
|
311
325
|
- test/dummy/config/secrets.yml
|
312
326
|
- test/dummy/config.ru
|
327
|
+
- test/dummy/db/test.sqlite3
|
328
|
+
- test/dummy/log/test.log
|
313
329
|
- test/dummy/public/404.html
|
314
330
|
- test/dummy/public/422.html
|
315
331
|
- test/dummy/public/500.html
|
@@ -1,162 +0,0 @@
|
|
1
|
-
GIT
|
2
|
-
remote: git://github.com/happyfuncode/middleman-meta-tags.git
|
3
|
-
revision: fd6d03f84216def82b684693aefb234af6534980
|
4
|
-
branch: develop
|
5
|
-
specs:
|
6
|
-
middleman-meta-tags (0.0.1)
|
7
|
-
middleman-core (>= 3.0.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
activesupport (4.1.7)
|
13
|
-
i18n (~> 0.6, >= 0.6.9)
|
14
|
-
json (~> 1.7, >= 1.7.7)
|
15
|
-
minitest (~> 5.1)
|
16
|
-
thread_safe (~> 0.1)
|
17
|
-
tzinfo (~> 1.1)
|
18
|
-
bootstrap-navbar (2.2.2)
|
19
|
-
gem_config (~> 0.3)
|
20
|
-
bootstrap-sass (3.3.1.0)
|
21
|
-
sass (~> 3.2)
|
22
|
-
builder (3.2.2)
|
23
|
-
celluloid (0.16.0)
|
24
|
-
timers (~> 4.0.0)
|
25
|
-
chunky_png (1.3.3)
|
26
|
-
coffee-script (2.3.0)
|
27
|
-
coffee-script-source
|
28
|
-
execjs
|
29
|
-
coffee-script-source (1.8.0)
|
30
|
-
compass (1.0.1)
|
31
|
-
chunky_png (~> 1.2)
|
32
|
-
compass-core (~> 1.0.1)
|
33
|
-
compass-import-once (~> 1.0.5)
|
34
|
-
rb-fsevent (>= 0.9.3)
|
35
|
-
rb-inotify (>= 0.9)
|
36
|
-
sass (>= 3.3.13, < 3.5)
|
37
|
-
compass-core (1.0.1)
|
38
|
-
multi_json (~> 1.0)
|
39
|
-
sass (>= 3.3.0, < 3.5)
|
40
|
-
compass-import-once (1.0.5)
|
41
|
-
sass (>= 3.2, < 3.5)
|
42
|
-
em-websocket (0.5.1)
|
43
|
-
eventmachine (>= 0.12.9)
|
44
|
-
http_parser.rb (~> 0.6.0)
|
45
|
-
erubis (2.7.0)
|
46
|
-
eventmachine (1.0.3)
|
47
|
-
execjs (2.2.2)
|
48
|
-
ffi (1.9.6)
|
49
|
-
gem_config (0.3.1)
|
50
|
-
haml (4.0.5)
|
51
|
-
tilt
|
52
|
-
hike (1.2.3)
|
53
|
-
hitimes (1.2.2)
|
54
|
-
hooks (0.4.0)
|
55
|
-
uber (~> 0.0.4)
|
56
|
-
http_parser.rb (0.6.0)
|
57
|
-
i18n (0.6.11)
|
58
|
-
jquery-middleman (3.0.4)
|
59
|
-
thor (>= 0.14, < 2.0)
|
60
|
-
json (1.8.1)
|
61
|
-
kramdown (1.5.0)
|
62
|
-
listen (2.8.0)
|
63
|
-
celluloid (>= 0.15.2)
|
64
|
-
rb-fsevent (>= 0.9.3)
|
65
|
-
rb-inotify (>= 0.9)
|
66
|
-
middleman (3.3.7)
|
67
|
-
coffee-script (~> 2.2)
|
68
|
-
compass (>= 1.0.0, < 2.0.0)
|
69
|
-
compass-import-once (= 1.0.5)
|
70
|
-
execjs (~> 2.0)
|
71
|
-
haml (>= 4.0.5)
|
72
|
-
kramdown (~> 1.2)
|
73
|
-
middleman-core (= 3.3.7)
|
74
|
-
middleman-sprockets (>= 3.1.2)
|
75
|
-
sass (>= 3.4.0, < 4.0)
|
76
|
-
uglifier (~> 2.5)
|
77
|
-
middleman-bootstrap-navbar (2.0.0)
|
78
|
-
bootstrap-navbar (~> 2.0)
|
79
|
-
middleman-core (>= 3.0)
|
80
|
-
middleman-core (3.3.7)
|
81
|
-
activesupport (~> 4.1.0)
|
82
|
-
bundler (~> 1.1)
|
83
|
-
erubis
|
84
|
-
hooks (~> 0.3)
|
85
|
-
i18n (~> 0.6.9)
|
86
|
-
listen (>= 2.7.9, < 3.0)
|
87
|
-
padrino-helpers (~> 0.12.3)
|
88
|
-
rack (>= 1.4.5, < 2.0)
|
89
|
-
rack-test (~> 0.6.2)
|
90
|
-
thor (>= 0.15.2, < 2.0)
|
91
|
-
tilt (~> 1.4.1, < 2.0)
|
92
|
-
middleman-deploy (0.3.0)
|
93
|
-
middleman-core (>= 3.2)
|
94
|
-
net-sftp
|
95
|
-
ptools
|
96
|
-
middleman-livereload (3.1.1)
|
97
|
-
em-websocket (>= 0.2.0)
|
98
|
-
middleman-core (>= 3.0.2)
|
99
|
-
multi_json (~> 1.0)
|
100
|
-
rack-livereload
|
101
|
-
middleman-sprockets (3.3.10)
|
102
|
-
middleman-core (~> 3.3)
|
103
|
-
sprockets (~> 2.12.1)
|
104
|
-
sprockets-helpers (~> 1.1.0)
|
105
|
-
sprockets-sass (~> 1.2.0)
|
106
|
-
minitest (5.4.3)
|
107
|
-
multi_json (1.10.1)
|
108
|
-
net-sftp (2.1.2)
|
109
|
-
net-ssh (>= 2.6.5)
|
110
|
-
net-ssh (2.9.1)
|
111
|
-
padrino-helpers (0.12.4)
|
112
|
-
i18n (~> 0.6, >= 0.6.7)
|
113
|
-
padrino-support (= 0.12.4)
|
114
|
-
tilt (~> 1.4.1)
|
115
|
-
padrino-support (0.12.4)
|
116
|
-
activesupport (>= 3.1)
|
117
|
-
ptools (1.2.6)
|
118
|
-
rack (1.5.2)
|
119
|
-
rack-livereload (0.3.15)
|
120
|
-
rack
|
121
|
-
rack-test (0.6.2)
|
122
|
-
rack (>= 1.0)
|
123
|
-
rb-fsevent (0.9.4)
|
124
|
-
rb-inotify (0.9.5)
|
125
|
-
ffi (>= 0.5.0)
|
126
|
-
sass (3.4.8)
|
127
|
-
sprockets (2.12.3)
|
128
|
-
hike (~> 1.2)
|
129
|
-
multi_json (~> 1.0)
|
130
|
-
rack (~> 1.0)
|
131
|
-
tilt (~> 1.1, != 1.3.0)
|
132
|
-
sprockets-helpers (1.1.0)
|
133
|
-
sprockets (~> 2.0)
|
134
|
-
sprockets-sass (1.2.0)
|
135
|
-
sprockets (~> 2.0)
|
136
|
-
tilt (~> 1.1)
|
137
|
-
thor (0.19.1)
|
138
|
-
thread_safe (0.3.4)
|
139
|
-
tilt (1.4.1)
|
140
|
-
timers (4.0.1)
|
141
|
-
hitimes
|
142
|
-
tzinfo (1.2.2)
|
143
|
-
thread_safe (~> 0.1)
|
144
|
-
uber (0.0.11)
|
145
|
-
uglifier (2.5.3)
|
146
|
-
execjs (>= 0.3.0)
|
147
|
-
json (>= 1.8.0)
|
148
|
-
|
149
|
-
PLATFORMS
|
150
|
-
ruby
|
151
|
-
|
152
|
-
DEPENDENCIES
|
153
|
-
bootstrap-sass
|
154
|
-
builder (~> 3.0)
|
155
|
-
jquery-middleman
|
156
|
-
middleman (~> 3.3.7)
|
157
|
-
middleman-bootstrap-navbar
|
158
|
-
middleman-deploy
|
159
|
-
middleman-livereload (~> 3.1.0)
|
160
|
-
middleman-meta-tags!
|
161
|
-
tzinfo-data
|
162
|
-
wdm (~> 0.1.0)
|