21
22
23
24
25
26
27
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
|
# 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("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"
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"
generate("model", "feature name:string description:string feature_type:string unit:string display_order:integer use_unit:boolean")
template "app/models/feature.rb"
generate("model", "plan_feature value:string display_value:string plan_id:integer feature_id:integer")
template "app/models/plan_feature.rb"
inject_into_class "app/models/#{subscription_owner_model}.rb", Plan, "has_one :subscription\n"
route " mount StripeSaas::Engine, at: 'stripe_saas'\n scope module: 'stripe_saas' do\n get 'pricing' => 'subscriptions#index', as: 'pricing'\n end\n RUBY\nend\n"
|