ios_android_toolbox 0.0.41 → 0.0.42
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 +4 -4
- data/.gitignore +2 -0
- data/Gemfile +3 -1
- data/ios_android_toolbox.gemspec +1 -1
- data/lib/ios_android_toolbox/base.rb +5 -1
- data/lib/ios_android_toolbox/ios.rb +41 -7
- data/lib/ios_android_toolbox/version.rb +1 -1
- data/spec/fixtures/info1.plist +45 -0
- data/spec/ios_version_spec.rb +22 -0
- data/spec/spec_helper.rb +8 -0
- metadata +23 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 387576a63198d50d341779c11bee0e42d586a3e3
|
4
|
+
data.tar.gz: ef990d697317c14c36602c4929b1025206f41683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75dc0fbda087b5920e7e852e602edf30dff6fd297c11beec6b0a8fbd47697ceb703d9ec4dc0a50960d0b55411bdd5b22f89375f973c686007b2a456eee3f39f3
|
7
|
+
data.tar.gz: b4464bf999d73a06844ecfac28ffe2a2b88347e11ad2aa59b1bdafd7caaa529d2adc30db57f2ec89b2068c2f284c01b8e73da50d3d8daf94aa0ff53742d973e8
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source "
|
1
|
+
source "https://rubygems.org"
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in ios_toolbox.gemspec
|
4
4
|
#gemspec
|
@@ -6,3 +6,5 @@ source "http://rubygems.org"
|
|
6
6
|
gem 'git'
|
7
7
|
gem 'plist', :git => 'git://github.com/igorsales/plist.git', :require => 'plist'
|
8
8
|
gem 'nokogiri'
|
9
|
+
gem 'rspec', :group => :development
|
10
|
+
gem 'rspec-expectations', :group => :development
|
data/ios_android_toolbox.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
# specify any dependencies here; for example:
|
22
|
-
|
22
|
+
s.add_development_dependency "rspec"
|
23
23
|
# s.add_runtime_dependency "rest-client"
|
24
24
|
s.add_runtime_dependency 'git'
|
25
25
|
#s.add_runtime_dependency 'plist', :git => 'git://github.com/igorsales/plist.git', :require => 'plist'
|
@@ -63,7 +63,7 @@ module IosAndroidToolbox
|
|
63
63
|
v = $1
|
64
64
|
suffix = $2
|
65
65
|
end
|
66
|
-
v.split(
|
66
|
+
v.split(/[\.]/)
|
67
67
|
end
|
68
68
|
|
69
69
|
def suffix
|
@@ -112,6 +112,10 @@ module IosAndroidToolbox
|
|
112
112
|
raise "Abstract method. Please override"
|
113
113
|
end
|
114
114
|
|
115
|
+
def next_build_number!
|
116
|
+
raise "Abstract method. Please override"
|
117
|
+
end
|
118
|
+
|
115
119
|
def write_to_output_file(output_file)
|
116
120
|
raise "Abstract method. Please override"
|
117
121
|
end
|
@@ -8,8 +8,8 @@ require 'ios_android_toolbox/base'
|
|
8
8
|
module IosAndroidToolbox
|
9
9
|
|
10
10
|
class IosVersionController < VersionController
|
11
|
-
|
12
|
-
|
11
|
+
BUILD_VERSION_KEY = 'CFBundleVersion' # User as Build or release candidate
|
12
|
+
BUNDLE_VERSION_KEY = 'CFBundleShortVersionString' # Use as Version
|
13
13
|
URL_TYPES_KEY = "CFBundleURLTypes"
|
14
14
|
URL_SCHEMES_KEY = "CFBundleURLSchemes"
|
15
15
|
BUNDLE_IDENTIFIER_KEY = "CFBundleIdentifier"
|
@@ -26,7 +26,7 @@ module IosAndroidToolbox
|
|
26
26
|
if File.exists?(filename)
|
27
27
|
begin
|
28
28
|
dict = Plist.parse_xml(filename)
|
29
|
-
candidates.push filename if dict and dict[
|
29
|
+
candidates.push filename if dict and dict[BUNDLE_VERSION_KEY]
|
30
30
|
rescue
|
31
31
|
# Do nothing, just skip the file. Must be in binary format
|
32
32
|
end
|
@@ -46,13 +46,13 @@ module IosAndroidToolbox
|
|
46
46
|
raise "Cannot parse file #{version_file}"
|
47
47
|
end
|
48
48
|
|
49
|
-
raise "File #{version_file} does not have a #{
|
49
|
+
raise "File #{version_file} does not have a #{BUNDLE_VERSION_KEY} key" if @dict[BUNDLE_VERSION_KEY].nil?
|
50
50
|
|
51
51
|
self
|
52
52
|
end
|
53
53
|
|
54
54
|
def version
|
55
|
-
@dict[
|
55
|
+
"#{@dict[BUNDLE_VERSION_KEY]}-#{@dict[BUILD_VERSION_KEY]}"
|
56
56
|
end
|
57
57
|
|
58
58
|
def bundle_id
|
@@ -75,8 +75,42 @@ module IosAndroidToolbox
|
|
75
75
|
bundle_id
|
76
76
|
end
|
77
77
|
|
78
|
-
def
|
79
|
-
@dict[
|
78
|
+
def bundle_version
|
79
|
+
@dict[BUNDLE_VERSION_KEY]
|
80
|
+
end
|
81
|
+
|
82
|
+
def build_number
|
83
|
+
@dict[BUILD_VERSION_KEY]
|
84
|
+
end
|
85
|
+
|
86
|
+
def next_version(inc_idx = @inc_idx)
|
87
|
+
if inc_idx == @inc_idx # trying to increment build number
|
88
|
+
v = bundle_version
|
89
|
+
s = (build_number.to_i + 1).to_s
|
90
|
+
else
|
91
|
+
v = super.next_version(inc_idx)
|
92
|
+
s = build_number
|
93
|
+
end
|
94
|
+
|
95
|
+
"#{v}-#{s}"
|
96
|
+
end
|
97
|
+
|
98
|
+
def next_version!(inc_idx = @inc_idx)
|
99
|
+
if inc_idx < @inc_idx
|
100
|
+
@dict[BUNDLE_VERSION_KEY] = next_version(inc_idx)
|
101
|
+
else
|
102
|
+
@dict[BUILD_VERSION_KEY] = (build_number.to_i + 1).to_s
|
103
|
+
end
|
104
|
+
|
105
|
+
version
|
106
|
+
end
|
107
|
+
|
108
|
+
def next_build_number
|
109
|
+
next_version(@inc_idx)
|
110
|
+
end
|
111
|
+
|
112
|
+
def next_build_number!
|
113
|
+
next_version!(@inc_idx)
|
80
114
|
end
|
81
115
|
|
82
116
|
def url_types
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>English</string>
|
7
|
+
<key>CFBundleDisplayName</key>
|
8
|
+
<string>${PRODUCT_NAME}</string>
|
9
|
+
<key>CFBundleExecutable</key>
|
10
|
+
<string>${EXECUTABLE_NAME}</string>
|
11
|
+
<key>CFBundleIconFile</key>
|
12
|
+
<string>icon_app.png</string>
|
13
|
+
<key>CFBundleIconFiles</key>
|
14
|
+
<array>
|
15
|
+
<string>icon_app.png</string>
|
16
|
+
<string>icon_app@2x.png</string>
|
17
|
+
</array>
|
18
|
+
<key>CFBundleIdentifier</key>
|
19
|
+
<string>com.example.app</string>
|
20
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
21
|
+
<string>6.0</string>
|
22
|
+
<key>CFBundleName</key>
|
23
|
+
<string>${PRODUCT_NAME}</string>
|
24
|
+
<key>CFBundlePackageType</key>
|
25
|
+
<string>APPL</string>
|
26
|
+
<key>CFBundleShortVersionString</key>
|
27
|
+
<string>1.2.3</string>
|
28
|
+
<key>CFBundleSignature</key>
|
29
|
+
<string>????</string>
|
30
|
+
<key>CFBundleURLTypes</key>
|
31
|
+
<array/>
|
32
|
+
<key>CFBundleVersion</key>
|
33
|
+
<string>4</string>
|
34
|
+
<key>LSRequiresIPhoneOS</key>
|
35
|
+
<true/>
|
36
|
+
<key>NSLocationAlwaysUsageDescription</key>
|
37
|
+
<string></string>
|
38
|
+
<key>NSLocationWhenInUseUsageDescription</key>
|
39
|
+
<string></string>
|
40
|
+
<key>NSMainNibFile</key>
|
41
|
+
<string>MainWindow</string>
|
42
|
+
<key>UIBackgroundModes</key>
|
43
|
+
<array/>
|
44
|
+
</dict>
|
45
|
+
</plist>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include IosAndroidToolbox
|
4
|
+
|
5
|
+
describe 'iOS versioning', :type => :model do
|
6
|
+
before :all do
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
before :each do
|
11
|
+
@controller = IosVersionController.new(File.join(File.dirname(__FILE__),'fixtures','info1.plist'))
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should read the right version number' do
|
15
|
+
expect(@controller.version).to eq '1.2.3-4'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'increments the build number on next version' do
|
19
|
+
expect(@controller.next_build_number!).to eq '1.2.3-5'
|
20
|
+
expect(@controller.version).to eq '1.2.3-5'
|
21
|
+
end
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ios_android_toolbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Sales
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: git
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,6 +96,9 @@ files:
|
|
82
96
|
- lib/ios_android_toolbox/ios.rb
|
83
97
|
- lib/ios_android_toolbox/ios_prov_profile.rb
|
84
98
|
- lib/ios_android_toolbox/version.rb
|
99
|
+
- spec/fixtures/info1.plist
|
100
|
+
- spec/ios_version_spec.rb
|
101
|
+
- spec/spec_helper.rb
|
85
102
|
homepage: ''
|
86
103
|
licenses: []
|
87
104
|
metadata: {}
|
@@ -105,4 +122,7 @@ rubygems_version: 2.0.14
|
|
105
122
|
signing_key:
|
106
123
|
specification_version: 4
|
107
124
|
summary: Toolbox to manipulate iOS/Android projects
|
108
|
-
test_files:
|
125
|
+
test_files:
|
126
|
+
- spec/fixtures/info1.plist
|
127
|
+
- spec/ios_version_spec.rb
|
128
|
+
- spec/spec_helper.rb
|