subscribem 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +23 -0
  5. data/app/assets/javascripts/subscribem/account/dashboard.js +2 -0
  6. data/app/assets/javascripts/subscribem/account/users.js +2 -0
  7. data/app/assets/javascripts/subscribem/accounts.js +2 -0
  8. data/app/assets/javascripts/subscribem/application.js +13 -0
  9. data/app/assets/javascripts/subscribem/dashboard.js +2 -0
  10. data/app/assets/stylesheets/subscribem/account/dashboard.css +4 -0
  11. data/app/assets/stylesheets/subscribem/account/users.css +4 -0
  12. data/app/assets/stylesheets/subscribem/accounts.css +4 -0
  13. data/app/assets/stylesheets/subscribem/application.css +15 -0
  14. data/app/assets/stylesheets/subscribem/dashboard.css +4 -0
  15. data/app/controllers/subscribem/account/dashboard_controller.rb +11 -0
  16. data/app/controllers/subscribem/account/sessions_controller.rb +19 -0
  17. data/app/controllers/subscribem/account/users_controller.rb +24 -0
  18. data/app/controllers/subscribem/accounts_controller.rb +32 -0
  19. data/app/controllers/subscribem/application_controller.rb +38 -0
  20. data/app/controllers/subscribem/dashboard_controller.rb +6 -0
  21. data/app/extenders/controllers/application_controller_extender.rb +38 -0
  22. data/app/helpers/subscribem/account/dashboard_helper.rb +4 -0
  23. data/app/helpers/subscribem/account/users_helper.rb +4 -0
  24. data/app/helpers/subscribem/accounts_helper.rb +4 -0
  25. data/app/helpers/subscribem/application_helper.rb +4 -0
  26. data/app/helpers/subscribem/dashboard_helper.rb +4 -0
  27. data/app/models/subscribem/account.rb +30 -0
  28. data/app/models/subscribem/member.rb +6 -0
  29. data/app/models/subscribem/user.rb +5 -0
  30. data/app/views/layouts/subscribem/application.html.erb +20 -0
  31. data/app/views/subscribem/account/accounts/_form.html.erb +14 -0
  32. data/app/views/subscribem/account/dashboard/index.html.erb +0 -0
  33. data/app/views/subscribem/account/sessions/new.html.erb +17 -0
  34. data/app/views/subscribem/account/users/_form.html.erb +14 -0
  35. data/app/views/subscribem/account/users/new.html.erb +5 -0
  36. data/app/views/subscribem/accounts/new.html.erb +20 -0
  37. data/app/views/subscribem/dashboard/index.html.erb +2 -0
  38. data/config/initializers/warden/strategies/password.rb +14 -0
  39. data/config/routes.rb +16 -0
  40. data/db/migrate/20140914040159_create_subscribem_accounts.rb +9 -0
  41. data/db/migrate/20140914052933_add_owner_id_to_subscribem_accounts.rb +5 -0
  42. data/db/migrate/20140914053354_create_subscribem_users.rb +10 -0
  43. data/db/migrate/20140914064352_add_subdomain_to_subscribem_accounts.rb +6 -0
  44. data/db/migrate/20140916164135_create_subscribem_members.rb +10 -0
  45. data/lib/subscribem.rb +6 -0
  46. data/lib/subscribem/active_record_extensions.rb +7 -0
  47. data/lib/subscribem/constraints/subdomain_required.rb +9 -0
  48. data/lib/subscribem/engine.rb +36 -0
  49. data/lib/subscribem/version.rb +3 -0
  50. data/lib/tasks/subscribem_tasks.rake +4 -0
  51. metadata +205 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 17634af531b5a236080746949297e587fd6bf3cf
4
+ data.tar.gz: dd528f6ef03e16b50e85f15fb37319a0fdfd8f8a
5
+ SHA512:
6
+ metadata.gz: 04d5c879d5eaf11a84633c7041a1e60293a468ad24fc07253b1be44292f60f3c175d647c94c4ba098fdc6ed720e2d453a230cb3365a8d1e9eaf653beef60a558
7
+ data.tar.gz: d6b41e2b5f9439b8381ffd56bb7a34fded34a6913ca84ef25a15af1a64a72465da1366b210d80cead3de345c226b87584f4d2d6efe2d0349cc7359b23f8c4ea0
@@ -0,0 +1,20 @@
1
+ Copyright 2014 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,3 @@
1
+ = Subscribem
2
+
3
+ This project rocks and uses MIT-LICENSE.
@@ -0,0 +1,23 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Subscribem'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,11 @@
1
+ require_dependency "subscribem/application_controller"
2
+
3
+ module Subscribem
4
+ class Account::DashboardController < ApplicationController
5
+ before_filter :authenticate_user!
6
+
7
+ def index
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module Subscribem
2
+ class Account::SessionsController < Subscribem::ApplicationController
3
+ def new
4
+ @user = User.new
5
+ end
6
+
7
+ def create
8
+ if env["warden"].authenticate(:scope => :user)
9
+ flash[:notice] = "You are now signed in."
10
+ redirect_to root_path
11
+ else
12
+ @user = User.new
13
+ flash[:error] = "Invalid email or password."
14
+ render :action => "new"
15
+ end
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ require_dependency "subscribem/application_controller"
2
+
3
+ module Subscribem
4
+ class Account::UsersController < ApplicationController
5
+ def new
6
+ @user = Subscribem::User.new
7
+ end
8
+
9
+ def create
10
+ account = Subscribem::Account.find_by!(:subdomain => request.subdomain)
11
+ user = account.users.create(user_params)
12
+ force_authentication!(account, user)
13
+ flash[:success] = "You have signed up successfully."
14
+ redirect_to root_path
15
+ end
16
+
17
+ private
18
+
19
+ def user_params
20
+ params.require(:user).permit(:email, :password, :password_confirmation)
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ require_dependency "subscribem/application_controller"
2
+
3
+ module Subscribem
4
+ class AccountsController < ApplicationController
5
+
6
+ def new
7
+ @account = Subscribem::Account.new
8
+ @account.build_owner
9
+ end
10
+
11
+ def create
12
+ @account = Subscribem::Account.create_with_owner(account_params)
13
+ if @account.valid?
14
+ force_authentication!(@account, @account.owner)
15
+ flash[:success] = "Your account has been successfully created."
16
+ redirect_to subscribem.root_url(:subdomain => @account.subdomain)
17
+ else
18
+ flash[:error] = "Sorry, your account could not be created."
19
+ render :new
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def account_params
26
+ params.require(:account).permit(:name, :subdomain, {:owner_attributes => [
27
+ :email, :password, :password_confirmation
28
+ ]})
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,38 @@
1
+ module Subscribem
2
+ class ApplicationController < ActionController::Base
3
+ def current_account
4
+ if user_signed_in?
5
+ @current_account ||= begin
6
+ account_id = env["warden"].user(:scope => :account)
7
+ Subscibem::Account.find(account_id)
8
+ end
9
+ end
10
+ end
11
+ helper_method :current_account
12
+ def current_user
13
+ if user_signed_in?
14
+ @current_user ||= begin
15
+ user_id = env["warden"].user(:scope => :user)
16
+ Subscribem::User.find(user_id)
17
+ end
18
+ end
19
+ end
20
+ helper_method :current_user
21
+ def user_signed_in?
22
+ env["warden"].authenticated?(:user)
23
+ end
24
+ helper_method :user_signed_in?
25
+
26
+ def authenticate_user!
27
+ unless user_signed_in?
28
+ flash[:notice] = "Please sign in."
29
+ redirect_to "/sign_in"
30
+ end
31
+ end
32
+
33
+ def force_authentication!(account, user)
34
+ env["warden"].set_user(user, :scope => :user)
35
+ env["warden"].set_user(account, :scope => :account)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,6 @@
1
+ require_dependency "subscribem/application_controller"
2
+
3
+ module Subscribem
4
+ class DashboardController < ApplicationController
5
+ end
6
+ end
@@ -0,0 +1,38 @@
1
+ ::ApplicationController.class_eval do
2
+ def current_account
3
+ if user_signed_in?
4
+ @current_account ||= begin
5
+ account_id = env["warden"].user(:scope => :account)
6
+ Subscribem::Account.find(account_id)
7
+ end
8
+ end
9
+ end
10
+ helper_method :current_account
11
+
12
+ def current_user
13
+ if user_signed_in?
14
+ @current_user ||= begin
15
+ user_id = env["warden"].user(:scope => :user)
16
+ Subscribem::User.find(user_id)
17
+ end
18
+ end
19
+ end
20
+ helper_method :current_user
21
+
22
+ def user_signed_in?
23
+ env["warden"].authenticated?(:user)
24
+ end
25
+ helper_method :user_signed_in?
26
+
27
+ def authenticate_user!
28
+ unless user_signed_in?
29
+ flash[:info] = "Please sign in."
30
+ redirect_to '/sign_in'
31
+ end
32
+ end
33
+
34
+ def force_authentication!(account, user)
35
+ env["warden"].set_user(user, :scope => :user)
36
+ env["warden"].set_user(account, :scope => :account)
37
+ end
38
+ end
@@ -0,0 +1,4 @@
1
+ module Subscribem
2
+ module Account::DashboardHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Subscribem
2
+ module Account::UsersHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Subscribem
2
+ module AccountsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Subscribem
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Subscribem
2
+ module DashboardHelper
3
+ end
4
+ end
@@ -0,0 +1,30 @@
1
+ module Subscribem
2
+ class Account < ActiveRecord::Base
3
+
4
+ has_many :members, :class_name => "Subscribem::Member"
5
+ has_many :users, :through => :members
6
+
7
+ before_validation do
8
+ self.subdomain = subdomain.to_s.downcase
9
+ end
10
+
11
+ validates :subdomain, presence: true, uniqueness: true
12
+ EXCLUDED_SUBDOMAINS = %w(admin)
13
+ validates_exclusion_of :subdomain, in: EXCLUDED_SUBDOMAINS,
14
+ message: "is not allowed. Please choose another subdomain."
15
+
16
+ validates_format_of :subdomain, with: /\A[\w\-]+\Z/i,
17
+ message: "is not allowed. Please choose another subdomain."
18
+
19
+ belongs_to :owner, class_name: "Subscribem::User"
20
+ accepts_nested_attributes_for :owner
21
+
22
+ def self.create_with_owner(params={})
23
+ account = new(params)
24
+ if account.save
25
+ account.users << account.owner
26
+ end
27
+ account
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ module Subscribem
2
+ class Member < ActiveRecord::Base
3
+ belongs_to :account, :class_name => "Subscribem::Account"
4
+ belongs_to :user, :class_name => "Subscribem::User"
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module Subscribem
2
+ class User < ActiveRecord::Base
3
+ has_secure_password
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Subscribem</title>
5
+ <%= stylesheet_link_tag "subscribem/application", media: "all" %>
6
+ <%= javascript_include_tag "subscribem/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+ <% if user_signed_in? %>
11
+ Signed in as <%= current_user.email %>
12
+ <% end %>
13
+
14
+ <% flash.each do |k,v| %>
15
+ <div class='flash <%= k %>'><%= v %></div>
16
+ <% end %>
17
+ <%= yield %>
18
+
19
+ </body>
20
+ </html>
@@ -0,0 +1,14 @@
1
+ <p>
2
+ <%= owner.label :email %><br>
3
+ <%= owner.email_field :email %>
4
+ </p>
5
+
6
+ <p>
7
+ <%= owner.label :password %><br>
8
+ <%= owner.password_field :password %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= owner.label :password_confirmation %><br>
13
+ <%= owner.password_field :password_confirmation %>
14
+ </p>
@@ -0,0 +1,17 @@
1
+ <h2>Sign in</h2>
2
+ <%= form_for @user, :url => sessions_url do |f| %>
3
+ <p>
4
+ <%= f.label :email %><br>
5
+ <%= f.email_field :email %>
6
+ </p>
7
+ <p>
8
+ <%= f.label :password %><br>
9
+ <%= f.password_field :password %>
10
+ </p>
11
+
12
+ <p>
13
+ <%= f.submit "Sign in" %>
14
+ </p>
15
+
16
+ <% end %>
17
+ <%= link_to "New User?", user_sign_up_url %>
@@ -0,0 +1,14 @@
1
+ <p>
2
+ <%= user.label :email %><br>
3
+ <%= user.email_field :email %>
4
+ </p>
5
+
6
+ <p>
7
+ <%= user.label :password %><br>
8
+ <%= user.password_field :password %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= user.label :password_confirmation %><br>
13
+ <%= user.password_field :password_confirmation %>
14
+ </p>
@@ -0,0 +1,5 @@
1
+ <h2>Sign Up</h2>
2
+ <%= form_for(@user, :url => do_user_sign_up_url) do | user | %>
3
+ <%= render "subscribem/account/users/form", :user => user %>
4
+ <%= user.submit "Sign up" %>
5
+ <% end %>
@@ -0,0 +1,20 @@
1
+ <h2>Sign up</h2>
2
+ <%= form_for(@account) do | account | %>
3
+ <%= account.error_messages %>
4
+ <p>
5
+ <%= account.label :name %><br>
6
+ <%= account.text_field :name %>
7
+ </p>
8
+
9
+ <p>
10
+ <%= account.label :subdomain %><br>
11
+ <%= account.text_field :subdomain %>
12
+ </p>
13
+
14
+ <%= account.fields_for :owner do |owner| %>
15
+ <%= render "subscribem/account/users/form", :user => owner %>
16
+ <% end %>
17
+
18
+ <%= account.submit %>
19
+
20
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <%= link_to "Account Sign Up", sign_up_path %>
2
+ <%= link_to "Account Sign In", sign_in_path %>
@@ -0,0 +1,14 @@
1
+ Warden::Strategies.add(:password) do
2
+ def subdomain
3
+ ActionDispatch::Http::URL.extract_subdomains(request.host, 1)
4
+ end
5
+ def valid?
6
+ subdomain.present? && params["user"]
7
+ end
8
+ def authenticate!
9
+ return fail! unless account = Subscribem:: Account.find_by( subdomain: subdomain)
10
+ return fail! unless user = account.users.find_by(email: params["user"]["email"])
11
+ return fail! unless user.authenticate(params["user"]["password"])
12
+ success! user
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ require "subscribem/constraints/subdomain_required"
2
+ Subscribem::Engine.routes.draw do
3
+ constraints(Subscribem::Constraints::SubdomainRequired) do
4
+ scope :module => "account" do
5
+ root :to => "dashboard#index", :as => :account_root
6
+ get "/sign_in", :to => "sessions#new"
7
+ post "/sign_in", :to => "sessions#create", :as => :sessions
8
+ get "/sign_up", :to => "users#new", :as => :user_sign_up
9
+ post "/sign_up", :to => "users#create", :as => :do_user_sign_up
10
+ end
11
+ end
12
+
13
+ root "dashboard#index"
14
+ get "/sign_up", :to => "accounts#new", :as => :sign_up
15
+ post "/accounts", :to => "accounts#create", :as => :accounts
16
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSubscribemAccounts < ActiveRecord::Migration
2
+ def change
3
+ create_table :subscribem_accounts do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddOwnerIdToSubscribemAccounts < ActiveRecord::Migration
2
+ def change
3
+ add_column :subscribem_accounts, :owner_id, :integer
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSubscribemUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :subscribem_users do |t|
4
+ t.string :email
5
+ t.string :password_digest
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ class AddSubdomainToSubscribemAccounts < ActiveRecord::Migration
2
+ def change
3
+ add_column :subscribem_accounts, :subdomain, :string
4
+ add_index :subscribem_accounts, :subdomain
5
+ end
6
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSubscribemMembers < ActiveRecord::Migration
2
+ def change
3
+ create_table :subscribem_members do |t|
4
+ t.integer :account_id
5
+ t.integer :user_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ require "subscribem/engine"
2
+
3
+ module Subscribem
4
+ # class ApplicationController < ::ApplicationController
5
+ # end
6
+ end
@@ -0,0 +1,7 @@
1
+ ActiveRecord::Base.class_eval do
2
+ def self.scoped_to_account
3
+ belongs_to :account, :class_name => "Subscribem::Account"
4
+ association_name = self.to_s.downcase.pluralize
5
+ Subscribem::Account.has_many association_name.to_sym, :class_name => self.to_s
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module Subscribem
2
+ module Constraints
3
+ class SubdomainRequired
4
+ def self.matches?(request)
5
+ request.subdomain.present? && request.subdomain != "www"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,36 @@
1
+ require "warden"
2
+ require "dynamic_form"
3
+ require "subscribem/active_record_extensions"
4
+
5
+
6
+ module Subscribem
7
+ class Engine < ::Rails::Engine
8
+
9
+ initializer "subscribem.middleware.warden" do
10
+ Rails.application.config.middleware.use Warden::Manager do |manager|
11
+ manager.default_strategies :password
12
+ manager.serialize_into_session do |user|
13
+ user.id
14
+ end
15
+ manager.serialize_from_session do |id|
16
+ Subscribem::User.find(id)
17
+ end
18
+ end
19
+ end
20
+
21
+ isolate_namespace Subscribem
22
+
23
+ config.generators do |g|
24
+ g.test_framework :rspec, :view_specs => false
25
+ end
26
+
27
+ config.to_prepare do
28
+ root = Subscribem::Engine.root
29
+ extenders_path = root + "app/extenders/**/*.rb"
30
+ Dir.glob(extenders_path) do |file|
31
+ Rails.configuration.cache_classes ? require(file) : load(file)
32
+ end
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,3 @@
1
+ module Subscribem
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :subscribem do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,205 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: subscribem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Horacio
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.6
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.6
27
+ - !ruby/object:Gem::Dependency
28
+ name: bcrypt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.7
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.1.7
41
+ - !ruby/object:Gem::Dependency
42
+ name: warden
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.2.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.2.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: dynamic_form
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.4
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: capybara
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 2.3.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 2.3.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: factory_girl_rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 4.4.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 4.4.0
125
+ description: Description of Subscribem.
126
+ email:
127
+ - horacio.hch@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - MIT-LICENSE
133
+ - README.rdoc
134
+ - Rakefile
135
+ - app/assets/javascripts/subscribem/account/dashboard.js
136
+ - app/assets/javascripts/subscribem/account/users.js
137
+ - app/assets/javascripts/subscribem/accounts.js
138
+ - app/assets/javascripts/subscribem/application.js
139
+ - app/assets/javascripts/subscribem/dashboard.js
140
+ - app/assets/stylesheets/subscribem/account/dashboard.css
141
+ - app/assets/stylesheets/subscribem/account/users.css
142
+ - app/assets/stylesheets/subscribem/accounts.css
143
+ - app/assets/stylesheets/subscribem/application.css
144
+ - app/assets/stylesheets/subscribem/dashboard.css
145
+ - app/controllers/subscribem/account/dashboard_controller.rb
146
+ - app/controllers/subscribem/account/sessions_controller.rb
147
+ - app/controllers/subscribem/account/users_controller.rb
148
+ - app/controllers/subscribem/accounts_controller.rb
149
+ - app/controllers/subscribem/application_controller.rb
150
+ - app/controllers/subscribem/dashboard_controller.rb
151
+ - app/extenders/controllers/application_controller_extender.rb
152
+ - app/helpers/subscribem/account/dashboard_helper.rb
153
+ - app/helpers/subscribem/account/users_helper.rb
154
+ - app/helpers/subscribem/accounts_helper.rb
155
+ - app/helpers/subscribem/application_helper.rb
156
+ - app/helpers/subscribem/dashboard_helper.rb
157
+ - app/models/subscribem/account.rb
158
+ - app/models/subscribem/member.rb
159
+ - app/models/subscribem/user.rb
160
+ - app/views/layouts/subscribem/application.html.erb
161
+ - app/views/subscribem/account/accounts/_form.html.erb
162
+ - app/views/subscribem/account/dashboard/index.html.erb
163
+ - app/views/subscribem/account/sessions/new.html.erb
164
+ - app/views/subscribem/account/users/_form.html.erb
165
+ - app/views/subscribem/account/users/new.html.erb
166
+ - app/views/subscribem/accounts/new.html.erb
167
+ - app/views/subscribem/dashboard/index.html.erb
168
+ - config/initializers/warden/strategies/password.rb
169
+ - config/routes.rb
170
+ - db/migrate/20140914040159_create_subscribem_accounts.rb
171
+ - db/migrate/20140914052933_add_owner_id_to_subscribem_accounts.rb
172
+ - db/migrate/20140914053354_create_subscribem_users.rb
173
+ - db/migrate/20140914064352_add_subdomain_to_subscribem_accounts.rb
174
+ - db/migrate/20140916164135_create_subscribem_members.rb
175
+ - lib/subscribem.rb
176
+ - lib/subscribem/active_record_extensions.rb
177
+ - lib/subscribem/constraints/subdomain_required.rb
178
+ - lib/subscribem/engine.rb
179
+ - lib/subscribem/version.rb
180
+ - lib/tasks/subscribem_tasks.rake
181
+ homepage:
182
+ licenses:
183
+ - MIT
184
+ metadata: {}
185
+ post_install_message:
186
+ rdoc_options: []
187
+ require_paths:
188
+ - lib
189
+ required_ruby_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ requirements: []
200
+ rubyforge_project:
201
+ rubygems_version: 2.4.1
202
+ signing_key:
203
+ specification_version: 4
204
+ summary: Summary of Subscribem.
205
+ test_files: []