Sha256: 09243b06c7f08f1c13fd053ba8089d332b989e043252e18fd656583f04e2782d

Contents?: true

Size: 1.85 KB

Versions: 2

Compression:

Stored size: 1.85 KB

Contents

require 'rails/generators'

class ShopifyAppGenerator < Rails::Generators::Base
  argument :api_key, :type => :string, :required => false
  argument :secret, :type => :string, :required => false

  class_option :skip_routes, :type => :boolean, :default => false, :desc => 'pass true to skip route generation'

  def self.source_root
    File.join(File.dirname(__FILE__), 'templates')
  end

  def copy_files
    directory 'app'
    directory 'public'
    directory 'config'
  end

  def remove_static_index
    remove_file 'public/index.html'
  end

  def add_config_variables
    return if api_key.blank? || secret.blank?

    inject_into_file 'config/application.rb', <<-DATA, :after => "class Application < Rails::Application\n"

    # Shopify API connection credentials:
    config.shopify.api_key = '#{api_key}'
    config.shopify.secret = '#{secret}'
    DATA
  end

  def add_bootstrap_gem
    gem_group :development, :test do
      gem "less-rails-bootstrap"
      gem 'therubyracer', :platforms => :ruby
    end
  end

  def add_routes
    unless options[:skip_routes]
      route_without_newline "root :to => 'home#index'"
      route "end"
      route_without_newline "  delete 'logout' => :destroy"
      route_without_newline "  get 'auth/shopify/callback' => :show"
      route_without_newline "  post 'login' => :create"
      route_without_newline "  get 'login' => :new"
      route_without_newline "controller :sessions do"
      route "get 'design' => 'home#design'"
      route_without_newline "get 'welcome' => 'home#welcome'"
    end
  end

  def display_readme
    Bundler.with_clean_env do
      run 'bundle install'
    end

    readme '../README'
  end

  private

  def route_without_newline(routing_code)
    sentinel = /\.routes\.draw do(?:\s*\|map\|)?\s*$/
    inject_into_file 'config/routes.rb', "\n  #{routing_code}", { after: sentinel, verbose: false }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shopify_app-5.0.2 lib/generators/shopify_app/shopify_app_generator.rb
shopify_app-5.0.1 lib/generators/shopify_app/shopify_app_generator.rb