nixenvironment 0.0.65 → 0.0.66
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/README.md +14 -90
- data/bin/nixenvironment +7 -7
- data/legacy/DeployAPK.py +1 -1
- data/legacy/DeployIPA.sh +1 -1
- data/legacy/GenerateCodeDuplicationReport.sh +0 -1
- data/legacy/LoadBuildEnvVars.sh +8 -0
- data/lib/nixenvironment/archiver.rb +24 -15
- data/lib/nixenvironment/plist.rb +3 -9
- data/lib/nixenvironment/version.rb +1 -1
- data/lib/nixenvironment/xcodebuild.rb +26 -9
- data/nixenvironment.gemspec +3 -3
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad1a673aa13db0acba59cf7cac6ded70f4d93ee0
|
4
|
+
data.tar.gz: 523923efe703537bc3e38873681aa8f14150e140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f458279ff5703405675e9bf0b02284f291f7330c8c9f7045a2a336288614e90e55aa6d8c83237e5589d710f0c3e2314d0e94032b21ae9e4e5a9b00ea0a23ea8
|
7
|
+
data.tar.gz: 571f9d3ab26b5ac02a164298db91f3373dc32935df24ef77807891240d2c491f04ddae320689a1901222574d368dbc9f76f447bb276845459fea602e831f7a78
|
data/README.md
CHANGED
@@ -8,94 +8,9 @@ Nixenvironment installs, updates and manages inner NIX environment stuff to make
|
|
8
8
|
|
9
9
|
## Usage
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
build # Build project for selected configuration and make signed/resigned ipa
|
14
|
-
|
15
|
-
clean # Remove temp files and clean all targets for xcode project
|
16
|
-
|
17
|
-
clean_working_copy # Make working copy clean
|
18
|
-
|
19
|
-
code_coverage # Generate xctest unit tests code coverage report
|
20
|
-
|
21
|
-
code_duplication_report # Generate code duplication report
|
22
|
-
|
23
|
-
deploy # Deploy built artifacts to given server
|
24
|
-
|
25
|
-
help # Display global or [command] help documentation
|
26
|
-
|
27
|
-
svn_tag_from_jenkins # Make tag by finding the first credential in local credential storage
|
28
|
-
|
29
|
-
tag # Make SVN/git/mercurial tag, SCM_USERNAME and SCM_PASSWORD must be defined on calling this target
|
30
|
-
|
31
|
-
test # Build xctest unit tests and run them in simulator
|
32
|
-
|
33
|
-
GLOBAL OPTIONS:
|
34
|
-
|
35
|
-
-h, --help
|
36
|
-
Display help documentation. Default command
|
37
|
-
|
38
|
-
-v, --version
|
39
|
-
Display version information
|
40
|
-
|
41
|
-
-t, --trace
|
42
|
-
Display backtrace when an error occurs
|
43
|
-
|
44
|
-
# Options to override default Config
|
45
|
-
|
46
|
-
--project_to_build VALUE
|
47
|
-
|
48
|
-
--project_target_to_build VALUE
|
49
|
-
|
50
|
-
--project_target_to_test VALUE
|
51
|
-
|
52
|
-
--workspace_to_build VALUE
|
53
|
-
|
54
|
-
--workspace_scheme_to_build VALUE
|
55
|
-
|
56
|
-
--workspace_scheme_to_test VALUE
|
57
|
-
|
58
|
-
--sdk VALUE
|
59
|
-
|
60
|
-
--sdk_for_tests VALUE
|
61
|
-
|
62
|
-
--exclude_pattern_for_code_coverage VALUE
|
63
|
-
|
64
|
-
--exclude_pattern_for_code_duplication VALUE
|
65
|
-
|
66
|
-
--deploy_host VALUE
|
67
|
-
|
68
|
-
--deploy_path VALUE
|
69
|
-
|
70
|
-
--deploy_username VALUE
|
71
|
-
|
72
|
-
--deploy_password VALUE
|
73
|
-
|
74
|
-
--icons_path VALUE
|
75
|
-
|
76
|
-
--xctest_destination_device VALUE
|
77
|
-
|
78
|
-
--configuration_files_path VALUE
|
79
|
-
|
80
|
-
--code_coverage_configuration VALUE
|
81
|
-
|
82
|
-
--code_coverage_output_directory VALUE
|
83
|
-
|
84
|
-
--env_var_prefix VALUE
|
85
|
-
|
86
|
-
--infoplist_path VALUE
|
87
|
-
|
88
|
-
EXAMPLES:
|
11
|
+
To get help in usage please tape this:
|
89
12
|
|
90
|
-
nixenvironment [-h]
|
91
|
-
|
92
|
-
nixenvironment build # Make Debug build and create .ipa file from last built app product by default
|
93
|
-
|
94
|
-
nixenvironment build --config Release --ipa resigned_ipa_for_device
|
95
|
-
|
96
|
-
nixenvironment deploy
|
97
|
-
|
98
|
-
...
|
13
|
+
$ nixenvironment [-h | --help]
|
99
14
|
|
100
15
|
## TODO:
|
101
16
|
|
@@ -111,10 +26,19 @@ Nixenvironment installs, updates and manages inner NIX environment stuff to make
|
|
111
26
|
jenkins ALL=(ALL) NOPASSWD: /usr/bin/bundle
|
112
27
|
jenkins ALL=(ALL) NOPASSWD: /usr/bin/gem
|
113
28
|
|
114
|
-
|
115
|
-
|
29
|
+
To know how to do it correctly please read this:
|
30
|
+
|
31
|
+
http://osxdaily.com/2014/02/06/add-user-sudoers-file-mac/
|
32
|
+
|
33
|
+
and this:
|
34
|
+
|
35
|
+
http://stackoverflow.com/questions/12736351/exit-save-edit-to-sudoers-file-putty-ssh
|
116
36
|
|
117
37
|
Then run this in Execute shell:
|
118
38
|
|
119
39
|
# See credentials for deploy on https://qwiki.nixsolutions.com/display/IPT/Credentials
|
120
|
-
./gemify.sh && bundle update && sudo gem install nixenvironment --verbose
|
40
|
+
$ ./gemify.sh && bundle update && sudo gem install nixenvironment --verbose
|
41
|
+
|
42
|
+
NOTE! CI must be configured with UTF-8 locale! Please see how to implement it for Jenkins:
|
43
|
+
|
44
|
+
https://github.com/KrauseFx/fastlane/issues/227#issuecomment-139449487
|
data/bin/nixenvironment
CHANGED
@@ -505,13 +505,13 @@ def tag_icon(short_version)
|
|
505
505
|
icons_dir = File.join(Dir.pwd, @config_settings[ICONS_PATH_KEY])
|
506
506
|
app_product = File.join(@config_settings[BUILT_PRODUCTS_DIR_KEY], @config_settings[EXECUTABLE_NAME_KEY]) + APP_EXT
|
507
507
|
|
508
|
-
system("#{TAGGER_UTILITY_PATH} --shortVersion
|
509
|
-
--buildNumber
|
510
|
-
--style
|
511
|
-
--maskPath
|
512
|
-
--plist
|
513
|
-
--sourceIconsPath
|
514
|
-
--destinationIconsPath
|
508
|
+
system("#{TAGGER_UTILITY_PATH} --shortVersion='#{version}'\
|
509
|
+
--buildNumber='#{monotonic_revision}'\
|
510
|
+
--style='#{style}'\
|
511
|
+
--maskPath='#{mask_path}'\
|
512
|
+
--plist='#{plist_path}'\
|
513
|
+
--sourceIconsPath='#{icons_dir}'\
|
514
|
+
--destinationIconsPath='#{app_product}'")
|
515
515
|
end
|
516
516
|
|
517
517
|
def backup_info_plists
|
data/legacy/DeployAPK.py
CHANGED
@@ -27,7 +27,7 @@ def build_data(build_path):
|
|
27
27
|
build_name_regex = regex_template % "name"
|
28
28
|
build_version_regex = regex_template % "versionName"
|
29
29
|
|
30
|
-
aapt_path = os.path.join(os.path.dirname(__file__), "
|
30
|
+
aapt_path = os.path.join(os.path.dirname(__file__), "..", "utils/aapt")
|
31
31
|
output = os.popen("'%s' dump badging '%s'" % (aapt_path, build_path)).read()
|
32
32
|
|
33
33
|
build_name = re.match(build_name_regex, output).groups()[0]
|
data/legacy/DeployIPA.sh
CHANGED
@@ -56,7 +56,7 @@ if [[ -f "${IPA_PRODUCT_RESIGNED_APPSTORE}" ]]; then
|
|
56
56
|
echo "DEPLOY_ITUNESCONNECT_USER isn't specified, skipping deliver..."
|
57
57
|
else
|
58
58
|
if [ "${DELIVER_DEPLOY}" == 1 ]; then
|
59
|
-
deliver testflight "${IPA_PRODUCT_RESIGNED_APPSTORE}" -u "${DEPLOY_ITUNESCONNECT_USER}"
|
59
|
+
deliver testflight "${IPA_PRODUCT_RESIGNED_APPSTORE}" -u "${DEPLOY_ITUNESCONNECT_USER}" # --submit_for_review
|
60
60
|
else
|
61
61
|
deliver testflight "${IPA_PRODUCT_RESIGNED_APPSTORE}" -u "${DEPLOY_ITUNESCONNECT_USER}" --skip-deploy
|
62
62
|
fi
|
data/legacy/LoadBuildEnvVars.sh
CHANGED
@@ -82,6 +82,9 @@ echo "BUILT_PRODUCTS_DIR = ${BUILT_PRODUCTS_DIR}"
|
|
82
82
|
echo "OBJECTS_NORMAL_DIR = ${OBJECTS_NORMAL_DIR}"
|
83
83
|
echo "EXECUTABLE_NAME = ${EXECUTABLE_NAME}"
|
84
84
|
echo "APP_PRODUCT = ${APP_PRODUCT}"
|
85
|
+
echo "WATCHKIT_APP_RELATIVE_PRODUCT = ${WATCHKIT_APP_RELATIVE_PRODUCT}"
|
86
|
+
echo "WATCHKIT_EXTENSION_RELATIVE_PRODUCT = ${WATCHKIT_EXTENSION_RELATIVE_PRODUCT}"
|
87
|
+
echo "WIDGET_RELATIVE_PRODUCT = ${WIDGET_RELATIVE_PRODUCT}"
|
85
88
|
echo "IPA_PRODUCT = ${IPA_PRODUCT}"
|
86
89
|
echo "APP_DSYM = ${APP_DSYM}"
|
87
90
|
echo "APP_INFOPLIST_FILE = ${APP_INFOPLIST_FILE}"
|
@@ -91,8 +94,13 @@ echo "CONFIGURATION = ${CONFIGURATION}"
|
|
91
94
|
echo "SDK_NAME = ${SDK_NAME}"
|
92
95
|
echo "IPA_BUNDLE_ID = ${IPA_BUNDLE_ID}"
|
93
96
|
echo "RESIGNED_BUNDLE_ID = ${RESIGNED_BUNDLE_ID}"
|
97
|
+
echo "RESIGNED_WATCHKIT_APP_BUNDLE_ID = ${RESIGNED_WATCHKIT_APP_BUNDLE_ID}"
|
98
|
+
echo "RESIGNED_WATCHKIT_EXTENSION_BUNDLE_ID = ${RESIGNED_WATCHKIT_EXTENSION_BUNDLE_ID}"
|
99
|
+
echo "RESIGNED_WIDGET_BUNDLE_ID = ${RESIGNED_WIDGET_BUNDLE_ID}"
|
94
100
|
echo "RESIGNED_BUNDLE_NAME = ${RESIGNED_BUNDLE_NAME}"
|
95
101
|
echo "RESIGNED_ENTITLEMENTS_PATH = ${RESIGNED_ENTITLEMENTS_PATH}"
|
102
|
+
echo "RESIGNED_WATCHKIT_EXTENSION_ENTITLEMENTS_PATH = ${RESIGNED_WATCHKIT_EXTENSION_ENTITLEMENTS_PATH}"
|
103
|
+
echo "RESIGNED_WIDGET_ENTITLEMENTS_PATH = ${RESIGNED_WIDGET_ENTITLEMENTS_PATH}"
|
96
104
|
echo "NAME_FOR_DEPLOYMENT = ${NAME_FOR_DEPLOYMENT}"
|
97
105
|
|
98
106
|
checkDirExists "${BUILT_PRODUCTS_DIR}" "build products dir"
|
@@ -97,6 +97,7 @@ NAME_FOR_DEPLOYMENT='#{configuration}'
|
|
97
97
|
def make_ipa(profile_type, ipa_product_suffix, ipa_product_key, ipa_bundle_id_key, name_for_deployment_key)
|
98
98
|
is_resigned = ipa_product_suffix.present? && ipa_product_suffix.include?('Resigned')
|
99
99
|
is_appstore = ipa_product_suffix.present? && ipa_product_suffix.include?('Appstore')
|
100
|
+
is_adhoc = ipa_product_suffix.present? && ipa_product_suffix.include?('AdHoc')
|
100
101
|
|
101
102
|
build_env_vars = BuildEnvVarsLoader.load
|
102
103
|
built_products_dir = build_env_vars[BUILT_PRODUCTS_DIR_KEY].presence
|
@@ -138,10 +139,18 @@ NAME_FOR_DEPLOYMENT='#{configuration}'
|
|
138
139
|
|
139
140
|
ipa_bundle_id = is_resigned ? resigned_bundle_id : get_bundle_id(app_product)
|
140
141
|
|
142
|
+
if is_appstore
|
143
|
+
name_for_deployment = 'Appstore'
|
144
|
+
elsif is_adhoc
|
145
|
+
name_for_deployment = 'AdHoc'
|
146
|
+
else
|
147
|
+
name_for_deployment = configuration
|
148
|
+
end
|
149
|
+
|
141
150
|
system("echo \"\n# generated by Nixenvironment:
|
142
151
|
#{ipa_product_key}='#{ipa_product}'
|
143
152
|
#{ipa_bundle_id_key}='#{ipa_bundle_id}'
|
144
|
-
#{name_for_deployment_key}='#{
|
153
|
+
#{name_for_deployment_key}='#{name_for_deployment}'
|
145
154
|
\" >> _last_build_vars.sh")
|
146
155
|
|
147
156
|
FileUtils.rm_rf(temp_app_product) if is_appstore
|
@@ -266,42 +275,42 @@ NAME_FOR_DEPLOYMENT='#{configuration}'
|
|
266
275
|
if watchkit_app_relative_product_path.present?
|
267
276
|
dest_watchkit_app_product_path = File.join(dest_app_product_path, watchkit_app_relative_product_path)
|
268
277
|
_is_watchkit_app_provision_replaced = replace_provision(dest_watchkit_app_product_path, watchkit_app_profile_path)
|
269
|
-
|
278
|
+
_is_watchkit_app_bundle_id_changed = rename_bundle_id(dest_watchkit_app_product_path, new_watchkit_app_bundle_id)
|
270
279
|
end
|
271
280
|
|
272
|
-
is_watchkit_extension_provision_replaced
|
273
|
-
|
281
|
+
is_watchkit_extension_provision_replaced = nil
|
282
|
+
is_watchkit_extension_bundle_id_changed = nil
|
274
283
|
|
275
284
|
dest_watchkit_extension_product_path = nil
|
276
285
|
|
277
286
|
# replace provision, rename bundle_id and bundle_name for watchkit extension
|
278
287
|
if watchkit_extension_relative_product_path.present?
|
279
|
-
dest_watchkit_extension_product_path
|
280
|
-
is_watchkit_extension_provision_replaced
|
281
|
-
|
288
|
+
dest_watchkit_extension_product_path = File.join(dest_app_product_path, watchkit_extension_relative_product_path)
|
289
|
+
is_watchkit_extension_provision_replaced = replace_provision(dest_watchkit_extension_product_path, watchkit_extension_profile_path)
|
290
|
+
is_watchkit_extension_bundle_id_changed = rename_bundle_id(dest_watchkit_extension_product_path, new_watchkit_extension_bundle_id)
|
282
291
|
end
|
283
292
|
|
284
|
-
is_widget_provision_replaced
|
285
|
-
|
293
|
+
is_widget_provision_replaced = nil
|
294
|
+
is_widget_bundle_idchanged = nil
|
286
295
|
|
287
296
|
dest_widget_product_path = nil
|
288
297
|
|
289
298
|
# replace provision, rename bundle_id and bundle_name for widget
|
290
299
|
if widget_relative_product_path.present?
|
291
|
-
dest_widget_product_path
|
292
|
-
is_widget_provision_replaced
|
293
|
-
|
300
|
+
dest_widget_product_path = File.join(dest_app_product_path, widget_relative_product_path)
|
301
|
+
is_widget_provision_replaced = replace_provision(dest_widget_product_path, widget_profile_path)
|
302
|
+
is_widget_bundle_idchanged = rename_bundle_id(dest_widget_product_path, new_widget_bundle_id)
|
294
303
|
end
|
295
304
|
|
296
305
|
# codesign watchkit extension
|
297
306
|
if watchkit_extension_relative_product_path.present?
|
298
307
|
codesign(watchkit_extension_identity_name, new_watchkit_extension_entitlements_path, is_watchkit_extension_provision_replaced,
|
299
|
-
|
308
|
+
is_watchkit_extension_bundle_id_changed, dest_watchkit_extension_product_path, watchkit_extension_profile_path, new_watchkit_extension_bundle_id)
|
300
309
|
end
|
301
310
|
|
302
311
|
# codesign widget
|
303
312
|
if widget_relative_product_path.present?
|
304
|
-
codesign(widget_identity_name, new_widget_entitlements_path, is_widget_provision_replaced,
|
313
|
+
codesign(widget_identity_name, new_widget_entitlements_path, is_widget_provision_replaced, is_widget_bundle_idchanged,
|
305
314
|
dest_widget_product_path, widget_profile_path, new_widget_bundle_id)
|
306
315
|
end
|
307
316
|
|
@@ -318,7 +327,7 @@ NAME_FOR_DEPLOYMENT='#{configuration}'
|
|
318
327
|
end
|
319
328
|
|
320
329
|
def codesign(identity_name, new_entitlements_path, is_provision_replaced, is_bundle_id_or_name_changed, dest_app_product_path, profile_path, new_bundle_id)
|
321
|
-
codesign_args = ['/usr/bin/codesign', '--force', '--sign', "'#{identity_name}'"]
|
330
|
+
codesign_args = ['/usr/bin/codesign', '--force', '--sign', '--deep', "'#{identity_name}'"]
|
322
331
|
|
323
332
|
# now let's figure out the entitlements...
|
324
333
|
if new_entitlements_path.present?
|
data/lib/nixenvironment/plist.rb
CHANGED
@@ -4,17 +4,11 @@ module Nixenvironment
|
|
4
4
|
class Plist
|
5
5
|
FORMAT_BINARY = CFPropertyList::List::FORMAT_BINARY
|
6
6
|
FORMAT_XML = CFPropertyList::List::FORMAT_XML
|
7
|
-
FORMAT_PLAIN = CFPropertyList::List::FORMAT_PLAIN
|
7
|
+
# FORMAT_PLAIN = CFPropertyList::List::FORMAT_PLAIN
|
8
8
|
FORMAT_AUTO = CFPropertyList::List::FORMAT_AUTO
|
9
9
|
|
10
10
|
def self.from_file(path)
|
11
|
-
|
12
|
-
# used instead of new(CFPropertyList::List.new(:file => path))
|
13
|
-
# because of odd <ArgumentError: invalid byte sequence in US-ASCII>
|
14
|
-
plist = CFPropertyList::List.new
|
15
|
-
plist.load_str(File.read(path))
|
16
|
-
plist.filename = path
|
17
|
-
new(plist)
|
11
|
+
new(CFPropertyList::List.new(:file => path))
|
18
12
|
end
|
19
13
|
|
20
14
|
def self.from_hash(hash)
|
@@ -42,7 +36,7 @@ module Nixenvironment
|
|
42
36
|
|
43
37
|
def []=(key, value)
|
44
38
|
@data[key] = value
|
45
|
-
@plist.value = CFPropertyList.guess(@data)
|
39
|
+
@plist.value = CFPropertyList.guess(@data, :convert_unknown_to_string => true)
|
46
40
|
end
|
47
41
|
|
48
42
|
def save(path = nil, format = nil, formatted = true)
|
@@ -30,10 +30,18 @@ module Nixenvironment
|
|
30
30
|
build_args = []
|
31
31
|
build_args << "-sdk '#{sdk}'" if sdk.present?
|
32
32
|
build_args << "-configuration '#{config}'" if config.present?
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
|
34
|
+
if project.present?
|
35
|
+
build_args << "-project '#{project}'"
|
36
|
+
elsif workspace.present?
|
37
|
+
build_args << "-workspace '#{workspace}'"
|
38
|
+
end
|
39
|
+
|
40
|
+
if target.present?
|
41
|
+
build_args << "-target '#{target}'"
|
42
|
+
elsif scheme.present?
|
43
|
+
build_args << "-scheme '#{scheme}'"
|
44
|
+
end
|
37
45
|
|
38
46
|
if env_var_prefix.present?
|
39
47
|
vars_to_define = ''
|
@@ -83,10 +91,19 @@ module Nixenvironment
|
|
83
91
|
build_args = []
|
84
92
|
build_args << "-sdk '#{sdk}'" if sdk.present?
|
85
93
|
build_args << "-configuration '#{config}'" if config.present?
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
94
|
+
|
95
|
+
if project.present?
|
96
|
+
build_args << "-project '#{project}'"
|
97
|
+
elsif workspace.present?
|
98
|
+
build_args << "-workspace '#{workspace}'"
|
99
|
+
end
|
100
|
+
|
101
|
+
if target.present?
|
102
|
+
build_args << "-target '#{target}'"
|
103
|
+
elsif scheme.present?
|
104
|
+
build_args << "-scheme '#{scheme}'"
|
105
|
+
end
|
106
|
+
|
90
107
|
build_args << '-showBuildSettings'
|
91
108
|
|
92
109
|
puts 'Reading config settings ...'
|
@@ -139,7 +156,7 @@ module Nixenvironment
|
|
139
156
|
if key.present? && value.present?
|
140
157
|
stripped_key = key.strip
|
141
158
|
stripped_value = value.strip
|
142
|
-
return stripped_value if stripped_key == PRODUCT_SETTINGS_PATH_KEY
|
159
|
+
return stripped_value if stripped_key == PRODUCT_SETTINGS_PATH_KEY
|
143
160
|
end
|
144
161
|
end
|
145
162
|
end
|
data/nixenvironment.gemspec
CHANGED
@@ -23,14 +23,14 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_dependency 'deliver'
|
24
24
|
spec.add_dependency 'xcpretty'
|
25
25
|
spec.add_dependency 'ocunit2junit'
|
26
|
+
spec.add_dependency 'terminal-table'
|
27
|
+
spec.add_dependency 'colorize'
|
28
|
+
spec.add_dependency 'CFPropertyList', '= 2.2.8'
|
26
29
|
|
27
30
|
# Development only
|
28
31
|
spec.add_development_dependency 'bundler'
|
29
32
|
spec.add_development_dependency 'rake'
|
30
33
|
spec.add_development_dependency 'rspec'
|
31
34
|
spec.add_development_dependency 'commander'
|
32
|
-
spec.add_development_dependency 'terminal-table'
|
33
|
-
spec.add_development_dependency 'colorize'
|
34
35
|
spec.add_development_dependency 'fuzzy_match'
|
35
|
-
spec.add_development_dependency 'CFPropertyList'
|
36
36
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nixenvironment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.66
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-10-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cocoapods
|
@@ -68,13 +68,13 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
71
|
+
name: terminal-table
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - '>='
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
|
-
type: :
|
77
|
+
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
@@ -82,13 +82,13 @@ dependencies:
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
85
|
+
name: colorize
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - '>='
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
|
-
type: :
|
91
|
+
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
@@ -96,21 +96,21 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: CFPropertyList
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - '
|
102
|
+
- - '='
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
105
|
-
type: :
|
104
|
+
version: 2.2.8
|
105
|
+
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - '
|
109
|
+
- - '='
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
111
|
+
version: 2.2.8
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
113
|
+
name: bundler
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - '>='
|
@@ -124,7 +124,7 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: rake
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - '>='
|
@@ -138,7 +138,7 @@ dependencies:
|
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
141
|
+
name: rspec
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - '>='
|
@@ -152,7 +152,7 @@ dependencies:
|
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
155
|
+
name: commander
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - '>='
|
@@ -166,7 +166,7 @@ dependencies:
|
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
|
-
name:
|
169
|
+
name: fuzzy_match
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - '>='
|