Sha256: d85205c93ad0580c9810ce5521e329defac82d35f9f915436490f79a62754596
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
require 'rails/generators/base' require 'rails/generators/active_record' module Freemium module Generators MODELS = %w(transaction coupon coupon_redemption credit_card subscription subscription_change subscription_plan) class InstallGenerator < Rails::Generators::Base include Rails::Generators::Migration source_root File.expand_path('../templates', __FILE__) def create_freemium_initializer copy_file 'freemium.rb', 'config/initializers/freemium.rb' end def create_models Freemium::Generators::MODELS.each do |model_name| if !File.exists?("app/models/#{model_name}.rb") copy_file "models/#{model_name}.rb", "app/models/#{model_name}.rb" create_migration "create_#{model_name.pluralize}.rb" end end end private def create_migration(migration_name, config = {}) unless migration_exists?(migration_name) migration_template( "db/migrate/#{migration_name}", "db/migrate/#{migration_name}", config ) end end def migration_exists?(name) existing_migrations.include?(name) end def existing_migrations @existing_migrations ||= Dir.glob("db/migrate/*.rb").map do |file| migration_name_without_timestamp(file) end end def migration_name_without_timestamp(file) file.sub(%r{^.*(db/migrate/)(?:\d+_)?}, '') end # for generating a timestamp when using `create_migration` def self.next_migration_number(dir) ActiveRecord::Generators::Base.next_migration_number(dir) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
freemium-ajb-0.0.4 | lib/generators/freemium/install/install_generator.rb |