apple_certs_info 0.3.2 → 0.4.0
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/Gemfile +1 -1
- data/Gemfile.lock +16 -16
- data/README.md +51 -6
- data/apple_certs_info.gemspec +2 -1
- data/lib/apple_certs_info/version.rb +1 -1
- data/lib/apple_certs_info.rb +24 -30
- metadata +9 -19
- data/.gitignore +0 -56
- data/.idea/.gitignore +0 -8
- data/.idea/.rakeTasks +0 -7
- data/.idea/apple_certs_info.iml +0 -138
- data/.idea/inspectionProfiles/Project_Default.xml +0 -6
- data/.idea/misc.xml +0 -7
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
- data/.rakeTasks +0 -7
- data/.rspec +0 -3
- data/.rspec_status +0 -6
- data/LICENSE.txt +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d0ebfe01852707c469bebb6c19cb61ead202d4386b441f77d14b27fb9c5aa0a4
|
|
4
|
+
data.tar.gz: da5575bf7d113c0eb6af72d08dd706c497fc921237b66ef965b1bff71fb89b93
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ae1bd29c9e5a8f742fa5839629b9b198b8484e3466f6f36f2d15df9fd33fc2e7151f4db3e99ea12f237b1ead6a675c8b71cd86484e11cf9eebbeacbc4bb09ca
|
|
7
|
+
data.tar.gz: ef1e4489820f419379744ede0bcc9afb5568c377b9b78f9c1472d001142ce094a033f1a7274c8dbc61251af997d829747847c5b6122905fb340200abdc75da24
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
apple_certs_info (0.
|
|
4
|
+
apple_certs_info (0.4.0)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
diff-lcs (1.
|
|
10
|
-
rake (
|
|
11
|
-
rspec (3.
|
|
12
|
-
rspec-core (~> 3.
|
|
13
|
-
rspec-expectations (~> 3.
|
|
14
|
-
rspec-mocks (~> 3.
|
|
15
|
-
rspec-core (3.
|
|
16
|
-
rspec-support (~> 3.
|
|
17
|
-
rspec-expectations (3.
|
|
9
|
+
diff-lcs (1.6.2)
|
|
10
|
+
rake (13.4.2)
|
|
11
|
+
rspec (3.13.2)
|
|
12
|
+
rspec-core (~> 3.13.0)
|
|
13
|
+
rspec-expectations (~> 3.13.0)
|
|
14
|
+
rspec-mocks (~> 3.13.0)
|
|
15
|
+
rspec-core (3.13.6)
|
|
16
|
+
rspec-support (~> 3.13.0)
|
|
17
|
+
rspec-expectations (3.13.5)
|
|
18
18
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
19
|
-
rspec-support (~> 3.
|
|
20
|
-
rspec-mocks (3.
|
|
19
|
+
rspec-support (~> 3.13.0)
|
|
20
|
+
rspec-mocks (3.13.8)
|
|
21
21
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
22
|
-
rspec-support (~> 3.
|
|
23
|
-
rspec-support (3.
|
|
22
|
+
rspec-support (~> 3.13.0)
|
|
23
|
+
rspec-support (3.13.7)
|
|
24
24
|
|
|
25
25
|
PLATFORMS
|
|
26
26
|
ruby
|
|
27
27
|
|
|
28
28
|
DEPENDENCIES
|
|
29
29
|
apple_certs_info!
|
|
30
|
-
rake (~>
|
|
30
|
+
rake (~> 13.0)
|
|
31
31
|
rspec (~> 3.0)
|
|
32
32
|
|
|
33
33
|
BUNDLED WITH
|
|
34
|
-
2.
|
|
34
|
+
2.7.2
|
data/README.md
CHANGED
|
@@ -16,20 +16,25 @@ Or install it yourself as:
|
|
|
16
16
|
|
|
17
17
|
$ gem install apple_certs_info
|
|
18
18
|
|
|
19
|
+
## Requirements
|
|
20
|
+
|
|
21
|
+
macOS only. This gem shells out to `security`, `openssl` and `/usr/libexec/PlistBuddy`.
|
|
22
|
+
|
|
19
23
|
## Usage
|
|
20
24
|
|
|
25
|
+
### Expiring soon
|
|
26
|
+
|
|
21
27
|
Information with an expiration date of 10 days or less will return.
|
|
22
28
|
|
|
23
29
|
- Provisioning Profiles
|
|
24
30
|
|
|
25
|
-
```
|
|
31
|
+
```ruby
|
|
26
32
|
AppleCertsInfo.provisioning_profile_list_limit_days_for(days: 10)
|
|
27
33
|
```
|
|
28
34
|
|
|
29
|
-
-
|
|
30
|
-
|
|
35
|
+
- Certificate files(Development / Distribution)
|
|
31
36
|
|
|
32
|
-
```
|
|
37
|
+
```ruby
|
|
33
38
|
# iPhone Developer / Apple Development
|
|
34
39
|
AppleCertsInfo.certificate_development_list_limit_days_for(days: 10)
|
|
35
40
|
|
|
@@ -37,10 +42,50 @@ AppleCertsInfo.certificate_development_list_limit_days_for(days: 10)
|
|
|
37
42
|
AppleCertsInfo.certificate_distribution_list_limit_days_for(days: 10)
|
|
38
43
|
```
|
|
39
44
|
|
|
45
|
+
### All entries
|
|
46
|
+
|
|
47
|
+
Without filtering by the remaining days.
|
|
48
|
+
|
|
49
|
+
```ruby
|
|
50
|
+
AppleCertsInfo.provisioning_profile_list
|
|
51
|
+
AppleCertsInfo.certificate_development_list
|
|
52
|
+
AppleCertsInfo.certificate_distribution_list
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`provisioning_profile_list` reads `~/Library/MobileDevice/Provisioning Profiles/` by default,
|
|
56
|
+
and another directory can be given with the `dir:` keyword.
|
|
57
|
+
|
|
58
|
+
### Return value
|
|
59
|
+
|
|
60
|
+
Each method returns an Array of Hash.
|
|
61
|
+
|
|
62
|
+
- Certificates
|
|
63
|
+
|
|
64
|
+
| key | description |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `:expire_datetime` | expiration date (`Time`) |
|
|
67
|
+
| `:limit_days` | days left until the expiration date (`Integer`) |
|
|
68
|
+
| `:cname` | CN of the certificate |
|
|
69
|
+
|
|
70
|
+
- Provisioning Profiles
|
|
71
|
+
|
|
72
|
+
| key | description |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| `:expire_datetime` | expiration date (`Time`) |
|
|
75
|
+
| `:limit_days` | days left until the expiration date (`Integer`) |
|
|
76
|
+
| `:app_identifier` | Bundle Identifier |
|
|
77
|
+
| `:app_id_name` | App ID Name |
|
|
78
|
+
| `:file_path` | path of the `.mobileprovision` file |
|
|
79
|
+
|
|
80
|
+
### Debug log
|
|
81
|
+
|
|
82
|
+
```ruby
|
|
83
|
+
AppleCertsInfo.set_debug_log(true)
|
|
84
|
+
```
|
|
40
85
|
|
|
41
86
|
## Contributing
|
|
42
87
|
|
|
43
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/tarappo/apple_certs_info. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/
|
|
88
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/tarappo/apple_certs_info. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/main/CODE_OF_CONDUCT.md).
|
|
44
89
|
|
|
45
90
|
|
|
46
91
|
## License
|
|
@@ -49,4 +94,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
|
49
94
|
|
|
50
95
|
## Code of Conduct
|
|
51
96
|
|
|
52
|
-
Everyone interacting in the AppleCertsInfo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/
|
|
97
|
+
Everyone interacting in the AppleCertsInfo project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/tarappo/apple_certs_info/blob/main/CODE_OF_CONDUCT.md).
|
data/apple_certs_info.gemspec
CHANGED
|
@@ -7,6 +7,7 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.email = ["tarappo@gmail.com"]
|
|
8
8
|
|
|
9
9
|
spec.summary = %q{Apple Certificate files and Provisioning Profile information.}
|
|
10
|
+
spec.description = %q{Collects expiration dates of the Apple certificates in your macOS Keychain and of the provisioning profiles on your machine, and lists the ones that expire within a given number of days.}
|
|
10
11
|
spec.homepage = "https://github.com/tarappo/apple_certs_info"
|
|
11
12
|
spec.license = "MIT"
|
|
12
13
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
|
@@ -18,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
|
18
19
|
# Specify which files should be added to the gem when it is released.
|
|
19
20
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
20
21
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
21
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|\.github|\.idea)/}) || f.match(%r{^\.(rspec|rspec_status|gitignore|rakeTasks)$}) }
|
|
22
23
|
end
|
|
23
24
|
spec.bindir = "exe"
|
|
24
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
data/lib/apple_certs_info.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require "apple_certs_info/version"
|
|
2
2
|
require "time"
|
|
3
3
|
require "tempfile"
|
|
4
|
+
require "shellwords"
|
|
4
5
|
|
|
5
6
|
module AppleCertsInfo
|
|
6
7
|
@debug_log = false
|
|
@@ -49,22 +50,12 @@ module AppleCertsInfo
|
|
|
49
50
|
|
|
50
51
|
# All iPhone Developer and Apple Development List
|
|
51
52
|
def self.certificate_development_list
|
|
52
|
-
|
|
53
|
-
iphone_list = certificate_list_for(name: "iPhone Developer")
|
|
54
|
-
apple_list = certificate_list_for(name: "Apple Development")
|
|
55
|
-
list.concat(iphone_list) unless iphone_list.nil?
|
|
56
|
-
list.concat(apple_list) unless apple_list.nil?
|
|
57
|
-
return list
|
|
53
|
+
certificate_list_for(name: "iPhone Developer") + certificate_list_for(name: "Apple Development")
|
|
58
54
|
end
|
|
59
55
|
|
|
60
56
|
# All iPhone Distribution and Apple Distribution List
|
|
61
57
|
def self.certificate_distribution_list
|
|
62
|
-
|
|
63
|
-
iphone_list = certificate_list_for(name: "iPhone Distribution")
|
|
64
|
-
apple_list = certificate_list_for(name: "Apple Distribution")
|
|
65
|
-
list.concat(iphone_list) unless iphone_list.nil?
|
|
66
|
-
list.concat(apple_list) unless apple_list.nil?
|
|
67
|
-
return list
|
|
58
|
+
certificate_list_for(name: "iPhone Distribution") + certificate_list_for(name: "Apple Distribution")
|
|
68
59
|
end
|
|
69
60
|
|
|
70
61
|
# Provisioning Profile List
|
|
@@ -80,19 +71,18 @@ module AppleCertsInfo
|
|
|
80
71
|
|
|
81
72
|
begin
|
|
82
73
|
# exchange plist file
|
|
83
|
-
system("security cms -D -i
|
|
74
|
+
unless system("security cms -D -i #{Shellwords.escape(file)} > #{Shellwords.escape(plist_file)}")
|
|
75
|
+
raise "failed to decode Provisioning Profile: #{file}"
|
|
76
|
+
end
|
|
84
77
|
|
|
85
78
|
# checking plist file
|
|
86
|
-
expire_datetime = Time.parse(`/usr/libexec/PlistBuddy -c 'Print ExpirationDate' #{plist_file}`)
|
|
87
|
-
app_identifier = `/usr/libexec/PlistBuddy -c 'Print Entitlements:application-identifier' #{plist_file}`.chomp
|
|
88
|
-
app_id_name = `/usr/libexec/PlistBuddy -c 'Print AppIDName' #{plist_file}`.chomp
|
|
79
|
+
expire_datetime = Time.parse(`/usr/libexec/PlistBuddy -c 'Print ExpirationDate' #{Shellwords.escape(plist_file)}`)
|
|
80
|
+
app_identifier = `/usr/libexec/PlistBuddy -c 'Print Entitlements:application-identifier' #{Shellwords.escape(plist_file)}`.chomp
|
|
81
|
+
app_id_name = `/usr/libexec/PlistBuddy -c 'Print AppIDName' #{Shellwords.escape(plist_file)}`.chomp
|
|
89
82
|
|
|
90
83
|
limit_days = calc_limit_days(datetime: expire_datetime)
|
|
91
|
-
|
|
92
|
-
rescue StandardError => e
|
|
93
|
-
raise(e.message)
|
|
94
84
|
ensure
|
|
95
|
-
temp_plist_file.close
|
|
85
|
+
temp_plist_file.close!
|
|
96
86
|
end
|
|
97
87
|
|
|
98
88
|
list << {
|
|
@@ -115,12 +105,12 @@ module AppleCertsInfo
|
|
|
115
105
|
raise "do not set name param" if name.nil?
|
|
116
106
|
|
|
117
107
|
info = []
|
|
108
|
+
temp_pem_file = certificate_exchange_pem_file_for(name: name)
|
|
118
109
|
begin
|
|
119
|
-
|
|
120
|
-
result = `openssl crl2pkcs7 -nocrl -certfile #{temp_pem_file.path} | openssl pkcs7 -print_certs -text -noout`
|
|
110
|
+
result = `openssl crl2pkcs7 -nocrl -certfile #{Shellwords.escape(temp_pem_file.path)} | openssl pkcs7 -print_certs -text -noout`
|
|
121
111
|
|
|
122
112
|
expire_datetime_match = result.scan(/.*Not After :(.*)/)
|
|
123
|
-
raise "not
|
|
113
|
+
raise "not exists expire date" if expire_datetime_match.empty?
|
|
124
114
|
|
|
125
115
|
cname_match = result.match(/Subject: .* CN=(.*), OU=.*/)
|
|
126
116
|
raise "not exists cname:#{result}" if cname_match.nil?
|
|
@@ -136,19 +126,18 @@ module AppleCertsInfo
|
|
|
136
126
|
:cname => cname,
|
|
137
127
|
}
|
|
138
128
|
end
|
|
139
|
-
rescue StandardError => e
|
|
140
|
-
raise(e.message)
|
|
141
129
|
ensure
|
|
142
|
-
temp_pem_file.close
|
|
130
|
+
temp_pem_file.close!
|
|
143
131
|
end
|
|
144
132
|
|
|
145
133
|
return info
|
|
146
134
|
end
|
|
147
135
|
|
|
148
136
|
|
|
149
|
-
|
|
137
|
+
# --- internal methods ---
|
|
138
|
+
|
|
150
139
|
def self.certificate_list_for(name:)
|
|
151
|
-
result = `security find-certificate -a -c
|
|
140
|
+
result = `security find-certificate -a -c #{Shellwords.escape(name)} -Z`
|
|
152
141
|
name_match_list = result.scan(/.*alis".*=\"(.*)\".*/)
|
|
153
142
|
puts(name_match_list) if @debug_log == true
|
|
154
143
|
|
|
@@ -157,7 +146,7 @@ module AppleCertsInfo
|
|
|
157
146
|
info << certificate_info_for(name:name_match[0])
|
|
158
147
|
end
|
|
159
148
|
|
|
160
|
-
info.flatten
|
|
149
|
+
info.flatten
|
|
161
150
|
end
|
|
162
151
|
|
|
163
152
|
# filtering list
|
|
@@ -174,7 +163,7 @@ module AppleCertsInfo
|
|
|
174
163
|
# @param name: unique name
|
|
175
164
|
def self.certificate_exchange_pem_file_for(name:)
|
|
176
165
|
temp_pem_file = Tempfile.new(::File.basename("temp_pem"))
|
|
177
|
-
`security find-certificate -a -c
|
|
166
|
+
`security find-certificate -a -c #{Shellwords.escape(name)} -p > #{Shellwords.escape(temp_pem_file.path)}`
|
|
178
167
|
|
|
179
168
|
temp_pem_file
|
|
180
169
|
end
|
|
@@ -182,4 +171,9 @@ module AppleCertsInfo
|
|
|
182
171
|
def self.calc_limit_days(datetime:)
|
|
183
172
|
((datetime - Time.now)/(24*60*60)).ceil
|
|
184
173
|
end
|
|
174
|
+
|
|
175
|
+
private_class_method :certificate_list_for,
|
|
176
|
+
:filtering_limit_days_for,
|
|
177
|
+
:certificate_exchange_pem_file_for,
|
|
178
|
+
:calc_limit_days
|
|
185
179
|
end
|
metadata
CHANGED
|
@@ -1,38 +1,28 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: apple_certs_info
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- tarappo
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-08-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
|
-
description:
|
|
13
|
+
description: Collects expiration dates of the Apple certificates in your macOS Keychain
|
|
14
|
+
and of the provisioning profiles on your machine, and lists the ones that expire
|
|
15
|
+
within a given number of days.
|
|
14
16
|
email:
|
|
15
17
|
- tarappo@gmail.com
|
|
16
18
|
executables: []
|
|
17
19
|
extensions: []
|
|
18
20
|
extra_rdoc_files: []
|
|
19
21
|
files:
|
|
20
|
-
- ".gitignore"
|
|
21
|
-
- ".idea/.gitignore"
|
|
22
|
-
- ".idea/.rakeTasks"
|
|
23
|
-
- ".idea/apple_certs_info.iml"
|
|
24
|
-
- ".idea/inspectionProfiles/Project_Default.xml"
|
|
25
|
-
- ".idea/misc.xml"
|
|
26
|
-
- ".idea/modules.xml"
|
|
27
|
-
- ".idea/vcs.xml"
|
|
28
|
-
- ".rakeTasks"
|
|
29
|
-
- ".rspec"
|
|
30
|
-
- ".rspec_status"
|
|
31
22
|
- CODE_OF_CONDUCT.md
|
|
32
23
|
- Gemfile
|
|
33
24
|
- Gemfile.lock
|
|
34
25
|
- LICENSE
|
|
35
|
-
- LICENSE.txt
|
|
36
26
|
- README.md
|
|
37
27
|
- Rakefile
|
|
38
28
|
- apple_certs_info.gemspec
|
|
@@ -45,7 +35,7 @@ metadata:
|
|
|
45
35
|
homepage_uri: https://github.com/tarappo/apple_certs_info
|
|
46
36
|
source_code_uri: https://github.com/tarappo/apple_certs_info
|
|
47
37
|
changelog_uri: https://github.com/tarappo/apple_certs_info/releases
|
|
48
|
-
post_install_message:
|
|
38
|
+
post_install_message:
|
|
49
39
|
rdoc_options: []
|
|
50
40
|
require_paths:
|
|
51
41
|
- lib
|
|
@@ -60,8 +50,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
60
50
|
- !ruby/object:Gem::Version
|
|
61
51
|
version: '0'
|
|
62
52
|
requirements: []
|
|
63
|
-
rubygems_version: 3.
|
|
64
|
-
signing_key:
|
|
53
|
+
rubygems_version: 3.4.19
|
|
54
|
+
signing_key:
|
|
65
55
|
specification_version: 4
|
|
66
56
|
summary: Apple Certificate files and Provisioning Profile information.
|
|
67
57
|
test_files: []
|
data/.gitignore
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
*.gem
|
|
2
|
-
*.rbc
|
|
3
|
-
/.config
|
|
4
|
-
/coverage/
|
|
5
|
-
/InstalledFiles
|
|
6
|
-
/pkg/
|
|
7
|
-
/spec/reports/
|
|
8
|
-
/spec/examples.txt
|
|
9
|
-
/test/tmp/
|
|
10
|
-
/test/version_tmp/
|
|
11
|
-
/tmp/
|
|
12
|
-
|
|
13
|
-
# Used by dotenv library to load environment variables.
|
|
14
|
-
# .env
|
|
15
|
-
|
|
16
|
-
# Ignore Byebug command history file.
|
|
17
|
-
.byebug_history
|
|
18
|
-
|
|
19
|
-
## Specific to RubyMotion:
|
|
20
|
-
.dat*
|
|
21
|
-
.repl_history
|
|
22
|
-
build/
|
|
23
|
-
*.bridgesupport
|
|
24
|
-
build-iPhoneOS/
|
|
25
|
-
build-iPhoneSimulator/
|
|
26
|
-
|
|
27
|
-
## Specific to RubyMotion (use of CocoaPods):
|
|
28
|
-
#
|
|
29
|
-
# We recommend against adding the Pods directory to your .gitignore. However
|
|
30
|
-
# you should judge for yourself, the pros and cons are mentioned at:
|
|
31
|
-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
|
32
|
-
#
|
|
33
|
-
# vendor/Pods/
|
|
34
|
-
|
|
35
|
-
## Documentation cache and generated files:
|
|
36
|
-
/.yardoc/
|
|
37
|
-
/_yardoc/
|
|
38
|
-
/doc/
|
|
39
|
-
/rdoc/
|
|
40
|
-
|
|
41
|
-
## Environment normalization:
|
|
42
|
-
/.bundle/
|
|
43
|
-
/vendor/bundle
|
|
44
|
-
/lib/bundler/man/
|
|
45
|
-
|
|
46
|
-
# for a library or gem, you might want to ignore these files since the code is
|
|
47
|
-
# intended to run in multiple environments; otherwise, check them in:
|
|
48
|
-
# Gemfile.lock
|
|
49
|
-
# .ruby-version
|
|
50
|
-
# .ruby-gemset
|
|
51
|
-
|
|
52
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
53
|
-
.rvmrc
|
|
54
|
-
|
|
55
|
-
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
|
56
|
-
# .rubocop-https?--*
|
data/.idea/.gitignore
DELETED
data/.idea/.rakeTasks
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<Settings><!--This file was automatically generated by Ruby plugin.
|
|
3
|
-
You are allowed to:
|
|
4
|
-
1. Remove rake task
|
|
5
|
-
2. Add existing rake tasks
|
|
6
|
-
To add existing rake tasks automatically delete this file and reload the project.
|
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
data/.idea/apple_certs_info.iml
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
|
3
|
-
<component name="ModuleRunConfigurationManager">
|
|
4
|
-
<shared />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="NewModuleRootManager">
|
|
7
|
-
<content url="file://$MODULE_DIR$">
|
|
8
|
-
<sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
|
|
9
|
-
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
|
10
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
|
11
|
-
<excludeFolder url="file://$MODULE_DIR$/vendor/bundle" />
|
|
12
|
-
</content>
|
|
13
|
-
<orderEntry type="inheritedJdk" />
|
|
14
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
15
|
-
<orderEntry type="module-library">
|
|
16
|
-
<library name="diff-lcs (vbundled(1.4.4)) [path][gem]" type="rubylib">
|
|
17
|
-
<properties>
|
|
18
|
-
<option name="version" value="4" />
|
|
19
|
-
</properties>
|
|
20
|
-
<CLASSES>
|
|
21
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/bin" />
|
|
22
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/lib" />
|
|
23
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/docs" />
|
|
24
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/spec" />
|
|
25
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/autotest" />
|
|
26
|
-
</CLASSES>
|
|
27
|
-
<SOURCES>
|
|
28
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/bin" />
|
|
29
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/lib" />
|
|
30
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/docs" />
|
|
31
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/spec" />
|
|
32
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/autotest" />
|
|
33
|
-
</SOURCES>
|
|
34
|
-
<excluded>
|
|
35
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/bin" />
|
|
36
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/docs" />
|
|
37
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/spec" />
|
|
38
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.4.4/autotest" />
|
|
39
|
-
</excluded>
|
|
40
|
-
</library>
|
|
41
|
-
</orderEntry>
|
|
42
|
-
<orderEntry type="module-library">
|
|
43
|
-
<library name="rake (vbundled(12.3.3)) [path][gem]" type="rubylib">
|
|
44
|
-
<properties>
|
|
45
|
-
<option name="version" value="4" />
|
|
46
|
-
</properties>
|
|
47
|
-
<CLASSES>
|
|
48
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin" />
|
|
49
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc" />
|
|
50
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe" />
|
|
51
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib" />
|
|
52
|
-
</CLASSES>
|
|
53
|
-
<SOURCES>
|
|
54
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin" />
|
|
55
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc" />
|
|
56
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe" />
|
|
57
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib" />
|
|
58
|
-
</SOURCES>
|
|
59
|
-
<excluded>
|
|
60
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin" />
|
|
61
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc" />
|
|
62
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe" />
|
|
63
|
-
</excluded>
|
|
64
|
-
</library>
|
|
65
|
-
</orderEntry>
|
|
66
|
-
<orderEntry type="module-library">
|
|
67
|
-
<library name="rspec (vbundled(3.10.0)) [path][gem]" type="rubylib">
|
|
68
|
-
<properties>
|
|
69
|
-
<option name="version" value="4" />
|
|
70
|
-
</properties>
|
|
71
|
-
<CLASSES>
|
|
72
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-3.10.0/lib" />
|
|
73
|
-
</CLASSES>
|
|
74
|
-
<SOURCES>
|
|
75
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-3.10.0/lib" />
|
|
76
|
-
</SOURCES>
|
|
77
|
-
</library>
|
|
78
|
-
</orderEntry>
|
|
79
|
-
<orderEntry type="module-library">
|
|
80
|
-
<library name="rspec-core (vbundled(3.10.1)) [path][gem]" type="rubylib">
|
|
81
|
-
<properties>
|
|
82
|
-
<option name="version" value="4" />
|
|
83
|
-
</properties>
|
|
84
|
-
<CLASSES>
|
|
85
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/exe" />
|
|
86
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib" />
|
|
87
|
-
</CLASSES>
|
|
88
|
-
<SOURCES>
|
|
89
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/exe" />
|
|
90
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/lib" />
|
|
91
|
-
</SOURCES>
|
|
92
|
-
<excluded>
|
|
93
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.10.1/exe" />
|
|
94
|
-
</excluded>
|
|
95
|
-
</library>
|
|
96
|
-
</orderEntry>
|
|
97
|
-
<orderEntry type="module-library">
|
|
98
|
-
<library name="rspec-expectations (vbundled(3.10.1)) [path][gem]" type="rubylib">
|
|
99
|
-
<properties>
|
|
100
|
-
<option name="version" value="4" />
|
|
101
|
-
</properties>
|
|
102
|
-
<CLASSES>
|
|
103
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib" />
|
|
104
|
-
</CLASSES>
|
|
105
|
-
<SOURCES>
|
|
106
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.10.1/lib" />
|
|
107
|
-
</SOURCES>
|
|
108
|
-
</library>
|
|
109
|
-
</orderEntry>
|
|
110
|
-
<orderEntry type="module-library">
|
|
111
|
-
<library name="rspec-mocks (vbundled(3.10.2)) [path][gem]" type="rubylib">
|
|
112
|
-
<properties>
|
|
113
|
-
<option name="version" value="4" />
|
|
114
|
-
</properties>
|
|
115
|
-
<CLASSES>
|
|
116
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib" />
|
|
117
|
-
</CLASSES>
|
|
118
|
-
<SOURCES>
|
|
119
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.10.2/lib" />
|
|
120
|
-
</SOURCES>
|
|
121
|
-
</library>
|
|
122
|
-
</orderEntry>
|
|
123
|
-
<orderEntry type="module-library">
|
|
124
|
-
<library name="rspec-support (vbundled(3.10.2)) [path][gem]" type="rubylib">
|
|
125
|
-
<properties>
|
|
126
|
-
<option name="version" value="4" />
|
|
127
|
-
</properties>
|
|
128
|
-
<CLASSES>
|
|
129
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib" />
|
|
130
|
-
</CLASSES>
|
|
131
|
-
<SOURCES>
|
|
132
|
-
<root url="file://$MODULE_DIR$/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.10.2/lib" />
|
|
133
|
-
</SOURCES>
|
|
134
|
-
</library>
|
|
135
|
-
</orderEntry>
|
|
136
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.2, rbenv: 2.6.5) [gem]" level="application" />
|
|
137
|
-
</component>
|
|
138
|
-
</module>
|
data/.idea/misc.xml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="JavaScriptSettings">
|
|
4
|
-
<option name="languageLevel" value="ES6" />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="ProjectRootManager" version="2" project-jdk-name="rbenv: 2.6.5" project-jdk-type="RUBY_SDK" />
|
|
7
|
-
</project>
|
data/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/apple_certs_info.iml" filepath="$PROJECT_DIR$/.idea/apple_certs_info.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
data/.idea/vcs.xml
DELETED
data/.rakeTasks
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<Settings><!--This file was automatically generated by Ruby plugin.
|
|
3
|
-
You are allowed to:
|
|
4
|
-
1. Remove rake task
|
|
5
|
-
2. Add existing rake tasks
|
|
6
|
-
To add existing rake tasks automatically delete this file and reload the project.
|
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
data/.rspec
DELETED
data/.rspec_status
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
example_id | status | run_time |
|
|
2
|
-
------------------------------------ | ------- | --------------- |
|
|
3
|
-
./spec/apple_certs_info_spec.rb[1:1] | passed | 0.00054 seconds |
|
|
4
|
-
./spec/apple_certs_info_spec.rb[1:2] | pending | 0.00001 seconds |
|
|
5
|
-
./spec/apple_certs_info_spec.rb[1:3] | passed | 0.37772 seconds |
|
|
6
|
-
./spec/apple_certs_info_spec.rb[1:4] | pending | 0.00002 seconds |
|
data/LICENSE.txt
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2021 Toshiyuki Hirata
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE.
|