Class: MetaModel::Command::Init

Inherits:
MetaModel::Command show all
Defined in:
lib/metamodel/command/init.rb

Constant Summary

Constants inherited from MetaModel::Command

METAMODEL_COMMAND_ALIAS, METAMODEL_OPTION_ALIAS

Instance Method Summary collapse

Methods inherited from MetaModel::Command

#installer_for_config, options, run

Methods included from MetaModel::Config::Mixin

#config

Constructor Details

#initialize(argv) ⇒ Init

Returns a new instance of Init.



11
12
13
14
15
# File 'lib/metamodel/command/init.rb', line 11

def initialize(argv)
  @metafile_path = Pathname.pwd + 'Metafile'
  @project_path = argv.shift_argument
  super
end

Instance Method Details

#runObject



22
23
24
25
26
27
28
29
30
31
# File 'lib/metamodel/command/init.rb', line 22

def run
  UI.section "Initialing MetaModel project" do
    UI.section "Creating `Metafile` for MetaModel" do
      FileUtils.touch(@metafile_path)
      @metafile_path.open('w') do |source|
        source.puts "metamodel_version '#{VERSION}'\n\n"
      end
    end
  end
end

#validate!Object

Raises:



17
18
19
20
# File 'lib/metamodel/command/init.rb', line 17

def validate!
  super
  raise Informative, 'Existing Metafile in directory' unless config.metafile_in_dir(Pathname.pwd).nil?
end