class Piggybak::CLI

Public Instance Methods

add_javascript_include_tag() click to toggle source
# File lib/piggybak/cli.rb, line 39
    def add_javascript_include_tag
      if File.exist?('app/views/layouts/application.html.haml')
        jit_code_block = <<-eos
            \n    - if "\#{params[:controller]}#\#\{params[:action]\}" == "piggybak/orders#submit"
        = javascript_include_tag "piggybak/piggybak-application"
        eos

        insert_into_file 'app/views/layouts/application.html.haml', jit_code_block, :after => '= javascript_include_tag "application"'
      else
        jit_code_block = <<-eos
            \n  <% if "\#{params[:controller]}#\#\{params[:action]\}" == "piggybak/orders#submit" -%>
        <%= javascript_include_tag "piggybak/piggybak-application" %>\n  <% end -%>
        eos
      
        insert_into_file 'app/views/layouts/application.html.erb', jit_code_block, :after => "<%= javascript_include_tag \"application\" %>"
      end
    end
create_user_class() click to toggle source
# File lib/piggybak/cli.rb, line 58
def create_user_class
  run('rails generate model User')      
end
install() click to toggle source
# File lib/piggybak/cli.rb, line 8
def install
  if already_installed?
    update
  else        
    run('rake piggybak:install:migrations')
    run('rake db:migrate')   
    run('rails generate devise:install')
    run('rails generate devise User') 
    run('rake db:migrate')      
    run('rails g rails_admin:install')
    run('rake db:migrate')      
    mount_piggybak_route
    add_javascript_include_tag
    welcome
  end
end
mount_piggybak_route() click to toggle source
# File lib/piggybak/cli.rb, line 34
def mount_piggybak_route
  insert_into_file "config/routes.rb", "\n  mount Piggybak::Engine => '/checkout', :as => 'piggybak'\n", :after => "Application.routes.draw do\n"
end
say_upgraded() click to toggle source
# File lib/piggybak/cli.rb, line 80
def say_upgraded
  say ""
  say ""
  say ""
  say "******************************************************************"
  say "******************************************************************"
  say "Piggybak Successfully Upgraded!"
  say "******************************************************************"
end
update() click to toggle source
# File lib/piggybak/cli.rb, line 26
def update
  say "Piggybak install detected"
  say "Updating current Piggybak install"
  run('rake piggybak:install:migrations')
  say_upgraded
end
welcome() click to toggle source
# File lib/piggybak/cli.rb, line 63
def welcome
  say ""
  say ""
  say ""
  say "******************************************************************"
  say "******************************************************************"
  say "Piggybak Successfully Installed!"
  say "******************************************************************"
  say ""
  say "Add acts_as_sellable to any model that will be a sellable item."
  say ""
  say "class Product < ActiveRecord::Base"
  say "  acts_as_sellable"
  say "end"
end

Private Instance Methods

already_installed?() click to toggle source
# File lib/piggybak/cli.rb, line 92
def already_installed?
  open('config/routes.rb') { |f| f.grep(/Piggybak\:\:Engine/) }.any?
end