apple_certs_info 0.3.1 → 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: 74f692fa4bb40d9c467b059a723d622acf96a7beb5c4c75b74c5188821f11dca
4
- data.tar.gz: 0a901d56f4645f234dc3dd3bd87dacd1a2d3c58763e909f85759e07f06dd6852
3
+ metadata.gz: d0ebfe01852707c469bebb6c19cb61ead202d4386b441f77d14b27fb9c5aa0a4
4
+ data.tar.gz: da5575bf7d113c0eb6af72d08dd706c497fc921237b66ef965b1bff71fb89b93
5
5
  SHA512:
6
- metadata.gz: 2c78f4bbbee1026f7f7e0606981721f811156e226c1ef2cb1c0d0a42086fecf80903f4e8f8238cdd307023a8c45dc00e212d7c24607c048d74e88f33d7df197d
7
- data.tar.gz: ce66b90a21eac2f27494526d4e913db42429be2c8655dc80ba41d3b3848ef08a381c4fb18e235d95d8df3eec3585852aa85027ca008e62c3a9cfbccbad15501c
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.1)
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,9 +7,10 @@ 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
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
13
14
 
14
15
  spec.metadata["homepage_uri"] = spec.homepage
15
16
  spec.metadata["source_code_uri"] = "https://github.com/tarappo/apple_certs_info"
@@ -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.1"
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
@@ -13,21 +14,6 @@ module AppleCertsInfo
13
14
  @debug_log
14
15
  end
15
16
 
16
- # Remove duplicate certificate
17
- # remove first data
18
- def self.remove_duplicate_certificate
19
- list = []
20
- dist_list = certificate_distribution_list
21
- develop_list = certificate_development_list
22
- list.concat(dist_list) unless dist_list.nil?
23
- list.concat(develop_list) unless develop_list.nil?
24
-
25
- duplicate_cname = list.group_by{ |e| e[:cname] }.select { |k, v| v.size > 1 }.map(&:first)
26
- duplicate_cname.each do |cname|
27
- delete_first_match_keychain(name: cname)
28
- end
29
- end
30
-
31
17
  # Check Certificate file for iPhone Developer /Apple Development in the KeyChain
32
18
  # @param days: limit days
33
19
  # @return:
@@ -64,22 +50,12 @@ module AppleCertsInfo
64
50
 
65
51
  # All iPhone Developer and Apple Development List
66
52
  def self.certificate_development_list
67
- list = []
68
- iphone_list = certificate_list_for(name: "iPhone Developer")
69
- apple_list = certificate_list_for(name: "Apple Development")
70
- list.concat(iphone_list) unless iphone_list.nil?
71
- list.concat(apple_list) unless apple_list.nil?
72
- return list
53
+ certificate_list_for(name: "iPhone Developer") + certificate_list_for(name: "Apple Development")
73
54
  end
74
55
 
75
56
  # All iPhone Distribution and Apple Distribution List
76
57
  def self.certificate_distribution_list
77
- list = []
78
- iphone_list = certificate_list_for(name: "iPhone Distribution")
79
- apple_list = certificate_list_for(name: "Apple Distribution")
80
- list.concat(iphone_list) unless iphone_list.nil?
81
- list.concat(apple_list) unless apple_list.nil?
82
- return list
58
+ certificate_list_for(name: "iPhone Distribution") + certificate_list_for(name: "Apple Distribution")
83
59
  end
84
60
 
85
61
  # Provisioning Profile List
@@ -95,26 +71,26 @@ module AppleCertsInfo
95
71
 
96
72
  begin
97
73
  # exchange plist file
98
- 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
99
77
 
100
78
  # checking plist file
101
- expire_datetime = Time.parse(`/usr/libexec/PlistBuddy -c 'Print ExpirationDate' #{plist_file}`)
102
- app_identifier = `/usr/libexec/PlistBuddy -c 'Print Entitlements:application-identifier' #{plist_file}`.chomp
103
- 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
104
82
 
105
83
  limit_days = calc_limit_days(datetime: expire_datetime)
106
-
107
- rescue StandardError => e
108
- raise(e.message)
109
84
  ensure
110
- temp_plist_file.close && temp_plist_file.unlink
85
+ temp_plist_file.close!
111
86
  end
112
87
 
113
88
  list << {
114
89
  :expire_datetime => expire_datetime,
115
90
  :limit_days => limit_days,
116
91
  :app_identifier => app_identifier,
117
- :app_id_name => app_id_name
92
+ :app_id_name => app_id_name,
93
+ :file_path => file_name_match[0]
118
94
  }
119
95
  end
120
96
  return list
@@ -129,12 +105,12 @@ module AppleCertsInfo
129
105
  raise "do not set name param" if name.nil?
130
106
 
131
107
  info = []
108
+ temp_pem_file = certificate_exchange_pem_file_for(name: name)
132
109
  begin
133
- temp_pem_file = certificate_exchange_pem_file_for(name: name)
134
- 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`
135
111
 
136
112
  expire_datetime_match = result.scan(/.*Not After :(.*)/)
137
- raise "not exits expire date" if expire_datetime_match.nil?
113
+ raise "not exists expire date" if expire_datetime_match.empty?
138
114
 
139
115
  cname_match = result.match(/Subject: .* CN=(.*), OU=.*/)
140
116
  raise "not exists cname:#{result}" if cname_match.nil?
@@ -150,31 +126,18 @@ module AppleCertsInfo
150
126
  :cname => cname,
151
127
  }
152
128
  end
153
- rescue StandardError => e
154
- raise(e.message)
155
129
  ensure
156
- temp_pem_file.close && temp_pem_file.unlink
130
+ temp_pem_file.close!
157
131
  end
158
132
 
159
133
  return info
160
134
  end
161
135
 
162
136
 
163
- private
164
- def self.delete_first_match_keychain(name:)
165
- result = `security find-certificate -a -c "#{name}" -Z`
166
- sha_match = result.match(/SHA-1 hash: (.*)/)
167
- keychain_path = result.match(/keychain: (.*)/)
168
- raise "not exits sha-1" if sha_match.nil?
169
- raise "not exits keychain_path" if keychain_path.nil?
170
- sha1 = sha_match[1]
171
- puts "Delete #{name} / SHA-1: #{sha1}"
172
-
173
- result = `security delete-certificate -Z #{sha1} #{keychain_path[1]}`
174
- end
137
+ # --- internal methods ---
175
138
 
176
139
  def self.certificate_list_for(name:)
177
- result = `security find-certificate -a -c "#{name}" -Z`
140
+ result = `security find-certificate -a -c #{Shellwords.escape(name)} -Z`
178
141
  name_match_list = result.scan(/.*alis".*=\"(.*)\".*/)
179
142
  puts(name_match_list) if @debug_log == true
180
143
 
@@ -183,7 +146,7 @@ module AppleCertsInfo
183
146
  info << certificate_info_for(name:name_match[0])
184
147
  end
185
148
 
186
- info.flatten!
149
+ info.flatten
187
150
  end
188
151
 
189
152
  # filtering list
@@ -200,7 +163,7 @@ module AppleCertsInfo
200
163
  # @param name: unique name
201
164
  def self.certificate_exchange_pem_file_for(name:)
202
165
  temp_pem_file = Tempfile.new(::File.basename("temp_pem"))
203
- `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)}`
204
167
 
205
168
  temp_pem_file
206
169
  end
@@ -208,4 +171,9 @@ module AppleCertsInfo
208
171
  def self.calc_limit_days(datetime:)
209
172
  ((datetime - Time.now)/(24*60*60)).ceil
210
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
211
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.1
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-19 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
@@ -53,15 +43,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
43
  requirements:
54
44
  - - ">="
55
45
  - !ruby/object:Gem::Version
56
- version: 2.3.0
46
+ version: 2.5.0
57
47
  required_rubygems_version: !ruby/object:Gem::Requirement
58
48
  requirements:
59
49
  - - ">="
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.