Class: Piggybak::CLI

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/piggybak/cli.rb

Instance Method Summary collapse

Instance Method Details

#add_javascript_include_tagObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/piggybak/cli.rb', line 55

def add_javascript_include_tag
  if File.exist?('app/views/layouts/application.html.haml')
    jit_code_block = "        \\n    - if \"\\\#{params[:controller]}#\\#\\{params[:action]\\}\" == \"piggybak/orders#submit\"\n    = javascript_include_tag \"piggybak/piggybak-application\"\n    eos\n\n    insert_into_file 'app/views/layouts/application.html.haml', jit_code_block, :after => '= javascript_include_tag \"application\"'\n  else\n    jit_code_block = <<-eos\n        \\n  <% if \"\\\#{params[:controller]}#\\#\\{params[:action]\\}\" == \"piggybak/orders#submit\" -%>\n    <%= javascript_include_tag \"piggybak/piggybak-application\" %>\\n  <% end -%>\n    eos\n  \n    insert_into_file 'app/views/layouts/application.html.erb', jit_code_block, :after => \"<%= javascript_include_tag \\\"application\\\" %>\"\n  end\nend\n"

#create_user_classObject



74
75
76
# File 'lib/piggybak/cli.rb', line 74

def create_user_class
  run('rails generate model User')      
end

#inject_deviseObject



37
38
39
40
# File 'lib/piggybak/cli.rb', line 37

def inject_devise
  puts 'add reference to devise in GEMFILE'
  insert_into_file "Gemfile", "gem 'devise'\n", :after => "source 'https://rubygems.org'\n"
end

#inject_rails_adminObject



44
45
46
47
# File 'lib/piggybak/cli.rb', line 44

def inject_rails_admin
  puts 'add reference to rails_admin in GEMFILE'
  insert_into_file "Gemfile", "gem 'rails_admin'\n", :after => "gem 'devise'\n"
end

#installObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/piggybak/cli.rb', line 8

def install
  if already_installed?
    update
  else        
    inject_devise
    inject_rails_admin
    run('bundle install')
    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_routeObject



50
51
52
# File 'lib/piggybak/cli.rb', line 50

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_upgradedObject



96
97
98
99
100
101
102
103
104
# File 'lib/piggybak/cli.rb', line 96

def say_upgraded
  say ""
  say ""
  say ""
  say "******************************************************************"
  say "******************************************************************"
  say "Piggybak Successfully Upgraded!"
  say "******************************************************************"
end

#updateObject



29
30
31
32
33
34
# File 'lib/piggybak/cli.rb', line 29

def update
  say "Piggybak install detected"
  say "Updating current Piggybak install"
  run('rake piggybak:install:migrations')
  say_upgraded
end

#welcomeObject



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/piggybak/cli.rb', line 79

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