Class: Wox::BuildEnvironment
- Inherits:
-
Object
- Object
- Wox::BuildEnvironment
- Defined in:
- lib/wox/build_environment.rb
Instance Attribute Summary collapse
-
#build_dir ⇒ Object
readonly
Returns the value of attribute build_dir.
-
#default_sdk ⇒ Object
readonly
Returns the value of attribute default_sdk.
-
#info_plist ⇒ Object
readonly
Returns the value of attribute info_plist.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #apply(options) {|BuildEnvironment.new @options.merge(options)| ... } ⇒ Object
- #configurations ⇒ Object
- #has_entry?(name) ⇒ Boolean
-
#initialize(options) ⇒ BuildEnvironment
constructor
A new instance of BuildEnvironment.
- #sdks ⇒ Object
- #targets ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(options) ⇒ BuildEnvironment
Returns a new instance of BuildEnvironment.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/wox/build_environment.rb', line 14 def initialize @options = [:info_plist] ||= 'Resources/Info.plist' [:version] ||= Plist::parse_xml([:info_plist])['CFBundleVersion'] [:project_name] ||= xcodebuild_list.first.scan(/project\s\"([^\"]+)/i).flatten.first [:full_name] ||= "#{self[:project_name]} #{self[:version]}" [:build_dir] ||= 'build' [:sdk] ||= 'iphoneos' [:configuration] ||= 'Release' [:target] ||= targets.first [:app_file] ||= self[:project_name] if [:ipa_name] [:ipa_file] ||= File.join self[:build_dir], [self[:project_name], self[:version], self[:configuration], self[:ipa_name]].join("-") + ".ipa" end end |
Instance Attribute Details
#build_dir ⇒ Object (readonly)
Returns the value of attribute build_dir.
12 13 14 |
# File 'lib/wox/build_environment.rb', line 12 def build_dir @build_dir end |
#default_sdk ⇒ Object (readonly)
Returns the value of attribute default_sdk.
12 13 14 |
# File 'lib/wox/build_environment.rb', line 12 def default_sdk @default_sdk end |
#info_plist ⇒ Object (readonly)
Returns the value of attribute info_plist.
12 13 14 |
# File 'lib/wox/build_environment.rb', line 12 def info_plist @info_plist end |
Instance Method Details
#[](name) ⇒ Object
61 62 63 64 |
# File 'lib/wox/build_environment.rb', line 61 def [](name) fail "You need to specify :#{name} in Rakefile" unless @options[name] @options[name].respond_to?(:call) ? @options[name].call : @options[name] end |
#apply(options) {|BuildEnvironment.new @options.merge(options)| ... } ⇒ Object
33 34 35 |
# File 'lib/wox/build_environment.rb', line 33 def apply , &block yield BuildEnvironment.new @options.merge() end |
#configurations ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/wox/build_environment.rb', line 45 def configurations @configurations ||= begin start_line = xcodebuild_list.find_index{ |l| l =~ /configurations/i } + 1 end_line = xcodebuild_list.find_index{ |l| l =~ /if no/i } - 1 xcodebuild_list.slice start_line...end_line end end |
#has_entry?(name) ⇒ Boolean
66 67 68 |
# File 'lib/wox/build_environment.rb', line 66 def has_entry? name @options[name] end |
#sdks ⇒ Object
41 42 43 |
# File 'lib/wox/build_environment.rb', line 41 def sdks @sdks ||= `xcodebuild -showsdks`.scan(/-sdk (.*?$)/m).flatten end |
#targets ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/wox/build_environment.rb', line 53 def targets @targets ||= begin start_line = xcodebuild_list.find_index{ |l| l =~ /targets/i } + 1 end_line = xcodebuild_list.find_index{ |l| l =~ /configurations/i } - 1 xcodebuild_list.slice(start_line...end_line).map{|l| l.gsub('(Active)','').strip } end end |
#version ⇒ Object
37 38 39 |
# File 'lib/wox/build_environment.rb', line 37 def version self[:version] end |