Class: Wox::BuildEnvironment

Inherits:
Object
  • Object
show all
Defined in:
lib/wox/build_environment.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ BuildEnvironment

Returns a new instance of BuildEnvironment.



14
15
16
17
18
19
20
21
# File 'lib/wox/build_environment.rb', line 14

def initialize options
  options[:info_plist] ||= 'Resources/Info.plist'
  options[:version] ||= Plist::parse_xml(options[:info_plist])['CFBundleVersion']
  options[:build_dir] ||= 'build'
  options[:sdk] ||= 'iphoneos'
  options[:configuration] ||= 'Release'
  @options = options
end

Instance Attribute Details

#build_dirObject (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_sdkObject (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_plistObject (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



51
52
53
54
# File 'lib/wox/build_environment.rb', line 51

def [](name)
  fail "You need to specify :#{name} in Rakefile" unless @options[name]
  @options[name]
end

#apply(options) {|BuildEnvironment.new @options.merge(options)| ... } ⇒ Object

Yields:



23
24
25
# File 'lib/wox/build_environment.rb', line 23

def apply options, &block
  yield BuildEnvironment.new @options.merge(options)
end

#configuration_symObject



56
57
58
# File 'lib/wox/build_environment.rb', line 56

def configuration_sym
  self[:configuration].gsub(' ', '_').downcase
end

#configurationsObject



43
44
45
46
47
48
49
# File 'lib/wox/build_environment.rb', line 43

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

#full_nameObject



35
36
37
# File 'lib/wox/build_environment.rb', line 35

def full_name
  "#{project_name} #{version}"
end

#ipa_fileObject



60
61
62
# File 'lib/wox/build_environment.rb', line 60

def ipa_file
  File.join self[:build_dir], "#{project_name}-#{version}-#{configuration_sym}-#{self[:ipa_name]}.ipa"
end

#project_nameObject



27
28
29
# File 'lib/wox/build_environment.rb', line 27

def project_name
  @project_name ||= xcodebuild_list.first.scan(/project\s\"([^\"]+)/i).flatten.first
end

#sdksObject



39
40
41
# File 'lib/wox/build_environment.rb', line 39

def sdks
  @sdks ||= `xcodebuild -showsdks`.scan(/-sdk (.*?$)/m).flatten
end

#versionObject



31
32
33
# File 'lib/wox/build_environment.rb', line 31

def version
  self[:version]
end