Class: IosAndroidToolbox::IosVersionController

Inherits:
VersionController show all
Defined in:
lib/ios_android_toolbox/ios.rb

Constant Summary collapse

VERSION_KEY =
'CFBundleVersion'
SHORT_VERSION_KEY =
'CFBundleShortVersionString'
URL_TYPES_KEY =
"CFBundleURLTypes"
URL_SCHEMES_KEY =
"CFBundleURLSchemes"
BUNDLE_IDENTIFIER_KEY =
"CFBundleIdentifier"

Instance Attribute Summary

Attributes inherited from VersionController

#inc_idx, #max_comps

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from VersionController

#components, find_project_info, #next_version, #suffix, version_file

Constructor Details

#initialize(version_file) ⇒ IosVersionController

Returns a new instance of IosVersionController.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/ios_android_toolbox/ios.rb', line 36

def initialize(version_file)
  super()
  raise "No version file specified" if version_file.nil?

  begin
    @dict = Plist.parse_xml(version_file)
  rescue
    raise "Cannot parse file #{version_file}"
  end

  raise "File #{version_file} does not have a #{VERSION_KEY} key" if @dict[VERSION_KEY].nil?
    
  self
end

Class Method Details

.find_project_info_candidates_for_dir(dir) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ios_android_toolbox/ios.rb', line 17

def self.find_project_info_candidates_for_dir(dir)
  candidates = []
  
  plists=`find "#{dir}" -name "*.plist"`
  
  plists.split("\n").each do |filename|
    if File.exists?(filename)
      begin
        dict = Plist.parse_xml(filename)
        candidates.push filename if dict and dict[VERSION_KEY]
      rescue
        # Do nothing, just skip the file. Must be in binary format
      end
    end
  end

  candidates
end

Instance Method Details

#app_idObject



59
60
61
# File 'lib/ios_android_toolbox/ios.rb', line 59

def app_id
  bundle_id
end

#bundle_idObject



55
56
57
# File 'lib/ios_android_toolbox/ios.rb', line 55

def bundle_id
  @dict[BUNDLE_IDENTIFIER_KEY]
end

#next_version!(inc_idx = nil) ⇒ Object



63
64
65
# File 'lib/ios_android_toolbox/ios.rb', line 63

def next_version!(inc_idx = nil)
  @dict[SHORT_VERSION_KEY] = @dict[VERSION_KEY] = next_version
end

#replace_url_scheme(prev, replace) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/ios_android_toolbox/ios.rb', line 78

def replace_url_scheme(prev, replace)
  url_types.each do |url_type_dict|
    schemes = url_type_dict[URL_SCHEMES_KEY]
    schemes.each_index do |i|
      schemes[i] = replace if prev == schemes[i]
    end
  end
end

#url_schemesObject



71
72
73
74
75
76
# File 'lib/ios_android_toolbox/ios.rb', line 71

def url_schemes
  schemes = url_types.collect do |ary|
    ary[URL_SCHEMES_KEY]
  end
  schemes.flatten
end

#url_typesObject



67
68
69
# File 'lib/ios_android_toolbox/ios.rb', line 67

def url_types
  @dict[URL_TYPES_KEY]
end

#versionObject



51
52
53
# File 'lib/ios_android_toolbox/ios.rb', line 51

def version
  @dict[VERSION_KEY]
end

#write_to_output_file(output_file) ⇒ Object



95
96
97
# File 'lib/ios_android_toolbox/ios.rb', line 95

def write_to_output_file(output_file)
    write_to_plist_file(output_file)
end

#write_to_plist_file(output_file) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/ios_android_toolbox/ios.rb', line 87

def write_to_plist_file(output_file)
  if output_file == '-'
    puts @dict.to_plist
  else
    @dict.save_plist output_file
  end
end