cocoapods-keys 1.3.2 → 1.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
  SHA1:
3
- metadata.gz: dfeb86756e80df052b99475db7380a3b4801d4fd
4
- data.tar.gz: 3a7db4640787b9daf6cf98a3a7764759425ab908
3
+ metadata.gz: c5cc6251eb10bbe87ceee4a1f3643dfe4b7506da
4
+ data.tar.gz: c243d7584efda5c4c4693c090ba4b50bd7228857
5
5
  SHA512:
6
- metadata.gz: e8d025668c6ce05268a8b908c4a0e8d737725f74ab1d7e5b8b1a94afac977c1fdcde767ea02c02c4a2b2f2a1b13dce964ae25d913437f7b76e596ca4694b5989
7
- data.tar.gz: 6e403a3dac62f4b1f0e89a2bbf6659d740a8fe3ec202eb6929475db609f5ac87b83f3401a33f9cd080710dfc08dca6e1503e91d6d284a33456a0d26180ec2662
6
+ metadata.gz: 252122f84b76036ad1ad0ec68ae54673f8e76d3c2b02d7305b0a63ffcb4729ade9f8f6736441f8b29635975d82941291b0215f86430ddd47ce6173ffc190a139
7
+ data.tar.gz: e46843504016015797d39a682b6a23fb53ccbb1b2e330f07bd0481b9b2e86e833e7ac61752d9b0845e451f81acd027a7f3c12c7f1ee40741e5e36cc49cdddefb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## Master
2
2
 
3
+ ## 1.4.0
4
+
5
+ * Adds support for ENV VAR based keys, this makes CI much easier to work with [alloy, orta]
6
+
3
7
  ## 1.3.2
4
8
 
5
9
  * Use relative paths for generated Podspec [segiddins]
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cocoapods-keys (1.3.2)
4
+ cocoapods-keys (1.4.0)
5
5
  osx_keychain
6
6
 
7
7
  GEM
@@ -102,4 +102,4 @@ DEPENDENCIES
102
102
  rubocop
103
103
 
104
104
  BUNDLED WITH
105
- 1.10.0
105
+ 1.10.5
@@ -1,3 +1,3 @@
1
1
  module CocoaPodsKeys
2
- VERSION = '1.3.2'
2
+ VERSION = '1.4.0'
3
3
  end
data/lib/key_master.rb CHANGED
@@ -9,8 +9,9 @@ module CocoaPodsKeys
9
9
 
10
10
  def initialize(keyring, time = Time.now)
11
11
  @time = time
12
- @keys = Hash[keyring.keychain_data.map { |(key, value)| [key[0].downcase + key[1..-1], value] }]
13
- @name = keyring.code_name + 'Keys'
12
+ @keys = keyring.camel_cased_keys
13
+ @name = keyring.code_name.capitalize + 'Keys'
14
+
14
15
  @used_indexes = Set.new
15
16
  @indexed_keys = {}
16
17
  @data = generate_data
data/lib/keyring.rb CHANGED
@@ -34,8 +34,12 @@ module CocoaPodsKeys
34
34
  def keychain_data
35
35
  keychain = OSXKeychain.new
36
36
  Hash[
37
- @keys.map { |key| [key, keychain[self.class.keychain_prefix + name, key]] }
37
+ @keys.map { |key| [key, ENV[key] || keychain[self.class.keychain_prefix + name, key]] }
38
38
  ]
39
39
  end
40
+
41
+ def camel_cased_keys
42
+ Hash[keychain_data.map { |(key, value)| [key[0].downcase + key[1..-1], value] }]
43
+ end
40
44
  end
41
45
  end
@@ -7,15 +7,15 @@ module CocoaPodsKeys
7
7
  if podfile
8
8
  user_xcodeproj = xcodeproj_from_podfile(podfile)
9
9
  end
10
- user_xcodeproj ||= search_folders_for_xcodeproj
11
- user_xcodeproj.basename('.xcodeproj')
10
+ user_xcodeproj || search_folders_for_xcodeproj
12
11
  end
13
12
 
14
13
  private
15
14
 
16
15
  def self.xcodeproj_from_podfile(podfile)
17
16
  unless podfile.target_definition_list.empty?
18
- return podfile.target_definition_list.first.user_project_path
17
+ project_path = podfile.target_definition_list.first.user_project_path
18
+ File.basename(project_path, '.xcodeproj') if project_path
19
19
  end
20
20
  end
21
21
 
@@ -23,7 +23,7 @@ module CocoaPodsKeys
23
23
  ui = Pod::UserInterface
24
24
  xcodeprojects = Pathname.glob('**/*.xcodeproj')
25
25
  if xcodeprojects.length == 1
26
- Pathname(xcodeprojects.first).basename
26
+ Pathname(xcodeprojects.first).basename('.xcodeproj')
27
27
  else
28
28
  error_message = (xcodeprojects.length > 1) ? 'found too many' : "couldn't find any"
29
29
  ui.puts 'CocoaPods-Keys ' + error_message + ' Xcode projects. Please give a name for this project.'
data/lib/plugin.rb CHANGED
@@ -9,10 +9,12 @@ module CocoaPodsKeys
9
9
  def setup
10
10
  require 'preinstaller'
11
11
 
12
- PreInstaller.new(user_options).setup
12
+ unless PreInstaller.new(user_options).setup
13
+ raise Pod::Informative, 'Could not load key data'
14
+ end
13
15
 
14
16
  installation_root = Pod::Config.instance.installation_root
15
- keys_path = installation_root.+('Pods/CocoaPodsKeys/').relative_path_from(installation_root)
17
+ keys_path = installation_root.+('Pods/CocoaPodsKeys/')
16
18
 
17
19
  # move our podspec in to the Pods
18
20
  mkdir_p keys_path
@@ -22,7 +24,11 @@ module CocoaPodsKeys
22
24
  # Get all the keys
23
25
  local_user_options = user_options || {}
24
26
  project = local_user_options.fetch('project') { CocoaPodsKeys::NameWhisperer.get_project_name }
25
- keyring = KeyringLiberator.get_keyring_named(project) || KeyringLiberator.get_keyring(Pathname.pwd)
27
+
28
+ keyring = KeyringLiberator.get_keyring_named(project) ||
29
+ KeyringLiberator.get_keyring(Dir.getwd) ||
30
+ Keyring.new(project, Dir.getwd, local_user_options['keys'])
31
+
26
32
  raise Pod::Informative, 'Could not load keyring' unless keyring
27
33
 
28
34
  # Create the h & m files in the same folder as the podspec
@@ -34,7 +40,7 @@ module CocoaPodsKeys
34
40
  File.write(implementation_file, key_master.implementation)
35
41
 
36
42
  # Add our template podspec
37
- add_keys_to_pods(keys_path, user_options)
43
+ add_keys_to_pods(keys_path.relative_path_from(installation_root), user_options)
38
44
  end
39
45
 
40
46
  def add_keys_to_pods(keys_path, options)
@@ -1,6 +1,8 @@
1
1
  module Pod
2
2
  class Command
3
3
  class Keys < Command
4
+ include ProjectDirectory
5
+
4
6
  require 'pod/command/keys/list'
5
7
  require 'pod/command/keys/set'
6
8
  require 'pod/command/keys/get'
data/lib/preinstaller.rb CHANGED
@@ -4,6 +4,8 @@ module CocoaPodsKeys
4
4
  @user_options = user_options
5
5
  end
6
6
 
7
+ # Returns `true` if all keys specified by the user are satisfied by either an existing keyring or environment
8
+ # variables.
7
9
  def setup
8
10
  require 'key_master'
9
11
  require 'keyring_liberator'
@@ -17,14 +19,14 @@ module CocoaPodsKeys
17
19
  project = options.fetch('project') { CocoaPodsKeys::NameWhisperer.get_project_name }
18
20
  keyring = KeyringLiberator.get_keyring_named(project) || KeyringLiberator.get_keyring(current_dir)
19
21
 
22
+ existing_keyring = !keyring.nil?
20
23
  keyring = CocoaPodsKeys::Keyring.new(project, current_dir, []) unless keyring
21
24
 
22
25
  data = keyring.keychain_data
23
26
  has_shown_intro = false
24
27
  keys = options.fetch('keys', [])
25
28
  keys.each do |key|
26
- unless data.keys.include? key
27
-
29
+ unless ENV[key] || data.keys.include?(key)
28
30
  unless has_shown_intro
29
31
  ui.puts "\n CocoaPods-Keys has detected a keys mismatch for your setup."
30
32
  has_shown_intro = true
@@ -42,9 +44,10 @@ module CocoaPodsKeys
42
44
  args = CLAide::ARGV.new([key, answer, keyring.name])
43
45
  setter = Pod::Command::Keys::Set.new(args)
44
46
  setter.run
45
-
46
47
  end
47
48
  end
49
+
50
+ existing_keyring || !keys.empty?
48
51
  end
49
52
  end
50
53
  end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'keyring'
3
+
4
+ include CocoaPodsKeys
5
+
6
+ describe KeyringLiberator do
7
+ before(:each) do
8
+ ENV['ARMyKey'] = 'Hello'
9
+ end
10
+
11
+ after(:each) do
12
+ ENV['ARMyKey'] = nil
13
+ end
14
+
15
+ it 'can get keys from ENV' do
16
+ keyring = Keyring.new('test', '/', ['ARMyKey'])
17
+ expect(keyring.keychain_data).to eq('ARMyKey' => 'Hello')
18
+ end
19
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Orta Therox
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-25 00:00:00.000000000 Z
12
+ date: 2015-07-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: osx_keychain
@@ -122,6 +122,7 @@ files:
122
122
  - spec/functional_spec.rb
123
123
  - spec/key_master_spec.rb
124
124
  - spec/keyring_liberator_spec.rb
125
+ - spec/keyring_spec.rb
125
126
  - spec/plugin_spec.rb
126
127
  - spec/spec_helper.rb
127
128
  - templates/Keys.h.erb
@@ -161,5 +162,6 @@ test_files:
161
162
  - spec/functional_spec.rb
162
163
  - spec/key_master_spec.rb
163
164
  - spec/keyring_liberator_spec.rb
165
+ - spec/keyring_spec.rb
164
166
  - spec/plugin_spec.rb
165
167
  - spec/spec_helper.rb