Module: Hanami::Sequel::CLI

Defined in:
lib/hanami/sequel/cli.rb,
lib/hanami/sequel/commands/drop.rb,
lib/hanami/sequel/commands/seed.rb,
lib/hanami/sequel/commands/model.rb,
lib/hanami/sequel/commands/create.rb,
lib/hanami/sequel/commands/install.rb,
lib/hanami/sequel/commands/migrate.rb,
lib/hanami/sequel/commands/migration.rb

Defined Under Namespace

Classes: Create, Drop, ErBinding, Install, Migrate, Migration, Model, Seed

Class Method Summary collapse

Class Method Details

.configObject



26
27
28
# File 'lib/hanami/sequel/cli.rb', line 26

def self.config
  @config ||= Hanami::Sequel::Configuration.new
end

.generate(template, erbinding, destination) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/hanami/sequel/cli.rb', line 46

def self.generate(template, erbinding, destination)
  raise "File #{destination} already exists" if File.exist?(destination)

  dirname = File.dirname(destination)
  FileUtils.mkdir_p(dirname) unless Dir.exist?(dirname)

  content = ERB.new(File.read(template))
               .result(erbinding&.bind)
  File.write(destination, content)

  log_file_handling('create', destination)
end

.hanamircObject



6
7
8
# File 'lib/hanami/sequel/cli.rb', line 6

def self.hanamirc
  @hanamirc ||= Hanamirc.new(Pathname.new('.'))
end

.hanamirc_testObject



10
11
12
# File 'lib/hanami/sequel/cli.rb', line 10

def self.hanamirc_test
  hanamirc.options[:test] || hanamirc.default_options[:test]
end

.lib_pathObject



14
15
16
# File 'lib/hanami/sequel/cli.rb', line 14

def self.lib_path
  @lib_path ||= "lib/#{hanamirc.options[:project]}"
end

.log_file_handling(verb, file) ⇒ Object



59
60
61
# File 'lib/hanami/sequel/cli.rb', line 59

def self.log_file_handling(verb, file)
  puts "%12s  %s" % [verb, file]
end

.models_pathObject



18
19
20
# File 'lib/hanami/sequel/cli.rb', line 18

def self.models_path
  @models_path ||= File.join(lib_path, 'models')
end

.spec_pathObject



22
23
24
# File 'lib/hanami/sequel/cli.rb', line 22

def self.spec_path
  @spec_path ||= "spec/#{hanamirc.options[:project]}"
end

.template(name) ⇒ Object



30
31
32
# File 'lib/hanami/sequel/cli.rb', line 30

def self.template(name)
  File.join(File.dirname(__FILE__), 'templates', "#{name}.erb")
end