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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1809b2104213abf8d06e1e9bcae8ee4716889623b5aafd61b3e30a0aaad0ad5
4
- data.tar.gz: d9b149f6bdecee70877c0a68fd7ec22733f6fb916ae2f7be23afa29e8b8356f0
3
+ metadata.gz: d0ebfe01852707c469bebb6c19cb61ead202d4386b441f77d14b27fb9c5aa0a4
4
+ data.tar.gz: da5575bf7d113c0eb6af72d08dd706c497fc921237b66ef965b1bff71fb89b93
5
5
  SHA512:
6
- metadata.gz: d689a92582e1f4537c97daa5d5acd06b7e2a2b45154e0cbf350bf1d52aa17cf43cda44c9b8a0fa63f4562cc4b27583c821aca45f96d6ed6291d0a33d1f1cb57f
7
- data.tar.gz: 1377dc070866eca0cf675eadd5f270e301aaee72b83c4925a376f44943488d26ddeb8dde4dd1d63ed35a217374f3a344eec2406d89931b1da44fdf5dfa4da4b3
6
+ metadata.gz: 7ae1bd29c9e5a8f742fa5839629b9b198b8484e3466f6f36f2d15df9fd33fc2e7151f4db3e99ea12f237b1ead6a675c8b71cd86484e11cf9eebbeacbc4bb09ca
7
+ data.tar.gz: ef1e4489820f419379744ede0bcc9afb5568c377b9b78f9c1472d001142ce094a033f1a7274c8dbc61251af997d829747847c5b6122905fb340200abdc75da24
data/Gemfile CHANGED
@@ -2,5 +2,5 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem "rake", "~> 12.0"
5
+ gem "rake", "~> 13.0"
6
6
  gem "rspec", "~> 3.0"
data/Gemfile.lock CHANGED
@@ -1,34 +1,34 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- apple_certs_info (0.3.2)
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.4.4)
10
- rake (12.3.3)
11
- rspec (3.10.0)
12
- rspec-core (~> 3.10.0)
13
- rspec-expectations (~> 3.10.0)
14
- rspec-mocks (~> 3.10.0)
15
- rspec-core (3.10.1)
16
- rspec-support (~> 3.10.0)
17
- rspec-expectations (3.10.1)
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.10.0)
20
- rspec-mocks (3.10.2)
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.10.0)
23
- rspec-support (3.10.2)
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 (~> 12.0)
30
+ rake (~> 13.0)
31
31
  rspec (~> 3.0)
32
32
 
33
33
  BUNDLED WITH
34
- 2.1.4
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
- - Certificatefiles(Development / Distribution)
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/master/CODE_OF_CONDUCT.md).
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/master/CODE_OF_CONDUCT.md).
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).
@@ -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) }
@@ -1,3 +1,3 @@
1
1
  module AppleCertsInfo
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -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
- list = []
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
- list = []
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 '#{file}' > #{plist_file}")
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 && temp_plist_file.unlink
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
- temp_pem_file = certificate_exchange_pem_file_for(name: name)
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 exits expire date" if expire_datetime_match.nil?
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 && temp_pem_file.unlink
130
+ temp_pem_file.close!
143
131
  end
144
132
 
145
133
  return info
146
134
  end
147
135
 
148
136
 
149
- private
137
+ # --- internal methods ---
138
+
150
139
  def self.certificate_list_for(name:)
151
- result = `security find-certificate -a -c "#{name}" -Z`
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 "#{name}" -p > #{temp_pem_file.path}`
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.3.2
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: 2021-02-22 00:00:00.000000000 Z
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.0.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
@@ -1,8 +0,0 @@
1
- # Default ignored files
2
- /shelf/
3
- /workspace.xml
4
- # Datasource local storage ignored files
5
- /dataSources/
6
- /dataSources.local.xml
7
- # Editor-based HTTP Client requests
8
- /httpRequests/
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>
@@ -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>
@@ -1,6 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
5
- </profile>
6
- </component>
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
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- </component>
6
- </project>
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
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
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.