Class: Koudoku::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Koudoku::InstallGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/koudoku/install_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #install ⇒ Object
-
#subscription_owner_model ⇒ Object
Override the attr_accessor generated by ‘argument’ so that subscription_owner_model is always returned lowercase.
Class Method Details
Instance Method Details
#install ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/generators/koudoku/install_generator.rb', line 28 def install unless defined?(Koudoku) gem("koudoku") end require "securerandom" template "config/initializers/koudoku.rb" # Generate subscription. generate("model", "subscription stripe_id:string plan_id:integer last_four:string coupon_id:integer card_type:string current_price:float #{subscription_owner_model}_id:integer") template "app/models/subscription.rb" # Add the plans. generate("model", "plan name:string stripe_id:string price:float interval:string features:text highlight:boolean display_order:integer") template "app/models/plan.rb" # Add coupons. generate("model coupon code:string free_trial_length:string") template "app/models/coupon.rb" # Update the owner relationship. inject_into_class "app/models/#{subscription_owner_model}.rb", subscription_owner_model.camelize.constantize, "# Added by Koudoku.\n has_one :subscription\n\n" # Install the pricing table. copy_file "app/views/koudoku/subscriptions/_social_proof.html.erb" # Add webhooks to the route. route <<-RUBY # Added by Koudoku. mount Koudoku::Engine, at: 'koudoku' scope module: 'koudoku' do get 'pricing' => 'subscriptions#index', as: 'pricing' end RUBY # Show the user the API key we generated. say "\nTo enable support for Stripe webhooks, point it to \"/koudoku/events\"." end |
#subscription_owner_model ⇒ Object
Override the attr_accessor generated by ‘argument’ so that subscription_owner_model is always returned lowercase.
23 24 25 |
# File 'lib/generators/koudoku/install_generator.rb', line 23 def subscription_owner_model @subscription_owner_model.downcase end |