Class: MetaModel::Command::Install

Inherits:
MetaModel::Command show all
Includes:
MetaModel::Config::Mixin
Defined in:
lib/metamodel/command/install.rb

Constant Summary

Constants inherited from MetaModel::Command

METAMODEL_COMMAND_ALIAS, METAMODEL_OPTION_ALIAS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MetaModel::Config::Mixin

#config

Methods inherited from MetaModel::Command

#installer_for_config, options, run

Constructor Details

#initialize(argv) ⇒ Install

Returns a new instance of Install.



15
16
17
18
# File 'lib/metamodel/command/install.rb', line 15

def initialize(argv)
  validate!
  super
end

Instance Attribute Details

#modelsObject

Returns the value of attribute models.



13
14
15
# File 'lib/metamodel/command/install.rb', line 13

def models
  @models
end

Instance Method Details

#clone_projectObject



33
34
35
36
37
38
39
40
41
42
# File 'lib/metamodel/command/install.rb', line 33

def clone_project
  if File.exist? config.metamodel_xcode_project
    UI.message "Existing project `#{config.metamodel_xcode_project}`"
  else
    UI.section "Cloning MetaModel project into `./metamodel` folder" do
      Git.clone(config.metamodel_template_uri, 'metamodel', :depth => 1)
      UI.message "Using `#{config.metamodel_xcode_project}` to build module"
    end
  end
end

#prepareObject



29
30
31
# File 'lib/metamodel/command/install.rb', line 29

def prepare
  clone_project
end

#runObject



20
21
22
23
24
25
26
27
# File 'lib/metamodel/command/install.rb', line 20

def run
  UI.section "Building MetaModel.framework in project" do
    prepare
    installer = installer_for_config
    installer.install!
  end
  UI.notice "Please drag MetaModel.framework into Embedded Binaries phrase.\n"
end

#validate!Object

Raises:



44
45
46
47
# File 'lib/metamodel/command/install.rb', line 44

def validate!
  # super
  raise Informative, 'No Metafile in current directory' unless config.metafile_in_dir(Pathname.pwd)
end