Class: Padrino::Cli::Base

Inherits:
Launcher
  • Object
show all
Defined in:
lib/padrino-core/cli/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Launcher

#chdir, exit_on_failure?, #prepare, #start, #stop

Class Method Details



90
91
92
# File 'lib/padrino-core/cli/base.rb', line 90

def self.banner(task=nil, *args)
  "padrino #{task.name}"
end

Instance Method Details

#capture(stream) ⇒ Object (protected) Also known as: silence



94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/padrino-core/cli/base.rb', line 94

def capture(stream)
  begin
    stream = stream.to_s
    eval "$#{stream} = StringIO.new"
    yield
    result = eval("$#{stream}").string
  ensure
    eval("$#{stream} = #{stream.upcase}")
  end

  result
end

#console(*args) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/padrino-core/cli/base.rb', line 28

def console(*args)
  prepare :console
  require File.expand_path("../../version", __FILE__)
  require File.expand_path('config/boot.rb')
  puts "=> Loading #{Padrino.env} console (Padrino v.#{Padrino.version})"
  require File.expand_path('../console', __FILE__)
  ARGV.clear
  if defined? Pry
    Pry.start
  else
    require 'irb'
    begin
      require "irb/completion"
    rescue LoadError
    end
    IRB.start
  end
end

#generate(*args) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/padrino-core/cli/base.rb', line 49

def generate(*args)
  begin
    # We try to load the vendored padrino-gen if exist
    padrino_gen_path = File.expand_path('../../../../../padrino-gen/lib', __FILE__)
    $:.unshift(padrino_gen_path) if File.directory?(padrino_gen_path) && !$:.include?(padrino_gen_path)
    require 'padrino-core/command'
    require 'padrino-gen/command'
    ARGV.shift
    ARGV << 'help' if ARGV.empty?
    Padrino.bin_gen(*ARGV)
  rescue
    puts "<= You need padrino-gen! Run: gem install padrino-gen"
  end
end

#rake(*args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/padrino-core/cli/base.rb', line 10

def rake(*args)
  prepare :rake
  args << "-T" if options[:list]
  args << options[:list]  unless options[:list].nil? || options[:list].to_s == "list"
  args << "--trace" if options[:trace]
  args << "--verbose" if options[:verbose]
  ARGV.clear
  ARGV.concat(args)
  puts "=> Executing Rake #{ARGV.join(' ')} ..."
  load File.expand_path('../rake.rb', __FILE__)
  Rake.application.init
  Rake.application.instance_variable_set(:@rakefile, __FILE__)
  load File.expand_path('Rakefile')
  Rake.application.top_level
end

#runner(*args) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/padrino-core/cli/base.rb', line 73

def runner(*args)
  prepare :runner

  code_or_file = args.shift
  abort "Please specify code or file" if code_or_file.nil?

  require File.expand_path('config/boot.rb')

  if File.exist?(code_or_file)
    eval(File.read(code_or_file), nil, code_or_file)
  else
    eval(code_or_file)
  end
end

#versionObject



66
67
68
69
# File 'lib/padrino-core/cli/base.rb', line 66

def version
  require 'padrino-core/version'
  puts "Padrino v. #{Padrino.version}"
end