timewizard 0.3.0.pre.alpha.pre.57 → 0.3.0.pre.alpha.pre.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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