lib/calatrava/project_script.rb in calatrava-0.6.3 vs lib/calatrava/project_script.rb in calatrava-0.6.4
- old
+ new
@@ -1,8 +1,8 @@
require 'mustache'
require 'yaml'
-require 'xcodeproj'
+require 'xcodeproj' if Calatrava.platform == :mac
module Calatrava
class ProjectScript
@@ -11,34 +11,43 @@
def initialize(name, overrides = {})
@name = name
@slug = name.gsub(" ", "_").downcase
@title = @name[0..0].upcase + @name[1..-1]
@options = overrides
+ puts @options
+
+ @platforms = ['ios', 'droid', 'web'].select do |platform|
+ !@options["no-#{platform}"]
+ end
end
def sh(cmd)
$stdout.puts cmd
system(cmd)
end
def dev?
- @options[:is_dev]
+ @options.dev?
end
def create(template)
create_project(template)
create_directory_tree(template)
create_files(template)
- create_android_tree(template)
- create_ios_tree(template)
+ create_android_tree(template) if @platforms.include?('droid')
+ create_ios_tree(template) if Calatrava.platform == :mac && @platforms.include?('ios')
+
+ ['droid', 'ios', 'web'].each do |app|
+ FileUtils.rm_rf(File.join(@name, app)) unless @platforms.include?(app)
+ end
end
def create_project(template)
FileUtils.mkdir_p @name
File.open(File.join(@name, 'calatrava.yml'), "w+") do |f|
- f.print({:project_name => @name}.to_yaml)
+ f.print({project_name: @name, platforms: @platforms}.to_yaml)
end
end
def target_item(item)
item.gsub("CALATRAVA_TMPL", @name)
@@ -68,10 +77,10 @@
end
end
def create_android_tree(template)
Dir.chdir(File.join(@name, "droid")) do
- sh "android create project --name '#{@slug}' --path '#{@name}' --package com.#{@slug} --target android-10 --activity #{@title}"
+ sh "android create project --name '#{@slug}' --path '#{@name}' --package com.#{@slug} --target android-#{@options[:'android-api']} --activity #{@title}"
Dir.walk("calatrava") do |item|
target_item = item.sub('calatrava', @name)
FileUtils.mkdir_p(target_item) if File.directory? item
FileUtils.cp(item, target_item) if File.file? item