class ActiveRecord::Generators::NotificationHubGenerator

Public Instance Methods

create_models_and_migrations() click to toggle source
# File lib/generators/active_record/notification_hub_generator.rb, line 11
def create_models_and_migrations      
  template "models/subscription.rb", "#{models_path}/notification_hub/subscription.rb", rails5?: rails5?  
  migration_template "migrations/subscriptions.rb", "#{migrations_path}/create_notification_hub_subscriptions.rb", migration_version: migration_version    
  
  template "models/device.rb", "#{models_path}/notification_hub/device.rb", rails5?: rails5?  
  migration_template "migrations/devices.rb", "#{migrations_path}/create_notification_hub_devices.rb", migration_version: migration_version            
  
  template "models/subscription_device.rb", "#{models_path}/notification_hub/subscription_device.rb", rails5?: rails5? 
  migration_template "migrations/subscription_devices.rb", "#{migrations_path}/create_notification_hub_subscription_devices.rb", migration_version: migration_version
end
inject_content_to_user() click to toggle source
# File lib/generators/active_record/notification_hub_generator.rb, line 22
def inject_content_to_user
  content = "has_many :notification_hub_subscriptions, class_name: 'NotificationHub::Subscription', dependent: :destroy\nhas_many :notification_hub_devices, class_name: 'NotificationHub::Device', dependent: :destroy"
  content = content.split("\n").map { |line| "  " + line } .join("\n") << "\n"

  inject_into_class("#{models_path}/#{association_model}.rb", association_model.classify, content) 
end
migration_version() click to toggle source
# File lib/generators/active_record/notification_hub_generator.rb, line 33
def migration_version
  if rails5?
    "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
  end
end
migrations_path() click to toggle source
# File lib/generators/active_record/notification_hub_generator.rb, line 39
def migrations_path
  @migrations_path ||= File.join("db", "migrate")
end
models_path() click to toggle source
# File lib/generators/active_record/notification_hub_generator.rb, line 43
def models_path
  @models_path ||= File.join("app", "models")
end
rails5?() click to toggle source
# File lib/generators/active_record/notification_hub_generator.rb, line 29
def rails5?
  Rails.version.start_with? '5'
end