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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDZlMzk4OTdkODc5OGI5YWYzOGZlYzk2NGE5MzZiYTAzMmI5Zjg2NQ==
4
+ MmEyNTI1ZjVlNDIyMDc2ZGVmMGY5MmIyNjQyZTE2YTQ1M2FlZDliMg==
5
5
  data.tar.gz: !binary |-
6
- YjNlMDkxOWFjY2M0NjliYWUzMTdiMGE1YzY3MWQ5ZDNkYTZlMGI0OA==
6
+ ZjczYWM0NDc5Yzg1NWQ2YWNlZmUwZjU0MTBjYTA2YzE5OGZlZDhiOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZmMyMzY4MDc2NzcwODIyN2ZkMWZkZjhjNzY3ZWI5NzAxYmUxMzM0YWFmZDM0
10
- ZWYwMWZiYWJhNDBlM2NjNmExMmI4ZDRhNjliMTA5MzNhMTBhNDJhNjkyNjYw
11
- MzQ0ZTRiYTI5YzIzNmIyZTBiZDc1Y2Y0ZTU1YTVmMzUxZDQyZjI=
9
+ MzNiNGRhMWE2NDBhMzU3NzlkY2YwMDk1Mzg5N2VhNjgxZWE5OTA4NGM4NWZi
10
+ YWVkYjBhYzBmNGQxZWZlN2ZmOWM0M2E5MjBkYzcxMTljMGJjZmU3MTdiNjc0
11
+ ZDc4ZDZhNTg2YTUyZDk5ZTE2Nzc4MGY5MzFlYjllN2NjZDg0ZmY=
12
12
  data.tar.gz: !binary |-
13
- MjZkNGExMzMzYzhmOTM0Y2ZlMWZlNmE5Mjk0NmE3OGZlYWVlYTExMWQ1ZDdk
14
- NzFiYjUwZGY5MTVhMjQzMGEyMGM0MDkxZTFiZTk3YzY5YzEwMzI4YzM5MjMy
15
- YTc3NmU2YzlkZTQxMTllZTVkMWFlOWNhYWFiNTFlN2Q2MWQ2YmY=
13
+ YWFiMWI0MWFlY2ExM2VhMjNiOWM5NzhiOGYxYmRmOTk2ZjZlZjliZjVkYWE1
14
+ ODI5YjM1YWVmYmI4OTVjYjdlYzBjODhkZDkyNzQxNjk4NzdjM2E0NjI2OWQ4
15
+ OTg3Y2RlZjdjNGRhZGJhNWU1ZGVkZjg0Zjk4MThjNTdiYTVkMDI=
data/gemspec.yml CHANGED
@@ -16,4 +16,4 @@ development_dependencies:
16
16
 
17
17
  dependencies:
18
18
  versionomy: ~> 0.4
19
- xcodeproj: ~> 0.26
19
+ CFPropertyList: ~> 2.3
@@ -1,5 +1,7 @@
1
1
  # It's time-y wime-y and wibbly wobbley. Abracadabra.
2
2
  # @author Richard Harrah
3
3
  module Timewizard
4
+ # Version of this gem.
5
+ # @return [String] current version
4
6
  VERSION = "0.3.0"
5
7
  end
@@ -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 'xcodeproj'
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 = Xcodeproj::PlistHelper.read @file
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
- Xcodeproj::PlistHelper.write(@file_contents, @file)
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
- build_num = Timewizard::Utils::Wizardry.only_version(@file_contents["CFBundleVersion"]) || '0'
46
- version_num = Timewizard::Utils::Wizardry.only_version(@file_contents["CFBundleShortVersionString"]) || '0'
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
- @file_contents["CFBundleVersion"] = @new_build_number.to_s || @file_contents["CFBundleVersion"]
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 @new_build_number.nil?
88
+ if @new_version_number.nil?
74
89
  read_build_numbers
75
90
  end
76
- @file_contents["CFBundleShortVersionString"] = @new_build_number.to_s || @file_contents["CFBundleShortVersionString"]
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>1.0</string>
18
+ <string>0.0.1</string>
19
19
  <key>CFBundleSignature</key>
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>1</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("#{@directory}/tmp/android/AndroidManifest.xml")
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.57
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-22 00:00:00.000000000 Z
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: xcodeproj
28
+ name: CFPropertyList
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0.26'
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: '0.26'
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