Class: Timewizard::Versioner::Android
- Inherits:
-
Object
- Object
- Timewizard::Versioner::Android
- Defined in:
- lib/timewizard/versioner/android.rb
Instance Attribute Summary collapse
-
#dir ⇒ Object
Returns the value of attribute dir.
-
#manifest ⇒ Object
readonly
Returns the value of attribute manifest.
-
#new_version_code ⇒ Object
Returns the value of attribute new_version_code.
-
#new_version_name ⇒ Object
Returns the value of attribute new_version_name.
-
#old_version_code ⇒ Object
readonly
Returns the value of attribute old_version_code.
-
#old_version_name ⇒ Object
readonly
Returns the value of attribute old_version_name.
Instance Method Summary collapse
- #change_manifest(container, version_code_change = '-1', version_name_change = '-1') ⇒ Object
- #change_version_code(parts, change_to = '-1') ⇒ Object
- #change_version_name(parts, change_to = '-1') ⇒ Object
- #find_manifest ⇒ Object
- #find_version_code(container) ⇒ Object
- #find_version_code_and_name(container) ⇒ Object
- #find_version_name(container) ⇒ Object
-
#initialize(dir) ⇒ Android
constructor
A new instance of Android.
- #open_manifest ⇒ Object
- #update(change_to = '-1') ⇒ Object
- #write_manifest(container) ⇒ Object
Constructor Details
#initialize(dir) ⇒ Android
Returns a new instance of Android.
13 14 15 16 |
# File 'lib/timewizard/versioner/android.rb', line 13 def initialize(dir) @dir = dir @manifest = nil end |
Instance Attribute Details
#dir ⇒ Object
Returns the value of attribute dir.
6 7 8 |
# File 'lib/timewizard/versioner/android.rb', line 6 def dir @dir end |
#manifest ⇒ Object (readonly)
Returns the value of attribute manifest.
7 8 9 |
# File 'lib/timewizard/versioner/android.rb', line 7 def manifest @manifest end |
#new_version_code ⇒ Object
Returns the value of attribute new_version_code.
10 11 12 |
# File 'lib/timewizard/versioner/android.rb', line 10 def new_version_code @new_version_code end |
#new_version_name ⇒ Object
Returns the value of attribute new_version_name.
11 12 13 |
# File 'lib/timewizard/versioner/android.rb', line 11 def new_version_name @new_version_name end |
#old_version_code ⇒ Object (readonly)
Returns the value of attribute old_version_code.
8 9 10 |
# File 'lib/timewizard/versioner/android.rb', line 8 def old_version_code @old_version_code end |
#old_version_name ⇒ Object (readonly)
Returns the value of attribute old_version_name.
9 10 11 |
# File 'lib/timewizard/versioner/android.rb', line 9 def old_version_name @old_version_name end |
Instance Method Details
#change_manifest(container, version_code_change = '-1', version_name_change = '-1') ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/timewizard/versioner/android.rb', line 111 def change_manifest(container, version_code_change = '-1', version_name_change = '-1') version_code = find_version_code(container) changed_code = change_version_code(version_code, version_code_change) version_name = find_version_name(container) changed_name = change_version_name(version_name, version_name_change) container = container.gsub(version_code, changed_code).gsub(version_name, changed_name) end |
#change_version_code(parts, change_to = '-1') ⇒ Object
89 90 91 92 93 94 95 96 97 98 |
# File 'lib/timewizard/versioner/android.rb', line 89 def change_version_code(parts, change_to = '-1') text = parts version = Timewizard::Utils::Wizardry.to_i(text).to_s if change_to.to_s == '-1' text = text.gsub(version, @new_version_code.to_s) else @new_version_code = change_to.to_i text = text.gsub(version, @new_version_code.to_s) end end |
#change_version_name(parts, change_to = '-1') ⇒ Object
100 101 102 103 104 105 106 107 108 109 |
# File 'lib/timewizard/versioner/android.rb', line 100 def change_version_name(parts, change_to = '-1') text = parts version = Timewizard::Utils::Wizardry.only_version text if change_to.to_s == '-1' text = text.gsub(version, @new_version_name.to_s) else @new_version_name = Timewizard::Utils::Wizardry.only_version change_to text = text.gsub(version, @new_version_name.to_s) end end |
#find_manifest ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/timewizard/versioner/android.rb', line 22 def find_manifest() if File.directory?(@dir) # check if the directory exists unless Dir.exist?(@dir) raise "directory passed in does not exist" end temp_file = nil # check if the directory contains an AndroidManifest.xml Dir.foreach(@dir.to_s) { |x| if x == "AndroidManifest.xml" temp_file = x end } if temp_file.nil? raise "there is no AndroidManifest.xml in the given directory" end @manifest = File.(temp_file, @dir) else unless File.exist?(@dir) raise "file passed in does not exist" end unless @dir == "AndroidManifest.xml" raise "file must be an AndroidManifest.xml" end temp_file = File.absolute_path(@dir) @manifest = temp_file end end |
#find_version_code(container) ⇒ Object
64 65 66 67 |
# File 'lib/timewizard/versioner/android.rb', line 64 def find_version_code(container) codes = find_version_code_and_name(container) codes[0] end |
#find_version_code_and_name(container) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/timewizard/versioner/android.rb', line 74 def find_version_code_and_name(container) parts = container.match("android:versionCode=\"(.*)\"") text = parts[0] text_split = text.partition /\s+/ @old_version_code = Timewizard::Utils::Wizardry.to_i text_split[0] @new_version_code = (@old_version_code + 1) @old_version_name = Timewizard::Utils::Wizardry.only_version text_split[2] @new_version_name = @old_version_name codes = [text_split[0], text_split[2]] end |
#find_version_name(container) ⇒ Object
69 70 71 72 |
# File 'lib/timewizard/versioner/android.rb', line 69 def find_version_name(container) codes = find_version_code_and_name(container) codes[1] end |
#open_manifest ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/timewizard/versioner/android.rb', line 50 def open_manifest() if @manifest.nil? find_manifest end file_str = '' if File.exist?(@manifest) file_str = File.open(@manifest, 'r+') { |file| file.read } end file_str end |
#update(change_to = '-1') ⇒ Object
18 19 20 |
# File 'lib/timewizard/versioner/android.rb', line 18 def update(change_to = '-1') write_manifest(change_manifest(open_manifest, change_to)) end |
#write_manifest(container) ⇒ Object
119 120 121 122 123 124 |
# File 'lib/timewizard/versioner/android.rb', line 119 def write_manifest(container) if @manifest.nil? find_manifest end File.open(@manifest, 'w') { |file| file.write(container) } end |