astrochimp 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/stylesheets/astrochimp/application.css +0 -1
- data/app/controllers/astrochimp/signups_controller.rb +17 -2
- data/app/models/astrochimp/signup.rb +20 -1
- data/app/models/id_code.rb +34 -0
- data/app/views/astrochimp/signups/show.html.erb +14 -0
- data/app/views/layouts/astrochimp/application.html.erb +2 -2
- data/config/astrochimp.example.yml +11 -10
- data/config/initializers/settings.rb +10 -0
- data/config/routes.rb +2 -1
- data/db/migrate/20121101211218_add_referrals_to_astrochimp_signup.rb +10 -0
- data/db/migrate/20121206205605_remove_referral_code_from_astrochimp_signup.rb +6 -0
- data/db/migrate/20121207033108_rename_referrer_id_foreign_key_column.rb +13 -0
- data/db/migrate/20121207034527_rename_referrals_counter_cache_column.rb +5 -0
- data/lib/astrochimp/engine.rb +7 -0
- data/lib/astrochimp/version.rb +1 -1
- data/lib/generators/astrochimp/install_generator.rb +25 -0
- data/lib/generators/templates/README +22 -0
- data/lib/templates/astrochimp.html.erb +108 -0
- data/test/dummy/Gemfile.lock +1 -1
- data/test/dummy/app/views/layouts/astrochimp.html.erb +108 -0
- data/test/dummy/config/astrochimp.yml +11 -10
- data/test/dummy/config/routes.rb +2 -0
- data/test/dummy/custom_plan.rb +11 -0
- data/test/dummy/db/schema.rb +27 -0
- data/test/dummy/log/development.log +7846 -573
- data/test/dummy/log/test.log +2 -0
- data/test/dummy/script/rails +1 -1
- data/test/dummy/tmp/cache/assets/BF6/3E0/sprockets%2F0e22157423187180dd12a0884e697896 +0 -0
- data/test/dummy/tmp/cache/assets/C13/F40/sprockets%2F2b820513e8044233094c562a32486b6f +0 -0
- data/test/dummy/tmp/cache/assets/C74/7D0/sprockets%2F23b518409925cc177e9c10ba12a41793 +0 -0
- data/test/dummy/tmp/cache/assets/C76/DA0/sprockets%2F67c82a09313ae24199e1e13c2620509f +0 -0
- data/test/dummy/tmp/cache/assets/CA9/D00/sprockets%2Fd7058f81cff323f16232335023e3b4f7 +0 -0
- data/test/dummy/tmp/cache/assets/CAB/9E0/sprockets%2Fa0a62d5409856780f2c05770c5652ebc +0 -0
- data/test/dummy/tmp/cache/assets/{E2B/2A0/sprockets%2Fd24b69d435ddde8ef74e1bed05cb40cc → CDC/150/sprockets%2F54b0d0a47f8298b5eaf3617a2462b276} +0 -0
- data/test/dummy/tmp/cache/assets/{E01/170/sprockets%2Faecb1e97f5c4c846e209219dadba6ea9 → CDC/C90/sprockets%2F2d261384df7f0e1840fb2b825f5503f5} +0 -0
- data/test/dummy/tmp/cache/assets/{D07/410/sprockets%2F808b2f8e2c29dc62c26f3ab63600c741 → CFC/110/sprockets%2F874c99a5c3f7980cb838049df992a3c4} +0 -0
- data/test/dummy/tmp/cache/assets/{D37/100/sprockets%2Fcfd06dd08a5560c05e20626891a8dee1 → D08/BB0/sprockets%2F03029d0eae9d60d07750f52cacf57744} +0 -0
- data/test/dummy/tmp/cache/assets/D0F/330/sprockets%2Ffb3a577775bb1684b81bae0733c84e15 +0 -0
- data/test/dummy/tmp/cache/assets/D17/910/sprockets%2Fad73016095762ecae496a2889d5dd44b +0 -0
- data/test/dummy/tmp/cache/assets/D2B/B50/sprockets%2F34da53fc1148e615ab721a5dc651bf32 +0 -0
- data/test/dummy/tmp/cache/assets/D47/A90/sprockets%2Fba2d4f822a97a5e9785ae50b13d9762f +0 -0
- data/test/dummy/tmp/cache/assets/D59/AA0/sprockets%2F68fbced6c70c9279f837b39eb1954b83 +0 -0
- data/test/dummy/tmp/cache/assets/{E00/9D0/sprockets%2Fb28f287563eee75a1ba1eeedfb62ef04 → D62/DE0/sprockets%2F5983a7db4b5a7e0b476a41760a4a0daf} +0 -0
- data/test/dummy/tmp/cache/assets/DD5/D80/sprockets%2Fe0e2eae180a206cf97bddf9f39a7a649 +0 -0
- data/test/dummy/tmp/cache/assets/DE0/B60/sprockets%2F789ef22ee99ef492d4ca4ec1d6019eda +0 -0
- data/test/dummy/tmp/cache/assets/DF8/790/sprockets%2Fbbdc2b01b8efe4faf5ad997283a030f7 +0 -0
- data/test/dummy/tmp/cache/assets/{D59/940/sprockets%2Fa648ef52a3d6148f53e75be678efc857 → E80/5D0/sprockets%2F8b1fbfabd7e4e13a20eb1e6d5b6ebc5e} +0 -0
- data/test/dummy/tmp/restart.txt +0 -0
- data/test/dummy/zeus.json +23 -0
- metadata +128 -140
- data/app/assets/stylesheets/astrochimp/bootstrap-responsive.min.css +0 -9
- data/app/assets/stylesheets/astrochimp/bootstrap.min.css +0 -9
- data/test/dummy/db/migrate/20121026003306_create_astrochimp_signups.astrochimp.rb +0 -11
- data/test/dummy/tmp/cache/assets/C51/C00/sprockets%2F0a9b9392736374885db06f331c22f513 +0 -0
- data/test/dummy/tmp/cache/assets/C66/980/sprockets%2F93602859678f45592e0de1889e8a12b1 +0 -0
- data/test/dummy/tmp/cache/assets/C79/FB0/sprockets%2Fd01591d7915aab9e008063a78d044592 +0 -0
- data/test/dummy/tmp/cache/assets/C8D/DD0/sprockets%2Fa5484d6aa766752e80179438c635b66b +0 -0
- data/test/dummy/tmp/cache/assets/C8F/370/sprockets%2F7e998e2a8851df3061601f85853e270c +0 -0
- data/test/dummy/tmp/cache/assets/C90/AD0/sprockets%2F567c6d3d7725d730656d2135cf58774c +0 -0
- data/test/dummy/tmp/cache/assets/CA0/080/sprockets%2F5eaef194d0a72604035161f2a090a966 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/5D0/sprockets%2F6b83920b1e8a09f1b191f35890f5c452 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/AF0/sprockets%2F4e01c80bf7b08c7f9c7188948f93d961 +0 -0
- data/test/dummy/tmp/cache/assets/CFA/B50/sprockets%2Fa94a8355f6749e65ee8c59b08509b29b +0 -0
- data/test/dummy/tmp/cache/assets/D0F/620/sprockets%2F4e4f8255ba3658469ea5153cab4911fa +0 -0
- data/test/dummy/tmp/cache/assets/D1E/FD0/sprockets%2F62b680d0e485afa7259fc50f988c92d2 +0 -0
- data/test/dummy/tmp/cache/assets/D2B/500/sprockets%2F814cba53f20f00ea55b66b894b060f0c +0 -0
- data/test/dummy/tmp/cache/assets/D4B/780/sprockets%2F7e7e0c368f397c122934f064dbcca88e +0 -0
- data/test/dummy/tmp/cache/assets/D7D/9E0/sprockets%2F6bd865f67ed6445f71e3d50ef3dcb517 +0 -0
- data/test/dummy/tmp/cache/assets/D96/DA0/sprockets%2F775a2d5f4f945205adaaafdd62f1432d +0 -0
- data/test/dummy/tmp/cache/assets/DC2/3A0/sprockets%2Fc2142c774fce8b04e62eaaab5254bfa9 +0 -0
- data/test/dummy/tmp/cache/assets/EA7/EB0/sprockets%2F995eebc8953e4dbbedb5fb8b9fe70ecf +0 -0
@@ -2,6 +2,15 @@ require_dependency "astrochimp/application_controller"
|
|
2
2
|
|
3
3
|
module Astrochimp
|
4
4
|
class SignupsController < ApplicationController
|
5
|
+
before_filter :capture_referrer_code, only: [:index]
|
6
|
+
|
7
|
+
def capture_referrer_code
|
8
|
+
session[:referrer_id] = Signup.code_to_id(params[:referrer_code]) if params.has_key? :referrer_code
|
9
|
+
end
|
10
|
+
|
11
|
+
# User's 'astrochimp_splash' layout in THEIR app (that uses this gem)
|
12
|
+
layout "#{Rails.root}/app/views/layouts/#{ENV['AC_SPLASH_LAYOUT'] || 'astrochimp_splash'}"
|
13
|
+
|
5
14
|
def index
|
6
15
|
@signup = Signup.new
|
7
16
|
|
@@ -11,9 +20,13 @@ module Astrochimp
|
|
11
20
|
end
|
12
21
|
end
|
13
22
|
|
23
|
+
def show
|
24
|
+
@signup = Signup.find(params[:id])
|
25
|
+
end
|
26
|
+
|
14
27
|
# POST
|
15
28
|
def create
|
16
|
-
@signup = Signup.new(params[:signup])
|
29
|
+
@signup = Signup.new(params[:signup].merge(referrer_id: session[:referrer_id]))
|
17
30
|
@signup.status = Signup::STATUS_NEW
|
18
31
|
|
19
32
|
respond_to do |format|
|
@@ -22,7 +35,9 @@ module Astrochimp
|
|
22
35
|
format.html { render action: :index }
|
23
36
|
format.json { render json: @signup.errors, status: :unprocessable_entity }
|
24
37
|
else
|
25
|
-
format.html
|
38
|
+
format.html do
|
39
|
+
redirect_to @signup, notice: ENV['AC_SIGNUP_SUCCESS_NOTICE']
|
40
|
+
end
|
26
41
|
format.json { render json: @signup, status: :created, location: @signup }
|
27
42
|
end
|
28
43
|
end
|
@@ -1,19 +1,38 @@
|
|
1
1
|
module Astrochimp
|
2
2
|
class Signup < ActiveRecord::Base
|
3
3
|
# Attributes
|
4
|
-
attr_accessible :email
|
4
|
+
attr_accessible :email, :referrer_id
|
5
5
|
|
6
6
|
# Constants
|
7
7
|
STATUS_NEW = 0
|
8
8
|
STATUS_SUBSCRIBED = 1
|
9
9
|
STATUS_INVITED = 2
|
10
10
|
|
11
|
+
# Relations
|
12
|
+
has_many :referrals, class_name: 'Signup'
|
13
|
+
belongs_to :referrer, class_name: 'Signup', counter_cache: true
|
14
|
+
|
11
15
|
# Validations
|
12
16
|
validates :email, uniqueness: true, email: true
|
13
17
|
|
14
18
|
# Callbacks
|
15
19
|
before_create :add_email_to_mailchimp
|
16
20
|
|
21
|
+
# Include referral code functionality
|
22
|
+
include IdCode
|
23
|
+
alias :referral_code :id_code
|
24
|
+
|
25
|
+
# Return the referral code instead of id for urls
|
26
|
+
alias :to_param :referral_code
|
27
|
+
|
28
|
+
def self.find(id_or_code)
|
29
|
+
if id_or_code.is_a? Integer
|
30
|
+
super(id_or_code)
|
31
|
+
else
|
32
|
+
find_by_id_code(id_or_code)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
17
36
|
private
|
18
37
|
def add_email_to_mailchimp
|
19
38
|
# Handle any MailChimp errors
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module IdCode
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
module ClassMethods
|
5
|
+
# Determines spacing between consecutive referral codes
|
6
|
+
def factor
|
7
|
+
9
|
8
|
+
end
|
9
|
+
|
10
|
+
# determines minimum size of a referal code
|
11
|
+
def pad
|
12
|
+
26 ** 3 # insure at least four digits
|
13
|
+
end
|
14
|
+
|
15
|
+
# Use base 26 here to avoid numeric codes
|
16
|
+
# (We want codes to be clearly distinguishable from ids)
|
17
|
+
def id_to_code(id)
|
18
|
+
(id.to_i * factor + pad).to_s(26).tr('0-9a-p', 'a-z')
|
19
|
+
end
|
20
|
+
|
21
|
+
# exact inverse of id_to_code
|
22
|
+
def code_to_id(code)
|
23
|
+
(code.to_s.tr('a-z', '0-9a-p').to_i(26) - pad) / factor
|
24
|
+
end
|
25
|
+
|
26
|
+
def find_by_id_code(code)
|
27
|
+
find(code_to_id(code))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def id_code
|
32
|
+
self.class.id_to_code(id)
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<h2></h2>
|
2
|
+
<p>
|
3
|
+
Your referral link to invite others:
|
4
|
+
<%= link_to referral_link_path(referrer_code: @signup.referral_code, only_path: false),
|
5
|
+
referral_link_path(referrer_code: @signup.referral_code) %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
Number of people you have referred:
|
9
|
+
<%= @signup.signups_count %>
|
10
|
+
</p>
|
11
|
+
<p>Your signup object:</p>
|
12
|
+
<pre>
|
13
|
+
<%= @signup.inspect %>
|
14
|
+
</pre>
|
@@ -3,7 +3,8 @@
|
|
3
3
|
<head>
|
4
4
|
<title><%= ENV['AC_NAME'] %> Beta Signup</title>
|
5
5
|
<%= stylesheet_link_tag "astrochimp/application" %>
|
6
|
-
<link href="
|
6
|
+
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap.min.css" rel="stylesheet">
|
7
|
+
<link href="//fonts.googleapis.com/css?family=Oxygen" rel="stylesheet" type="text/css" />
|
7
8
|
<%= csrf_meta_tags %>
|
8
9
|
</head>
|
9
10
|
<body>
|
@@ -38,7 +39,6 @@
|
|
38
39
|
|
39
40
|
<hr />
|
40
41
|
|
41
|
-
<%= render 'layouts/astrochimp/messages' %>
|
42
42
|
<%= yield %>
|
43
43
|
|
44
44
|
</div>
|
@@ -1,15 +1,16 @@
|
|
1
1
|
defaults: &defaults
|
2
|
-
name : Awesome Startup
|
3
|
-
company : Company, LLC
|
4
|
-
company_url : http://mailchimp.com
|
5
|
-
twitter_user : Brightbit
|
6
|
-
facebook_url : http://www.facebook.com/brightbit
|
7
|
-
google_analytics_code :
|
8
|
-
mailchimp_list_id :
|
9
|
-
mailchimp_api_key :
|
10
|
-
email_format : html
|
2
|
+
name : "Awesome Startup"
|
3
|
+
company : "Company, LLC"
|
4
|
+
company_url : "http://mailchimp.com"
|
5
|
+
twitter_user : "Brightbit"
|
6
|
+
facebook_url : "http://www.facebook.com/brightbit"
|
7
|
+
google_analytics_code : ""
|
8
|
+
mailchimp_list_id : ""
|
9
|
+
mailchimp_api_key : ""
|
10
|
+
email_format : "html"
|
11
11
|
email_double_optin : false # true will require user to confirm their email address
|
12
|
-
signup_success_notice : Thanks! We'll drop you a line when we launch!
|
12
|
+
signup_success_notice : "Thanks! We'll drop you a line when we launch!"
|
13
|
+
splash_layout : "astrochimp"
|
13
14
|
|
14
15
|
development:
|
15
16
|
<<: *defaults
|
@@ -13,3 +13,13 @@ config.each do |key, value|
|
|
13
13
|
ENV[key] = value.to_s if !value.kind_of?(Hash) && ENV[key].blank?
|
14
14
|
end
|
15
15
|
|
16
|
+
#if File.basename($0) != 'rake'
|
17
|
+
#unless ActiveRecord::Base.connection.table_exists?('astrochimp_signups')
|
18
|
+
#raise "\n\nThe Chimp wants you to run rake db:migrate\n\n"
|
19
|
+
#end
|
20
|
+
|
21
|
+
#if ENV['AC_MAILCHIMP_API_KEY'].blank? || ENV['AC_MAILCHIMP_LIST_ID'].blank?
|
22
|
+
#raise "\n\nThe Chimp wants you to set the ENV variables: AC_MAILCHIMP_API_KEY and AC_MAILCHIMP_LIST_ID.\n" <<
|
23
|
+
#"You can also set them in astrochimp.yml if you're an ape.\n\n"
|
24
|
+
#end
|
25
|
+
#end
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
class AddReferralsToAstrochimpSignup < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_column :astrochimp_signups, :referral_id, :integer
|
4
|
+
add_column :astrochimp_signups, :referral_code, :string
|
5
|
+
add_column :astrochimp_signups, :referral_count, :integer, default: 0
|
6
|
+
|
7
|
+
add_index :astrochimp_signups, :referral_id
|
8
|
+
add_index :astrochimp_signups, :referral_code
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class RenameReferrerIdForeignKeyColumn < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
remove_index :astrochimp_signups, :referral_id
|
4
|
+
rename_column :astrochimp_signups, :referral_id, :referrer_id
|
5
|
+
add_index :astrochimp_signups, :referrer_id
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
remove_index :astrochimp_signups, :referrer_id
|
10
|
+
rename_column :astrochimp_signups, :referrer_id, :referral_id
|
11
|
+
add_index :astrochimp_signups, :referral_id
|
12
|
+
end
|
13
|
+
end
|
data/lib/astrochimp/engine.rb
CHANGED
@@ -4,5 +4,12 @@ module Astrochimp
|
|
4
4
|
|
5
5
|
class Engine < ::Rails::Engine
|
6
6
|
isolate_namespace Astrochimp
|
7
|
+
|
8
|
+
initializer "astrochimp.load_app_instance_data" do |app|
|
9
|
+
app.class.configure do |config|
|
10
|
+
#Pull in all the migrations from Astrochimp to the application
|
11
|
+
config.paths['db/migrate'] += Astrochimp::Engine.paths['db/migrate'].existent
|
12
|
+
end
|
13
|
+
end
|
7
14
|
end
|
8
15
|
end
|
data/lib/astrochimp/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Astrochimp
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
desc "Move astrochimp configuration and layout in place"
|
7
|
+
|
8
|
+
def copy_config_yml
|
9
|
+
copy_file "../../../config/astrochimp.example.yml", "config/astrochimp.yml"
|
10
|
+
end
|
11
|
+
|
12
|
+
def copy_default_layout
|
13
|
+
copy_file "../../templates/astrochimp.html.erb", "app/views/layouts/astrochimp.html.erb"
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_astrochimp_routes
|
17
|
+
route 'mount Astrochimp::Engine => "/"'
|
18
|
+
end
|
19
|
+
|
20
|
+
def show_readme
|
21
|
+
readme "README" if behavior == :invoke
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
Your app is now Chimpified!
|
4
|
+
|
5
|
+
1. Add the astrochimp_signups table by running:
|
6
|
+
|
7
|
+
rake db:migrate
|
8
|
+
|
9
|
+
2. Set your Mailchimp API key and List ID:
|
10
|
+
|
11
|
+
export AC_MAILCHIMP_API_KEY=abcdefg12345
|
12
|
+
export AC_MAILCHIMP_LIST_ID=zyxwvut09876
|
13
|
+
|
14
|
+
Note: you can also set these in astrochimp.yml but ENV variables will take precedence
|
15
|
+
|
16
|
+
3. Specify your own configurations in astrochimp.yml (optional)
|
17
|
+
|
18
|
+
4. Give the astrochimp.html.erb layout your own style (optional)
|
19
|
+
|
20
|
+
5. Modify your routes.rb and mount the chimp somewhere besides '/' (optional)
|
21
|
+
|
22
|
+
===============================================================================
|
@@ -0,0 +1,108 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= ENV['AC_NAME'] %> Beta Signup</title>
|
5
|
+
<%= stylesheet_link_tag "astrochimp/application" %>
|
6
|
+
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap.min.css" rel="stylesheet">
|
7
|
+
<link href="//fonts.googleapis.com/css?family=Oxygen" rel="stylesheet" type="text/css" />
|
8
|
+
<%= csrf_meta_tags %>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<div class="container">
|
12
|
+
|
13
|
+
<!-- Header -->
|
14
|
+
<div class="row">
|
15
|
+
<div class="span7">
|
16
|
+
<div id="header" class="outside">
|
17
|
+
<h1><a href="/"><%= ENV['AC_NAME'] %></a></h1>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<div class="span5">
|
21
|
+
<div id="nav_header_user">
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<!-- Content -->
|
27
|
+
<div class="row">
|
28
|
+
<div class="span4">
|
29
|
+
<div class="appframe iphone">
|
30
|
+
<%= image_tag('astrochimp/Astrochimp-phone-splash.png') %>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
<div class="span8">
|
34
|
+
<div class="hero-unit">
|
35
|
+
|
36
|
+
<h1>Change The World in 5 Minutes.</h1>
|
37
|
+
<h2>Literally. The Entire World.</h2>
|
38
|
+
<p>Rock the world so hard it turns upside down. Like Australia.</p>
|
39
|
+
|
40
|
+
<hr />
|
41
|
+
|
42
|
+
<%= yield %>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div class="row">
|
49
|
+
<div class="span4">
|
50
|
+
<div class="well">
|
51
|
+
<h2>Feature One</h2>
|
52
|
+
<p>
|
53
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce
|
54
|
+
bibendum leo sed enim mattis vitae ullamcorper felis pellentesque.
|
55
|
+
Sed porta eleifend diam sit amet tincidunt.
|
56
|
+
</p>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
<div class="span4">
|
60
|
+
<div class="well">
|
61
|
+
<h2>Feature Two</h2>
|
62
|
+
<p>
|
63
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce
|
64
|
+
bibendum leo sed enim mattis vitae ullamcorper felis pellentesque.
|
65
|
+
Sed porta eleifend diam sit amet tincidunt.
|
66
|
+
</p>
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
<div class="span4">
|
70
|
+
<div class="well">
|
71
|
+
<h2>Feature Three</h2>
|
72
|
+
<p>
|
73
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce
|
74
|
+
bibendum leo sed enim mattis vitae ullamcorper felis pellentesque.
|
75
|
+
Sed porta eleifend diam sit amet tincidunt.
|
76
|
+
</p>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
|
81
|
+
<!-- Footer -->
|
82
|
+
<div class="row">
|
83
|
+
<div class="span6 company">
|
84
|
+
<p><%= ENV['AC_NAME'] %> is a product of <a href="<%= ENV['AC_COMPANY_URL'] %>"><%= ENV['AC_COMPANY'] %></a></p>
|
85
|
+
</div>
|
86
|
+
<div class="span6 credits">
|
87
|
+
<p><a href="http://mailchimp.com">Powered by MailChimp</a></p>
|
88
|
+
</div>
|
89
|
+
</div>
|
90
|
+
|
91
|
+
</div>
|
92
|
+
<!-- JavaScripts -->
|
93
|
+
<% if !ENV['AC_GOOGLE_ANALYTICS_CODE'].blank? -%>
|
94
|
+
<script type="text/javascript">
|
95
|
+
var _gaq = _gaq || [];
|
96
|
+
_gaq.push(['_setAccount', '<%= ENV['AC_GOOGLE_ANALYTICS_CODE'] %>']);
|
97
|
+
_gaq.push(['_trackPageview']);
|
98
|
+
|
99
|
+
(function() {
|
100
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
101
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
102
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
103
|
+
})();
|
104
|
+
</script>
|
105
|
+
<% end %>
|
106
|
+
<%= javascript_include_tag "astrochimp/application" %>
|
107
|
+
</body>
|
108
|
+
</html>
|
data/test/dummy/Gemfile.lock
CHANGED
@@ -0,0 +1,108 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= ENV['AC_NAME'] %> Beta Signup</title>
|
5
|
+
<%= stylesheet_link_tag "astrochimp/application" %>
|
6
|
+
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap.min.css" rel="stylesheet">
|
7
|
+
<link href="//fonts.googleapis.com/css?family=Oxygen" rel="stylesheet" type="text/css" />
|
8
|
+
<%= csrf_meta_tags %>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<div class="container">
|
12
|
+
|
13
|
+
<!-- Header -->
|
14
|
+
<div class="row">
|
15
|
+
<div class="span7">
|
16
|
+
<div id="header" class="outside">
|
17
|
+
<h1><a href="/"><%= ENV['AC_NAME'] %></a></h1>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<div class="span5">
|
21
|
+
<div id="nav_header_user">
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<!-- Content -->
|
27
|
+
<div class="row">
|
28
|
+
<div class="span4">
|
29
|
+
<div class="appframe iphone">
|
30
|
+
<%= image_tag('astrochimp/Astrochimp-phone-splash.png') %>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
<div class="span8">
|
34
|
+
<div class="hero-unit">
|
35
|
+
|
36
|
+
<h1>Change The World in 5 Minutes.</h1>
|
37
|
+
<h2>Literally. The Entire World.</h2>
|
38
|
+
<p>Rock the world so hard it turns upside down. Like Australia.</p>
|
39
|
+
|
40
|
+
<hr />
|
41
|
+
|
42
|
+
<%= yield %>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div class="row">
|
49
|
+
<div class="span4">
|
50
|
+
<div class="well">
|
51
|
+
<h2>Feature One</h2>
|
52
|
+
<p>
|
53
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce
|
54
|
+
bibendum leo sed enim mattis vitae ullamcorper felis pellentesque.
|
55
|
+
Sed porta eleifend diam sit amet tincidunt.
|
56
|
+
</p>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
<div class="span4">
|
60
|
+
<div class="well">
|
61
|
+
<h2>Feature Two</h2>
|
62
|
+
<p>
|
63
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce
|
64
|
+
bibendum leo sed enim mattis vitae ullamcorper felis pellentesque.
|
65
|
+
Sed porta eleifend diam sit amet tincidunt.
|
66
|
+
</p>
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
<div class="span4">
|
70
|
+
<div class="well">
|
71
|
+
<h2>Feature Three</h2>
|
72
|
+
<p>
|
73
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce
|
74
|
+
bibendum leo sed enim mattis vitae ullamcorper felis pellentesque.
|
75
|
+
Sed porta eleifend diam sit amet tincidunt.
|
76
|
+
</p>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
|
81
|
+
<!-- Footer -->
|
82
|
+
<div class="row">
|
83
|
+
<div class="span6 company">
|
84
|
+
<p><%= ENV['AC_NAME'] %> is a product of <a href="<%= ENV['AC_COMPANY_URL'] %>"><%= ENV['AC_COMPANY'] %></a></p>
|
85
|
+
</div>
|
86
|
+
<div class="span6 credits">
|
87
|
+
<p><a href="http://mailchimp.com">Powered by MailChimp</a></p>
|
88
|
+
</div>
|
89
|
+
</div>
|
90
|
+
|
91
|
+
</div>
|
92
|
+
<!-- JavaScripts -->
|
93
|
+
<% if !ENV['AC_GOOGLE_ANALYTICS_CODE'].blank? -%>
|
94
|
+
<script type="text/javascript">
|
95
|
+
var _gaq = _gaq || [];
|
96
|
+
_gaq.push(['_setAccount', '<%= ENV['AC_GOOGLE_ANALYTICS_CODE'] %>']);
|
97
|
+
_gaq.push(['_trackPageview']);
|
98
|
+
|
99
|
+
(function() {
|
100
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
101
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
102
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
103
|
+
})();
|
104
|
+
</script>
|
105
|
+
<% end %>
|
106
|
+
<%= javascript_include_tag "astrochimp/application" %>
|
107
|
+
</body>
|
108
|
+
</html>
|
@@ -1,15 +1,16 @@
|
|
1
1
|
defaults: &defaults
|
2
|
-
name : Awesome Startup
|
3
|
-
company : Company, LLC
|
4
|
-
company_url : http://mailchimp.com
|
5
|
-
twitter_user : Brightbit
|
6
|
-
facebook_url : http://www.facebook.com/brightbit
|
7
|
-
google_analytics_code :
|
8
|
-
mailchimp_list_id :
|
9
|
-
mailchimp_api_key :
|
10
|
-
email_format : html
|
2
|
+
name : "Awesome Startup"
|
3
|
+
company : "Company, LLC"
|
4
|
+
company_url : "http://mailchimp.com"
|
5
|
+
twitter_user : "Brightbit"
|
6
|
+
facebook_url : "http://www.facebook.com/brightbit"
|
7
|
+
google_analytics_code : ""
|
8
|
+
mailchimp_list_id : ""
|
9
|
+
mailchimp_api_key : ""
|
10
|
+
email_format : "html"
|
11
11
|
email_double_optin : false # true will require user to confirm their email address
|
12
|
-
signup_success_notice : Thanks! We'll drop you a line when we launch!
|
12
|
+
signup_success_notice : "Thanks! We'll drop you a line when we launch!"
|
13
|
+
splash_layout : "astrochimp"
|
13
14
|
|
14
15
|
development:
|
15
16
|
<<: *defaults
|
data/test/dummy/config/routes.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# This file is auto-generated from the current state of the database. Instead
|
3
|
+
# of editing this file, please use the migrations feature of Active Record to
|
4
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
+
#
|
6
|
+
# Note that this schema.rb definition is the authoritative source for your
|
7
|
+
# database schema. If you need to create the application database on another
|
8
|
+
# system, you should be using db:schema:load, not running all the migrations
|
9
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
+
#
|
12
|
+
# It's strongly recommended to check this file into your version control system.
|
13
|
+
|
14
|
+
ActiveRecord::Schema.define(:version => 20121207034527) do
|
15
|
+
|
16
|
+
create_table "astrochimp_signups", :force => true do |t|
|
17
|
+
t.string "email"
|
18
|
+
t.integer "status"
|
19
|
+
t.datetime "created_at", :null => false
|
20
|
+
t.datetime "updated_at", :null => false
|
21
|
+
t.integer "referrer_id"
|
22
|
+
t.integer "signups_count", :default => 0
|
23
|
+
end
|
24
|
+
|
25
|
+
add_index "astrochimp_signups", ["referrer_id"], :name => "index_astrochimp_signups_on_referrer_id"
|
26
|
+
|
27
|
+
end
|