class StripeSaas::InstallGenerator
Public Class Methods
source_paths()
click to toggle source
# File lib/generators/stripe_saas/install_generator.rb, line 6 def self.source_paths [StripeSaas::Engine.root, File.expand_path("../templates", __FILE__)] end
Public Instance Methods
install()
click to toggle source
# File lib/generators/stripe_saas/install_generator.rb, line 21 def install unless defined?(StripeSaas) gem("stripe_saas") end require "securerandom" @api_key = SecureRandom.uuid template "config/initializers/stripe_saas.rb" # Generate subscription. generate("model", "subscription stripe_id:string plan_id:integer last_four:string card_type:string current_price_cents:integer #{subscription_owner_model}_id:integer") template "app/models/subscription.rb" # Add the plans. generate("model", "plan stripe_id:string name:string price_cents:integer interval:string interval_count:integer trial_period_days:integer metadata_as_json:text statement_descriptor:text highlight:boolean display_order:integer") template "app/models/plan.rb" # Add features generate("model", "feature name:string description:string feature_type:string unit:string display_order:integer use_unit:boolean") template "app/models/feature.rb" # Add Plan Features generate("model", "plan_feature value:string display_value:string plan_id:integer feature_id:integer") template "app/models/plan_feature.rb" # Update the owner relationship. inject_into_class "app/models/#{subscription_owner_model}.rb", Plan, "has_one :subscription\n" route <<-RUBY mount StripeSaas::Engine, at: 'stripe_saas' scope module: 'stripe_saas' do get 'pricing' => 'subscriptions#index', as: 'pricing' end RUBY end
subscription_owner_model()
click to toggle source
Override the attr_accessor generated by 'argument' so that subscription_owner_model
is always returned lowercase.
# File lib/generators/stripe_saas/install_generator.rb, line 17 def subscription_owner_model @subscription_owner_model.downcase end