timewizard 0.3.0.pre.alpha.pre.57 → 0.3.0.pre.alpha.pre.58
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/gemspec.yml +1 -1
- data/lib/timewizard/version.rb +2 -0
- data/lib/timewizard/versioner/android.rb +10 -0
- data/lib/timewizard/versioner/apple.rb +27 -9
- data/resources/apple/TestApp/TestApp/Info.plist +2 -2
- data/spec/versioner/android_spec.rb +13 -16
- data/spec/versioner/apple_spec.rb +157 -0
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MmEyNTI1ZjVlNDIyMDc2ZGVmMGY5MmIyNjQyZTE2YTQ1M2FlZDliMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjczYWM0NDc5Yzg1NWQ2YWNlZmUwZjU0MTBjYTA2YzE5OGZlZDhiOQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzNiNGRhMWE2NDBhMzU3NzlkY2YwMDk1Mzg5N2VhNjgxZWE5OTA4NGM4NWZi
|
10
|
+
YWVkYjBhYzBmNGQxZWZlN2ZmOWM0M2E5MjBkYzcxMTljMGJjZmU3MTdiNjc0
|
11
|
+
ZDc4ZDZhNTg2YTUyZDk5ZTE2Nzc4MGY5MzFlYjllN2NjZDg0ZmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YWFiMWI0MWFlY2ExM2VhMjNiOWM5NzhiOGYxYmRmOTk2ZjZlZjliZjVkYWE1
|
14
|
+
ODI5YjM1YWVmYmI4OTVjYjdlYzBjODhkZDkyNzQxNjk4NzdjM2E0NjI2OWQ4
|
15
|
+
OTg3Y2RlZjdjNGRhZGJhNWU1ZGVkZjg0Zjk4MThjNTdiYTVkMDI=
|
data/gemspec.yml
CHANGED
data/lib/timewizard/version.rb
CHANGED
@@ -7,6 +7,16 @@ module Timewizard
|
|
7
7
|
# @since 0.1.0
|
8
8
|
class Android < Timewizard::Versioner::Base
|
9
9
|
|
10
|
+
#
|
11
|
+
# Public functions (inherited from parent)
|
12
|
+
#
|
13
|
+
public
|
14
|
+
|
15
|
+
def initialize(path_to_file)
|
16
|
+
super path_to_file
|
17
|
+
@file_contents = ''
|
18
|
+
end
|
19
|
+
|
10
20
|
#
|
11
21
|
# Private functions (implementation specific)
|
12
22
|
#
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'cfpropertylist'
|
2
2
|
require 'timewizard/versioner'
|
3
3
|
|
4
4
|
module Timewizard
|
@@ -8,6 +8,16 @@ module Timewizard
|
|
8
8
|
# @since 0.2.3
|
9
9
|
class Apple < Timewizard::Versioner::Base
|
10
10
|
|
11
|
+
#
|
12
|
+
# Public functions (inherited from parent)
|
13
|
+
#
|
14
|
+
public
|
15
|
+
|
16
|
+
def initialize(path_to_file)
|
17
|
+
super path_to_file
|
18
|
+
@file_contents = CFPropertyList::List.new
|
19
|
+
end
|
20
|
+
|
11
21
|
#
|
12
22
|
# Private functions (implementation specific)
|
13
23
|
#
|
@@ -18,10 +28,10 @@ module Timewizard
|
|
18
28
|
raise 'file is nil and cannot be read'
|
19
29
|
end
|
20
30
|
|
21
|
-
@file_contents =
|
31
|
+
@file_contents = CFPropertyList::List.new
|
22
32
|
|
23
33
|
if File.exist?(@file)
|
24
|
-
@file_contents
|
34
|
+
@file_contents.load(@file)
|
25
35
|
end
|
26
36
|
|
27
37
|
@file_contents
|
@@ -34,7 +44,7 @@ module Timewizard
|
|
34
44
|
if @file_contents.nil?
|
35
45
|
raise 'file_contents is nil and cannot be written'
|
36
46
|
end
|
37
|
-
|
47
|
+
@file_contents.save(@file)
|
38
48
|
end
|
39
49
|
|
40
50
|
def find_build_and_version_numbers
|
@@ -42,8 +52,10 @@ module Timewizard
|
|
42
52
|
read_file
|
43
53
|
end
|
44
54
|
|
45
|
-
|
46
|
-
|
55
|
+
data = CFPropertyList.native_types(@file_contents.value)
|
56
|
+
|
57
|
+
build_num = Timewizard::Utils::Wizardry.only_version(data['CFBundleVersion'])
|
58
|
+
version_num = Timewizard::Utils::Wizardry.only_version(data['CFBundleShortVersionString'])
|
47
59
|
|
48
60
|
parsed_build_num = Versionomy.parse(build_num, Versionomy::Format.get('rubygems'))
|
49
61
|
parsed_version_num = Versionomy.parse(version_num, Versionomy::Format.get('rubygems'))
|
@@ -63,17 +75,23 @@ module Timewizard
|
|
63
75
|
if @new_build_number.nil?
|
64
76
|
read_build_numbers
|
65
77
|
end
|
66
|
-
|
78
|
+
data = CFPropertyList.native_types(@file_contents.value)
|
79
|
+
data['CFBundleVersion'] = @new_build_number.to_s
|
80
|
+
|
81
|
+
@file_contents.value = CFPropertyList.guess(data)
|
67
82
|
end
|
68
83
|
|
69
84
|
def change_version_numbers
|
70
85
|
if @file_contents.nil?
|
71
86
|
read_file
|
72
87
|
end
|
73
|
-
if @
|
88
|
+
if @new_version_number.nil?
|
74
89
|
read_build_numbers
|
75
90
|
end
|
76
|
-
|
91
|
+
data = CFPropertyList.native_types(@file_contents.value)
|
92
|
+
data['CFBundleShortVersionString'] = @new_version_number.to_s
|
93
|
+
|
94
|
+
@file_contents.value = CFPropertyList.guess(data)
|
77
95
|
end
|
78
96
|
|
79
97
|
end
|
@@ -15,11 +15,11 @@
|
|
15
15
|
<key>CFBundlePackageType</key>
|
16
16
|
<string>APPL</string>
|
17
17
|
<key>CFBundleShortVersionString</key>
|
18
|
-
<string>
|
18
|
+
<string>0.0.1</string>
|
19
19
|
<key>CFBundleSignature</key>
|
20
20
|
<string>????</string>
|
21
21
|
<key>CFBundleVersion</key>
|
22
|
-
<string>
|
22
|
+
<string>200</string>
|
23
23
|
<key>LSRequiresIPhoneOS</key>
|
24
24
|
<true/>
|
25
25
|
<key>UILaunchStoryboardName</key>
|
@@ -2,6 +2,18 @@ require 'timewizard/versioner/android'
|
|
2
2
|
|
3
3
|
RSpec.describe 'Timewizard::Versioner::Android' do
|
4
4
|
|
5
|
+
before(:example) do
|
6
|
+
pwd = Dir.pwd.to_s
|
7
|
+
|
8
|
+
FileUtils.rm_rf Dir["#{pwd}/tmp"]
|
9
|
+
FileUtils.rm_rf Dir["#{pwd}/pkg"]
|
10
|
+
|
11
|
+
pwd = Dir.pwd.to_s
|
12
|
+
FileUtils.cp_r("#{pwd}/resources/.", "#{pwd}/tmp")
|
13
|
+
|
14
|
+
@versioner = Timewizard::Versioner::Android.new "#{pwd}/tmp/android/AndroidManifest.xml"
|
15
|
+
end
|
16
|
+
|
5
17
|
context '.new' do
|
6
18
|
it 'should raise error if arg is nil' do
|
7
19
|
expect { Timewizard::Versioner::Android.new nil }.to raise_error("passed in file cannot be nil")
|
@@ -12,14 +24,9 @@ RSpec.describe 'Timewizard::Versioner::Android' do
|
|
12
24
|
end
|
13
25
|
end
|
14
26
|
|
15
|
-
before(:example) do
|
16
|
-
@directory = Dir.pwd.to_s
|
17
|
-
@versioner = Timewizard::Versioner::Android.new "#{@directory}/tmp/android/AndroidManifest.xml"
|
18
|
-
end
|
19
|
-
|
20
27
|
context '#file' do
|
21
28
|
it 'should be an AndroidManifest.xml' do
|
22
|
-
expect(@versioner.file).to eq("#{
|
29
|
+
expect(@versioner.file).to eq("#{Dir.pwd.to_s}/tmp/android/AndroidManifest.xml")
|
23
30
|
end
|
24
31
|
end
|
25
32
|
|
@@ -98,11 +105,6 @@ RSpec.describe 'Timewizard::Versioner::Android' do
|
|
98
105
|
@versioner.read_build_numbers
|
99
106
|
end
|
100
107
|
|
101
|
-
after(:example) do
|
102
|
-
@versioner.new_build_number = '200'
|
103
|
-
@versioner.write_build_numbers
|
104
|
-
end
|
105
|
-
|
106
108
|
it 'should not raise an error' do
|
107
109
|
expect { @versioner.write_version_numbers }.to_not raise_error
|
108
110
|
end
|
@@ -130,11 +132,6 @@ RSpec.describe 'Timewizard::Versioner::Android' do
|
|
130
132
|
@versioner.read_version_numbers
|
131
133
|
end
|
132
134
|
|
133
|
-
after(:example) do
|
134
|
-
@versioner.new_version_number = '0.0.1'
|
135
|
-
@versioner.write_version_numbers
|
136
|
-
end
|
137
|
-
|
138
135
|
it 'should not raise an error' do
|
139
136
|
expect { @versioner.write_version_numbers }.to_not raise_error
|
140
137
|
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'timewizard/versioner/apple'
|
2
|
+
|
3
|
+
RSpec.describe 'Timewizard::Versioner::Apple' do
|
4
|
+
|
5
|
+
context '.new' do
|
6
|
+
it 'should raise error if arg is nil' do
|
7
|
+
expect { Timewizard::Versioner::Apple.new nil }.to raise_error("passed in file cannot be nil")
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should not raise error if arg is not nil' do
|
11
|
+
expect { Timewizard::Versioner::Apple.new '' }.not_to raise_error
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
before(:example) do
|
16
|
+
pwd = Dir.pwd.to_s
|
17
|
+
@directory = pwd
|
18
|
+
|
19
|
+
FileUtils.rm_rf Dir["#{pwd}/tmp"]
|
20
|
+
|
21
|
+
FileUtils.cp_r("#{pwd}/resources/.", "#{pwd}/tmp")
|
22
|
+
|
23
|
+
@versioner = Timewizard::Versioner::Apple.new "#{pwd}/tmp/apple/TestApp/TestApp/Info.plist"
|
24
|
+
end
|
25
|
+
|
26
|
+
context '#file' do
|
27
|
+
it 'should be an Info.plist' do
|
28
|
+
expect(@versioner.file).to eq("#{@directory}/tmp/apple/TestApp/TestApp/Info.plist")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context '#old_build_number' do
|
33
|
+
it 'should be nil' do
|
34
|
+
expect(@versioner.old_build_number).to be_nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context '#old_version_number' do
|
39
|
+
it 'should be nil' do
|
40
|
+
expect(@versioner.old_version_number).to be_nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context '#new_build_number' do
|
45
|
+
it 'should be nil' do
|
46
|
+
expect(@versioner.new_build_number).to be_nil
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context '#new_build_number=' do
|
51
|
+
it 'should change instance variable' do
|
52
|
+
@versioner.new_build_number = '1'
|
53
|
+
expect(@versioner.new_build_number).not_to be_nil
|
54
|
+
@versioner.new_build_number = nil
|
55
|
+
expect(@versioner.new_build_number).to be_nil
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context '#new_version_number' do
|
60
|
+
it 'should be nil' do
|
61
|
+
expect(@versioner.new_version_number).to be_nil
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context '#new_version_number=' do
|
66
|
+
it 'should change instance variable' do
|
67
|
+
@versioner.new_version_number = '1'
|
68
|
+
expect(@versioner.new_version_number).not_to be_nil
|
69
|
+
@versioner.new_version_number = nil
|
70
|
+
expect(@versioner.new_version_number).to be_nil
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context '#read_build_numbers' do
|
75
|
+
it 'should not raise an error' do
|
76
|
+
expect { @versioner.read_build_numbers }.to_not raise_error
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should change instance variables' do
|
80
|
+
expect(@versioner.old_build_number).to be_nil
|
81
|
+
expect(@versioner.new_build_number).to be_nil
|
82
|
+
@versioner.read_build_numbers
|
83
|
+
expect(@versioner.old_build_number).to eq('200')
|
84
|
+
expect(@versioner.new_build_number).to eq('201')
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context '#read_version_numbers' do
|
89
|
+
it 'should not raise an error' do
|
90
|
+
expect { @versioner.read_version_numbers }.to_not raise_error
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should change instance variables' do
|
94
|
+
expect(@versioner.old_version_number).to be_nil
|
95
|
+
expect(@versioner.new_version_number).to be_nil
|
96
|
+
@versioner.read_version_numbers
|
97
|
+
expect(@versioner.old_version_number).to eq('0.0.1')
|
98
|
+
expect(@versioner.new_version_number).to eq('0.0.1')
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context '#write_build_numbers' do
|
103
|
+
before(:example) do
|
104
|
+
@versioner.read_build_numbers
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should not raise an error' do
|
108
|
+
expect { @versioner.write_version_numbers }.to_not raise_error
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should not change instance variables' do
|
112
|
+
expect(@versioner.old_build_number).to eq('200')
|
113
|
+
expect(@versioner.new_build_number).to eq('201')
|
114
|
+
@versioner.write_build_numbers
|
115
|
+
expect(@versioner.old_build_number).to eq('200')
|
116
|
+
expect(@versioner.new_build_number).to eq('201')
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'should change contents of parsed file' do
|
120
|
+
expect(@versioner.old_build_number).to eq('200')
|
121
|
+
expect(@versioner.new_build_number).to eq('201')
|
122
|
+
@versioner.write_build_numbers
|
123
|
+
@versioner.read_build_numbers
|
124
|
+
expect(@versioner.old_build_number).to eq('201')
|
125
|
+
expect(@versioner.new_build_number).to eq('202')
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context '#write_version_numbers' do
|
130
|
+
before(:example) do
|
131
|
+
@versioner.read_version_numbers
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should not raise an error' do
|
135
|
+
expect { @versioner.write_version_numbers }.to_not raise_error
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'should not change instance variables' do
|
139
|
+
expect(@versioner.old_version_number).to eq('0.0.1')
|
140
|
+
expect(@versioner.new_version_number).to eq('0.0.1')
|
141
|
+
@versioner.write_version_numbers
|
142
|
+
expect(@versioner.old_version_number).to eq('0.0.1')
|
143
|
+
expect(@versioner.new_version_number).to eq('0.0.1')
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'should change contents of parsed file' do
|
147
|
+
expect(@versioner.old_version_number).to eq('0.0.1')
|
148
|
+
expect(@versioner.new_version_number).to eq('0.0.1')
|
149
|
+
@versioner.new_version_number = '0.0.2'
|
150
|
+
@versioner.write_version_numbers
|
151
|
+
@versioner.read_version_numbers
|
152
|
+
expect(@versioner.old_version_number).to eq('0.0.2')
|
153
|
+
expect(@versioner.new_version_number).to eq('0.0.2')
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timewizard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.0.pre.alpha.pre.
|
4
|
+
version: 0.3.0.pre.alpha.pre.58
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Harrah
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: versionomy
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: CFPropertyList
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- spec/timewizard_spec.rb
|
172
172
|
- spec/utils/wizardry_spec.rb
|
173
173
|
- spec/versioner/android_spec.rb
|
174
|
+
- spec/versioner/apple_spec.rb
|
174
175
|
- spec/versioner_spec.rb
|
175
176
|
- timewizard.gemspec
|
176
177
|
homepage: https://github.com/Nunnery/timewizard
|