fastlane 2.29.1 → 2.30.0.beta.20170510010041
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/deliver/lib/assets/summary.html.erb +7 -24
- data/deliver/lib/deliver/options.rb +0 -4
- data/deliver/lib/deliver/setup.rb +0 -11
- data/deliver/lib/deliver/upload_metadata.rb +0 -42
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +2 -1
- data/fastlane/lib/fastlane/documentation/actions_list.rb +0 -22
- data/fastlane/lib/fastlane/environment_printer.rb +13 -11
- data/fastlane/lib/fastlane/one_off.rb +0 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +1 -5
- data/match/lib/match/encrypt.rb +1 -3
- data/spaceship/lib/spaceship/tunes/app_version.rb +0 -58
- metadata +16 -18
- data/spaceship/lib/spaceship/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8226feb0b3924420ecec20f314fa334ed3635ba
|
4
|
+
data.tar.gz: 7b42ccd1e03ba4f94da8e24eaf093b2477fb9449
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e89d86160b104681f29b6b776381676c38611864fb448209e6a168482a42746bea4e3b3f0302ecdadb2c9f8a4cf6889b192e8dc8f5b4b0bcd2ba1c7aedc9181
|
7
|
+
data.tar.gz: 90d879716e7f0ab869d033d3482225eca83fbe2179a74bc517b02ad6ef785135128c65bbedae6ab071c4f907bb9102f9bfff7a1a2d4e98ee8464e90f6fad1a2d
|
@@ -118,13 +118,13 @@
|
|
118
118
|
margin-right: 20px;
|
119
119
|
}
|
120
120
|
|
121
|
-
.app-
|
121
|
+
.app-review-information {
|
122
122
|
margin-left: 15px;
|
123
123
|
margin-right: 15px;
|
124
124
|
margin-top: 22px;
|
125
125
|
}
|
126
126
|
|
127
|
-
.app-
|
127
|
+
.app-review-information-key {
|
128
128
|
font-weight: 700;
|
129
129
|
}
|
130
130
|
</style>
|
@@ -241,37 +241,20 @@
|
|
241
241
|
|
242
242
|
<hr />
|
243
243
|
<% end # end data %>
|
244
|
-
<% if @options[:trade_representative_contact_information] %>
|
245
|
-
<div class="app-minor-information">
|
246
|
-
<div class="cat-headline">Trade Representative Contact Information</div>
|
247
|
-
<dl class="app-minor-information">
|
248
|
-
<% @options[:trade_representative_contact_information].each do |key, value| %>
|
249
|
-
<dt class="app-minor-information-key">
|
250
|
-
<%= key.to_s.capitalize.gsub("_", " ") %>
|
251
|
-
</dt>
|
252
|
-
<dd class="app-minor-information-text">
|
253
|
-
<%= (value || '').gsub("\n", "<br />") %>
|
254
|
-
</dd>
|
255
|
-
<% end %>
|
256
|
-
</dl>
|
257
|
-
</div>
|
258
|
-
<hr />
|
259
|
-
<% end %>
|
260
|
-
|
261
244
|
<% if @options[:app_review_information] %>
|
262
|
-
<div class="app-
|
245
|
+
<div class="app-review-information">
|
263
246
|
<div class="cat-headline">Review Information</div>
|
264
|
-
<dl class="app-
|
247
|
+
<dl class="app-review-information">
|
265
248
|
<% @options[:app_review_information].each do |key, value| %>
|
266
|
-
<dt class="app-
|
249
|
+
<dt class="app-review-information-key">
|
267
250
|
<%= key.to_s.capitalize.gsub("_", " ") %>
|
268
251
|
</dt>
|
269
|
-
<dd class="app-
|
252
|
+
<dd class="app-review-information-text">
|
270
253
|
<%= (value || '').gsub("\n", "<br />") %>
|
271
254
|
</dd>
|
272
255
|
<% end %>
|
273
256
|
</dl>
|
274
257
|
</div>
|
275
|
-
|
258
|
+
<% end %>
|
276
259
|
</body>
|
277
260
|
</html>
|
@@ -228,10 +228,6 @@ module Deliver
|
|
228
228
|
description: "Metadata: The english name of the secondary second sub category(e.g. `Educational`, `Puzzle`)",
|
229
229
|
optional: true,
|
230
230
|
is_string: true),
|
231
|
-
FastlaneCore::ConfigItem.new(key: :trade_representative_contact_information,
|
232
|
-
description: "Metadata: A hash containing the trade representative contact information",
|
233
|
-
optional: true,
|
234
|
-
is_string: false),
|
235
231
|
FastlaneCore::ConfigItem.new(key: :app_review_information,
|
236
232
|
description: "Metadata: A hash containing the review information",
|
237
233
|
optional: true,
|
@@ -66,17 +66,6 @@ module Deliver
|
|
66
66
|
UI.message("Writing to '#{resulting_path}'")
|
67
67
|
end
|
68
68
|
|
69
|
-
# Trade Representative Contact Information
|
70
|
-
UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES.each do |key, option_name|
|
71
|
-
content = v.send(key).to_s
|
72
|
-
content << "\n"
|
73
|
-
base_dir = File.join(path, UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_DIR)
|
74
|
-
FileUtils.mkdir_p(base_dir)
|
75
|
-
resulting_path = File.join(base_dir, "#{option_name}.txt")
|
76
|
-
File.write(resulting_path, content)
|
77
|
-
UI.message("Writing to '#{resulting_path}'")
|
78
|
-
end
|
79
|
-
|
80
69
|
# Review information
|
81
70
|
UploadMetadata::REVIEW_INFORMATION_VALUES.each do |key, option_name|
|
82
71
|
content = v.send(key).to_s
|
@@ -15,23 +15,6 @@ module Deliver
|
|
15
15
|
:primary_first_sub_category, :primary_second_sub_category,
|
16
16
|
:secondary_first_sub_category, :secondary_second_sub_category]
|
17
17
|
|
18
|
-
# Trade Representative Contact Information values
|
19
|
-
TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES = {
|
20
|
-
trade_representative_trade_name: :trade_name,
|
21
|
-
trade_representative_first_name: :first_name,
|
22
|
-
trade_representative_last_name: :last_name,
|
23
|
-
trade_representative_address_line_1: :adderss_line1,
|
24
|
-
trade_representative_address_line_2: :adderss_line2,
|
25
|
-
trade_representative_address_line_3: :adderss_line3,
|
26
|
-
trade_representative_city_name: :city_name,
|
27
|
-
trade_representative_state: :state,
|
28
|
-
trade_representative_country: :country,
|
29
|
-
trade_representative_postal_code: :postal_code,
|
30
|
-
trade_representative_phone_number: :phone_number,
|
31
|
-
trade_representative_email: :email_address,
|
32
|
-
trade_representative_is_displayed_on_app_store: :is_displayed_on_app_store
|
33
|
-
}
|
34
|
-
|
35
18
|
# Review information values
|
36
19
|
REVIEW_INFORMATION_VALUES = {
|
37
20
|
review_first_name: :first_name,
|
@@ -49,9 +32,6 @@ module Deliver
|
|
49
32
|
# Non localized app details values, that are editable in live state
|
50
33
|
NON_LOCALISED_LIVE_VALUES = [:privacy_url]
|
51
34
|
|
52
|
-
# Directory name it contains trade representative contact information
|
53
|
-
TRADE_REPRESENTATIVE_CONTACT_INFORMATION_DIR = "trade_representative_contact_information"
|
54
|
-
|
55
35
|
# Directory name it contains review information
|
56
36
|
REVIEW_INFORMATION_DIR = "review_information"
|
57
37
|
|
@@ -112,7 +92,6 @@ module Deliver
|
|
112
92
|
|
113
93
|
v.release_on_approval = options[:automatic_release]
|
114
94
|
|
115
|
-
set_trade_representative_contact_information(v, options)
|
116
95
|
set_review_information(v, options)
|
117
96
|
set_app_rating(v, options)
|
118
97
|
|
@@ -219,17 +198,6 @@ module Deliver
|
|
219
198
|
options[key] ||= File.read(path)
|
220
199
|
end
|
221
200
|
|
222
|
-
# Load trade representative contact information
|
223
|
-
options[:trade_representative_contact_information] ||= {}
|
224
|
-
TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES.values.each do |option_name|
|
225
|
-
path = File.join(options[:metadata_path], TRADE_REPRESENTATIVE_CONTACT_INFORMATION_DIR, "#{option_name}.txt")
|
226
|
-
next unless File.exist?(path)
|
227
|
-
next if options[:trade_representative_contact_information][option_name].to_s.length > 0
|
228
|
-
|
229
|
-
UI.message("Loading '#{path}'...")
|
230
|
-
options[:trade_representative_contact_information][option_name] ||= File.read(path)
|
231
|
-
end
|
232
|
-
|
233
201
|
# Load review information
|
234
202
|
options[:app_review_information] ||= {}
|
235
203
|
REVIEW_INFORMATION_VALUES.values.each do |option_name|
|
@@ -244,16 +212,6 @@ module Deliver
|
|
244
212
|
|
245
213
|
private
|
246
214
|
|
247
|
-
def set_trade_representative_contact_information(v, options)
|
248
|
-
return unless options[:trade_representative_contact_information]
|
249
|
-
info = options[:trade_representative_contact_information]
|
250
|
-
UI.user_error!("`trade_representative_contact_information` must be a hash", show_github_issues: true) unless info.kind_of?(Hash)
|
251
|
-
|
252
|
-
TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES.each do |key, option_name|
|
253
|
-
v.send("#{key}=", info[option_name].chomp) if info[option_name].chomp
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
215
|
def set_review_information(v, options)
|
258
216
|
return unless options[:app_review_information]
|
259
217
|
info = options[:app_review_information]
|
@@ -57,7 +57,8 @@ module Fastlane
|
|
57
57
|
update_needed.each do |tool_info|
|
58
58
|
tool = tool_info[0]
|
59
59
|
local_version = Gem::Version.new(highest_versions[tool].version)
|
60
|
-
|
60
|
+
update_url = FastlaneCore::UpdateChecker.generate_fetch_url(tool)
|
61
|
+
latest_version = FastlaneCore::UpdateChecker.fetch_latest(update_url)
|
61
62
|
UI.message("Updating #{tool} from #{local_version} to #{latest_version} ... 🚀")
|
62
63
|
|
63
64
|
# Approximate_recommendation will create a string like "~> 0.10" from a version 0.10.0, e.g. one that is valid for versions >= 0.10 and <1.0
|
@@ -73,29 +73,7 @@ module Fastlane
|
|
73
73
|
else
|
74
74
|
puts "Couldn't find action for the given filter.".red
|
75
75
|
puts "==========================================\n".red
|
76
|
-
|
77
76
|
print_all # show all available actions instead
|
78
|
-
print_suggestions(filter)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def self.print_suggestions(filter)
|
83
|
-
if !filter.nil? && filter.length > 1
|
84
|
-
action_names = []
|
85
|
-
all_actions(nil) do |action_ref, action_name|
|
86
|
-
action_names << action_name
|
87
|
-
end
|
88
|
-
|
89
|
-
corrections = []
|
90
|
-
|
91
|
-
if !Gem.loaded_specs["did_you_mean"].nil? && Gem.loaded_specs["did_you_mean"].version >= Gem::Version.new('1.1.0')
|
92
|
-
spell_checker = DidYouMean::SpellChecker.new(dictionary: action_names)
|
93
|
-
corrections << spell_checker.correct(filter).compact
|
94
|
-
end
|
95
|
-
|
96
|
-
corrections << action_names.select { |name| name.include? filter }
|
97
|
-
|
98
|
-
puts "Did you mean: #{corrections.flatten.uniq.join(', ')}?".green unless corrections.flatten.empty?
|
99
77
|
end
|
100
78
|
end
|
101
79
|
|
@@ -62,16 +62,17 @@ module Fastlane
|
|
62
62
|
table << "|--------|---------|\n"
|
63
63
|
plugin_manager.available_plugins.each do |plugin|
|
64
64
|
begin
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
rescue
|
73
|
-
update_status = "💥 Check failed"
|
65
|
+
installed_version = Fastlane::ActionCollector.determine_version(plugin)
|
66
|
+
update_url = FastlaneCore::UpdateChecker.generate_fetch_url(plugin)
|
67
|
+
latest_version = FastlaneCore::UpdateChecker.fetch_latest(update_url)
|
68
|
+
if Gem::Version.new(installed_version) == Gem::Version.new(latest_version)
|
69
|
+
update_status = "✅ Up-To-Date"
|
70
|
+
else
|
71
|
+
update_status = "🚫 Update available"
|
74
72
|
end
|
73
|
+
rescue
|
74
|
+
update_status = "💥 Check failed"
|
75
|
+
end
|
75
76
|
table << "| #{plugin} | #{installed_version} | #{update_status} |\n"
|
76
77
|
end
|
77
78
|
|
@@ -106,8 +107,9 @@ module Fastlane
|
|
106
107
|
|
107
108
|
next unless fastlane_tools.include?(current_gem.name.to_sym)
|
108
109
|
begin
|
109
|
-
|
110
|
-
|
110
|
+
update_url = FastlaneCore::UpdateChecker.generate_fetch_url(current_gem.name)
|
111
|
+
latest_version = FastlaneCore::UpdateChecker.fetch_latest(update_url)
|
112
|
+
if Gem::Version.new(current_gem.version) == Gem::Version.new(latest_version)
|
111
113
|
update_status = "✅ Up-To-Date"
|
112
114
|
else
|
113
115
|
update_status = "🚫 Update available"
|
@@ -33,7 +33,6 @@ module Fastlane
|
|
33
33
|
UI.verbose(caller.join("\n"))
|
34
34
|
UI.user_error!("The action '#{action}' is no longer bundled with fastlane. You can install it using `fastlane add_plugin #{action}`")
|
35
35
|
else
|
36
|
-
Fastlane::ActionsList.print_suggestions(action)
|
37
36
|
UI.user_error!("Action '#{action}' not available, run `fastlane actions` to get a full list")
|
38
37
|
end
|
39
38
|
end
|
@@ -112,11 +112,7 @@ module FastlaneCore
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def self.fetch_latest(gem_name)
|
115
|
-
JSON.parse(Excon.get(
|
116
|
-
end
|
117
|
-
|
118
|
-
def self.generate_fetch_url(gem_name)
|
119
|
-
"https://rubygems.org/api/v1/gems/#{gem_name}.json"
|
115
|
+
JSON.parse(Excon.get("https://rubygems.org/api/v1/gems/#{gem_name}.json").body)["version"]
|
120
116
|
end
|
121
117
|
|
122
118
|
# (optional) Returns the app identifier for the current tool
|
data/match/lib/match/encrypt.rb
CHANGED
@@ -16,9 +16,7 @@ module Match
|
|
16
16
|
|
17
17
|
unless password
|
18
18
|
if !UI.interactive?
|
19
|
-
UI.error "
|
20
|
-
UI.error "Bailing out instead of asking for a password, since this is non-interactive mode."
|
21
|
-
UI.error "Try setting the MATCH_PASSWORD environment variable, or temporarily enable interactive mode to store a password."
|
19
|
+
UI.error "No password found neither in environment nor in local keychain. Bailing out as in non interactive mode."
|
22
20
|
else
|
23
21
|
UI.important "Enter the passphrase that should be used to encrypt/decrypt your certificates"
|
24
22
|
UI.important "This passphrase is specific per repository and will be stored in your local keychain"
|
@@ -71,48 +71,6 @@ module Spaceship
|
|
71
71
|
# @return (Spaceship::Tunes::TransitAppFile) the structure containing information about the geo json. Can be nil
|
72
72
|
attr_accessor :transit_app_file
|
73
73
|
|
74
|
-
####
|
75
|
-
# Trade Representative Contact Information
|
76
|
-
####
|
77
|
-
# @return (String) Trade Representative Contact Information Trade Name. This attribute isn't editable
|
78
|
-
attr_accessor :trade_representative_trade_name
|
79
|
-
|
80
|
-
# @return (String) Trade Representative Contact Information First Name
|
81
|
-
attr_accessor :trade_representative_first_name
|
82
|
-
|
83
|
-
# @return (String) Trade Representative Contact Information Last Name
|
84
|
-
attr_accessor :trade_representative_last_name
|
85
|
-
|
86
|
-
# @return (String) Trade Representative Contact Information Address Line 1
|
87
|
-
attr_accessor :trade_representative_address_line_1
|
88
|
-
|
89
|
-
# @return (String) Trade Representative Contact Information Address Line 2
|
90
|
-
attr_accessor :trade_representative_address_line_2
|
91
|
-
|
92
|
-
# @return (String) Trade Representative Contact Information Address Line 3
|
93
|
-
attr_accessor :trade_representative_address_line_3
|
94
|
-
|
95
|
-
# @return (String) Trade Representative Contact Information City Name
|
96
|
-
attr_accessor :trade_representative_city_name
|
97
|
-
|
98
|
-
# @return (String) Trade Representative Contact Information State
|
99
|
-
attr_accessor :trade_representative_state
|
100
|
-
|
101
|
-
# @return (String) Trade Representative Contact Information Country
|
102
|
-
attr_accessor :trade_representative_country
|
103
|
-
|
104
|
-
# @return (String) Trade Representative Contact Information Postal Code
|
105
|
-
attr_accessor :trade_representative_postal_code
|
106
|
-
|
107
|
-
# @return (String) Trade Representative Contact Information Phone Number
|
108
|
-
attr_accessor :trade_representative_phone_number
|
109
|
-
|
110
|
-
# @return (String) Trade Representative Contact Information Email Address
|
111
|
-
attr_accessor :trade_representative_email
|
112
|
-
|
113
|
-
# @return (Boolean) Display Trade Representative Contact Information on the Korean App Store or not
|
114
|
-
attr_accessor :trade_representative_is_displayed_on_app_store
|
115
|
-
|
116
74
|
####
|
117
75
|
# App Review Information
|
118
76
|
####
|
@@ -192,22 +150,6 @@ module Spaceship
|
|
192
150
|
# GeoJson
|
193
151
|
# 'transitAppFile.value' => :transit_app_file
|
194
152
|
|
195
|
-
# Trade Representative Contact Information
|
196
|
-
|
197
|
-
'appStoreInfo.tradeName.value' => :trade_representative_trade_name,
|
198
|
-
'appStoreInfo.firstName.value' => :trade_representative_first_name,
|
199
|
-
'appStoreInfo.lastName.value' => :trade_representative_last_name,
|
200
|
-
'appStoreInfo.addressLine1.value' => :trade_representative_address_line_1,
|
201
|
-
'appStoreInfo.addressLine2.value' => :trade_representative_address_line_2,
|
202
|
-
'appStoreInfo.addressLine3.value' => :trade_representative_address_line_3,
|
203
|
-
'appStoreInfo.cityName.value' => :trade_representative_city_name,
|
204
|
-
'appStoreInfo.state.value' => :trade_representative_state,
|
205
|
-
'appStoreInfo.country.value' => :trade_representative_country,
|
206
|
-
'appStoreInfo.postalCode.value' => :trade_representative_postal_code,
|
207
|
-
'appStoreInfo.phoneNumber.value' => :trade_representative_phone_number,
|
208
|
-
'appStoreInfo.emailAddress.value' => :trade_representative_email,
|
209
|
-
'appStoreInfo.shouldDisplayInStore.value' => :trade_representative_is_displayed_on_app_store,
|
210
|
-
|
211
153
|
# App Review Information
|
212
154
|
'appReviewInfo.firstName.value' => :review_first_name,
|
213
155
|
'appReviewInfo.lastName.value' => :review_last_name,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.30.0.beta.20170510010041
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2017-05-
|
18
|
+
date: 2017-05-10 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: slack-notifier
|
@@ -1257,7 +1257,6 @@ files:
|
|
1257
1257
|
- spaceship/lib/assets/languageMapping.json
|
1258
1258
|
- spaceship/lib/assets/languageMappingReadable.json
|
1259
1259
|
- spaceship/lib/spaceship.rb
|
1260
|
-
- spaceship/lib/spaceship/.DS_Store
|
1261
1260
|
- spaceship/lib/spaceship/babosa_fix.rb
|
1262
1261
|
- spaceship/lib/spaceship/base.rb
|
1263
1262
|
- spaceship/lib/spaceship/client.rb
|
@@ -1358,23 +1357,23 @@ metadata:
|
|
1358
1357
|
post_install_message:
|
1359
1358
|
rdoc_options: []
|
1360
1359
|
require_paths:
|
1361
|
-
-
|
1360
|
+
- pilot/lib
|
1362
1361
|
- credentials_manager/lib
|
1363
|
-
-
|
1364
|
-
-
|
1365
|
-
-
|
1362
|
+
- sigh/lib
|
1363
|
+
- supply/lib
|
1364
|
+
- snapshot/lib
|
1366
1365
|
- frameit/lib
|
1367
|
-
-
|
1366
|
+
- cert/lib
|
1368
1367
|
- match/lib
|
1368
|
+
- spaceship/lib
|
1369
1369
|
- pem/lib
|
1370
|
-
- pilot/lib
|
1371
1370
|
- produce/lib
|
1372
|
-
- scan/lib
|
1373
1371
|
- screengrab/lib
|
1374
|
-
-
|
1375
|
-
-
|
1376
|
-
-
|
1377
|
-
-
|
1372
|
+
- fastlane_core/lib
|
1373
|
+
- gym/lib
|
1374
|
+
- deliver/lib
|
1375
|
+
- scan/lib
|
1376
|
+
- fastlane/lib
|
1378
1377
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1379
1378
|
requirements:
|
1380
1379
|
- - ">="
|
@@ -1382,15 +1381,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1382
1381
|
version: 2.0.0
|
1383
1382
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1384
1383
|
requirements:
|
1385
|
-
- - "
|
1384
|
+
- - ">"
|
1386
1385
|
- !ruby/object:Gem::Version
|
1387
|
-
version:
|
1386
|
+
version: 1.3.1
|
1388
1387
|
requirements: []
|
1389
1388
|
rubyforge_project:
|
1390
|
-
rubygems_version: 2.
|
1389
|
+
rubygems_version: 2.4.5.2
|
1391
1390
|
signing_key:
|
1392
1391
|
specification_version: 4
|
1393
1392
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
1394
1393
|
Android apps
|
1395
1394
|
test_files: []
|
1396
|
-
has_rdoc:
|
Binary file
|