cocoapods-keys 1.1.0 → 1.2.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: 18be4c87abf2316d890e3cf029d415c0698c9f3e
4
- data.tar.gz: 9f00ae2e7edfda4d6241d2902796fa14fbd18be0
3
+ metadata.gz: e7c5d62383ab9ac2287735144c277f3099d90f36
4
+ data.tar.gz: dab1b6a1541c32ba40e8c6ad38663a2b34feff4d
5
5
  SHA512:
6
- metadata.gz: b2e54f948ebe951f8258552859840c46be4894ddc84884b09d9931aac5da9ebc68d3adfe604c997da9a4fd325650c18f3fe29cde7b8a41400de4c53f2ab07837
7
- data.tar.gz: ca51a2f69df3d96ef32acbf8899d81a2467686edc344b4141ee53942749693a96dfa9e0b561cd8019d7a8afd83b3400d22afd618607f127dcf0db6a408c148a6
6
+ metadata.gz: 87d539ff6b1552ea3961339bd953454b5c44667355d984859c60f15a5f05df58eed5b54df7d6eff2086bfa13423ba86fa4b958174c45a5aa7c23b8d0d09763b3
7
+ data.tar.gz: 2774d1839f1726299ed43b92dc5317ec7ff31735cb9e2c53ea049d4ef4d0768d300c078ef8bc8c4fc7d5fce025af7c2e78e2f7d740ebc0de24c48cfe571d21cd
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .DS_Store
2
2
  pkg
3
3
  .idea/
4
+ spec/fixtures/dump-key
data/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ ## Master
2
+
3
+ ## 1.2.0
4
+
5
+ * Support for correctly scoping Keys to a target [orta]
6
+ * Support CocoaPods 0.37+ via CocoaPods development Pods [orta]
7
+
8
+ ## 1.1.0
9
+
10
+ * Don't integrate in a project unless keys is declared in the `plugin` [orta]
11
+
12
+ ## 1.0.2
13
+
14
+ * Support both :key and "key" in user settings [alloy]
15
+ * Use ERB templates for the .m & .h [lyricsboy]
16
+ * Frameworks support [ashfurrow]
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in cocoapods-keys.gemspec
4
4
  gemspec
5
+
6
+ gem 'cocoapods'
data/Gemfile.lock CHANGED
@@ -1,17 +1,59 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cocoapods-keys (1.1.0)
4
+ cocoapods-keys (1.2.0)
5
5
  osx_keychain
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- RubyInline (3.12.3)
10
+ RubyInline (3.12.4)
11
11
  ZenTest (~> 4.3)
12
12
  ZenTest (4.11.0)
13
+ activesupport (4.2.1)
14
+ i18n (~> 0.7)
15
+ json (~> 1.7, >= 1.7.7)
16
+ minitest (~> 5.1)
17
+ thread_safe (~> 0.3, >= 0.3.4)
18
+ tzinfo (~> 1.1)
19
+ claide (0.8.1)
20
+ cocoapods (0.36.3)
21
+ activesupport (>= 3.2.15)
22
+ claide (~> 0.8.1)
23
+ cocoapods-core (= 0.36.3)
24
+ cocoapods-downloader (~> 0.9.0)
25
+ cocoapods-plugins (~> 0.4.1)
26
+ cocoapods-trunk (~> 0.6.0)
27
+ cocoapods-try (~> 0.4.3)
28
+ colored (~> 1.2)
29
+ escape (~> 0.0.4)
30
+ molinillo (~> 0.2.1)
31
+ nap (~> 0.8)
32
+ open4 (~> 1.3)
33
+ xcodeproj (~> 0.23.1)
34
+ cocoapods-core (0.36.3)
35
+ activesupport (>= 3.2.15)
36
+ fuzzy_match (~> 2.0.4)
37
+ nap (~> 0.8.0)
38
+ cocoapods-downloader (0.9.0)
39
+ cocoapods-plugins (0.4.2)
40
+ nap
41
+ cocoapods-trunk (0.6.0)
42
+ nap (>= 0.8)
43
+ netrc (= 0.7.8)
44
+ cocoapods-try (0.4.3)
45
+ colored (1.2)
13
46
  diff-lcs (1.2.5)
14
- osx_keychain (1.0.0)
47
+ escape (0.0.4)
48
+ fuzzy_match (2.0.4)
49
+ i18n (0.7.0)
50
+ json (1.8.2)
51
+ minitest (5.5.1)
52
+ molinillo (0.2.3)
53
+ nap (0.8.0)
54
+ netrc (0.7.8)
55
+ open4 (1.3.4)
56
+ osx_keychain (1.0.1)
15
57
  RubyInline (~> 3)
16
58
  rake (10.3.2)
17
59
  rspec (3.2.0)
@@ -27,12 +69,19 @@ GEM
27
69
  diff-lcs (>= 1.2.0, < 2.0)
28
70
  rspec-support (~> 3.2.0)
29
71
  rspec-support (3.2.2)
72
+ thread_safe (0.3.5)
73
+ tzinfo (1.2.2)
74
+ thread_safe (~> 0.1)
75
+ xcodeproj (0.23.1)
76
+ activesupport (>= 3)
77
+ colored (~> 1.2)
30
78
 
31
79
  PLATFORMS
32
80
  ruby
33
81
 
34
82
  DEPENDENCIES
35
83
  bundler (~> 1.3)
84
+ cocoapods
36
85
  cocoapods-keys!
37
86
  rake
38
87
  rspec
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ ![Build Status](https://travis-ci.org/orta/cocoapods-keys.svg)
2
+
1
3
  A key value store for enviroment and application keys.
2
4
 
3
5
  Its good security practice to keep production keys out of developer hands. CocoaPods-keys makes it easy to have per-user config settings stored securely in the developer's keychain, and not in the application source. It is a plugin that once installed will run on every `pod install` or `pod update`.
data/Rakefile CHANGED
@@ -1,6 +1,14 @@
1
1
  require 'bundler/gem_tasks'
2
- require "rspec/core/rake_task"
3
2
 
4
- RSpec::Core::RakeTask.new(:spec)
3
+ dump_keys_tool = 'spec/fixtures/dump-key'
4
+ dump_keys_source_file = "#{dump_keys_tool}.m"
5
+ file dump_keys_tool => dump_keys_source_file do
6
+ sh "xcrun clang -framework Foundation #{dump_keys_source_file} -o #{dump_keys_tool}"
7
+ end
8
+
9
+ desc "Run tests"
10
+ task :spec => dump_keys_tool do
11
+ sh "bundle exec rspec spec/*_spec.rb"
12
+ end
5
13
 
6
14
  task :default => :spec
@@ -1,3 +1,3 @@
1
1
  module CocoaPodsKeys
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -3,48 +3,48 @@ require "yaml"
3
3
  require "pathname"
4
4
 
5
5
  module CocoaPodsKeys
6
- class KeyringLiberator
6
+ class KeyringLiberator
7
7
 
8
- # Gets given a gives back a Keyring for the project
9
- # by basically parsing it out of ~/.cocoapods/keys/"pathMD5".yml
8
+ # Gets given a gives back a Keyring for the project
9
+ # by basically parsing it out of ~/.cocoapods/keys/"pathMD5".yml
10
10
 
11
- def self.keys_dir
12
- Pathname.new("~/.cocoapods/keys/").expand_path.to_s
13
- end
11
+ def self.keys_dir
12
+ Pathname.new("~/.cocoapods/keys/").expand_path.to_s
13
+ end
14
14
 
15
- def self.yaml_path_for_path(path)
16
- sha = Digest::MD5.hexdigest(path)
17
- File.join(keys_dir, sha + '.yml')
18
- end
15
+ def self.yaml_path_for_path(path)
16
+ sha = Digest::MD5.hexdigest(path)
17
+ File.join(keys_dir, sha + '.yml')
18
+ end
19
19
 
20
- def self.get_keyring(path)
21
- get_keyring_at_path(yaml_path_for_path(path))
22
- end
23
-
24
- def self.get_keyring_named(name)
25
- self.get_all_keyrings.find { |k| k.name == name }
26
- end
20
+ def self.get_keyring(path)
21
+ get_keyring_at_path(yaml_path_for_path(path))
22
+ end
23
+
24
+ def self.get_keyring_named(name)
25
+ self.get_all_keyrings.find { |k| k.name == name }
26
+ end
27
27
 
28
- def self.save_keyring(keyring)
29
- `mkdir -p #{keys_dir}`
28
+ def self.save_keyring(keyring)
29
+ `mkdir -p #{keys_dir}`
30
30
 
31
- File.open(yaml_path_for_path(keyring.path), 'w') {|f| f.write(YAML::dump(keyring.to_hash)) }
32
- end
31
+ File.open(yaml_path_for_path(keyring.path), 'w') {|f| f.write(YAML::dump(keyring.to_hash)) }
32
+ end
33
33
 
34
- def self.get_all_keyrings()
35
- return [] unless Dir.exist? keys_dir
36
- rings = []
37
- Dir.glob(keys_dir + "/*.yml").each do |path|
38
- rings << get_keyring_at_path(path)
39
- end
40
- rings
34
+ def self.get_all_keyrings
35
+ return [] unless Dir.exist? keys_dir
36
+ rings = []
37
+ Dir.glob(keys_dir + "/*.yml").each do |path|
38
+ rings << get_keyring_at_path(path)
41
39
  end
40
+ rings
41
+ end
42
42
 
43
- :private
44
-
45
- def self.get_keyring_at_path(path)
46
- Keyring.from_hash(YAML.load(File.read(path))) if File.exist?(path)
47
- end
43
+ private
48
44
 
45
+ def self.get_keyring_at_path(path)
46
+ Keyring.from_hash(YAML.load(File.read(path))) if File.exist?(path)
49
47
  end
48
+
49
+ end
50
50
  end
data/lib/plugin.rb CHANGED
@@ -2,23 +2,48 @@ require 'cocoapods-core'
2
2
 
3
3
  module CocoaPodsKeys
4
4
  class << self
5
- def podspec_for_current_project(spec_contents)
5
+
6
+ def setup
7
+ require 'preinstaller'
8
+
9
+ PreInstaller.new(user_options).setup
10
+
11
+ # move our podspec in to the Pods
12
+ `mkdir Pods/CocoaPodsKeys` unless Dir.exists? "Pods/CocoaPodsKeys"
13
+ podspec_path = File.join(__dir__, "../templates", "Keys.podspec.json")
14
+ `cp "#{podspec_path}" Pods/CocoaPodsKeys`
15
+
16
+ # Get all the keys
6
17
  local_user_options = user_options || {}
7
18
  project = local_user_options.fetch("project") { CocoaPodsKeys::NameWhisperer.get_project_name }
8
19
  keyring = KeyringLiberator.get_keyring_named(project) || KeyringLiberator.get_keyring(Dir.getwd)
9
20
  raise Pod::Informative, "Could not load keyring" unless keyring
21
+
22
+ # Create the h & m files in the same folder as the podspec
10
23
  key_master = KeyMaster.new(keyring)
24
+ interface_file = File.join("Pods/CocoaPodsKeys", key_master.name + '.h')
25
+ implementation_file = File.join("Pods/CocoaPodsKeys", key_master.name + '.m')
26
+
27
+ File.write(interface_file, key_master.interface)
28
+ File.write(implementation_file, key_master.implementation)
29
+
30
+ # Add our template podspec
31
+ if user_options["target"]
32
+ # Support correct scoping for a target
33
+ target = podfile.root_target_definitions.map(&:children).flatten.find do |target|
34
+ target.label == "Pods-" + user_options["target"].to_s
35
+ end
36
+
37
+ if target
38
+ target.store_pod 'Keys', :path => 'Pods/CocoaPodsKeys/'
39
+ else
40
+ puts "Could not find a target named '#{user_options["target"]}' in your Podfile. Stopping Keys.".red
41
+ end
11
42
 
12
- spec_contents.gsub!(/%%SOURCE_FILES%%/, "#{key_master.name}.{h,m}")
13
- spec_contents.gsub!(/%%PROJECT_NAME%%/, project)
14
- end
15
-
16
- def setup
17
- require 'preinstaller'
18
-
19
- PreInstaller.new(user_options).setup
20
- # Add our template podspec (needs to be remote, not local).
21
- podfile.pod 'Keys', :git => 'https://github.com/ashfurrow/empty-podspec.git'
43
+ else
44
+ # otherwise let it go in global
45
+ podfile.pod 'Keys', :path => 'Pods/CocoaPodsKeys/'
46
+ end
22
47
  end
23
48
 
24
49
  private
@@ -45,41 +70,11 @@ module Pod
45
70
 
46
71
  def install!
47
72
  CocoaPodsKeys.setup if validates_for_keys
48
-
49
73
  install_before_cocoapods_keys!
50
74
  end
51
75
 
52
76
  def validates_for_keys
53
77
  Pod::Config.instance.podfile.plugins["cocoapods-keys"] != nil
54
78
  end
55
-
56
- class Analyzer
57
- class SandboxAnalyzer
58
- alias_method :pod_state_before_cocoapods_keys, :pod_state
59
-
60
- def pod_state(pod)
61
- if pod == 'Keys'
62
- # return :added if we were, otherwise assume the Keys have :changed since last install, following my mother's "Better Safe than Sorry" principle.
63
- return :added if pod_added?(pod)
64
- :changed
65
- else
66
- pod_state_before_cocoapods_keys(pod)
67
- end
68
- end
69
- end
70
- end
71
- end
72
-
73
- class Specification
74
- class << self
75
- alias_method :from_string_before_cocoapods_keys, :from_string
76
-
77
- def from_string(spec_contents, path, subspec_name = nil)
78
- if path.basename.to_s =~ /\AKeys.podspec(?:.json)\Z/
79
- CocoaPodsKeys.podspec_for_current_project(spec_contents)
80
- end
81
- from_string_before_cocoapods_keys(spec_contents, path, subspec_name)
82
- end
83
- end
84
79
  end
85
80
  end
@@ -6,7 +6,6 @@ module Pod
6
6
  require 'pod/command/keys/set'
7
7
  require 'pod/command/keys/get'
8
8
  require 'pod/command/keys/rm'
9
- require 'pod/command/keys/generate'
10
9
 
11
10
  self.summary = "A key value store for environment settings in Cocoa Apps."
12
11
 
@@ -38,8 +38,8 @@ module Pod
38
38
 
39
39
  if keyring.keys.include? @key_name
40
40
  data = keyring.keychain_data
41
- $stderr.puts data[@key_name]
42
- else
41
+ puts data[@key_name]
42
+ else
43
43
  $stderr.puts "Could not find value"
44
44
  end
45
45
  end
@@ -6,6 +6,8 @@ module Pod
6
6
  class Keys
7
7
 
8
8
  class Set < Keys
9
+ include Config::Mixin
10
+
9
11
  self.summary = "A set values for keys."
10
12
 
11
13
  self.description = <<-DESC
@@ -43,7 +45,7 @@ module Pod
43
45
 
44
46
  keyring.save @key_name, @key_value
45
47
 
46
- puts "Saved #{@key_name} to #{keyring.name}."
48
+ puts "Saved #{@key_name} to #{keyring.name}." unless config.silent?
47
49
  end
48
50
 
49
51
  def current_keyring
@@ -1,7 +1,7 @@
1
1
  //
2
2
  // Generated by CocoaPods-Keys
3
3
  // on 11/03/2015
4
- // For more information see https://github.com/cocoapods/cocoapods-keys
4
+ // For more information see https://github.com/orta/cocoapods-keys
5
5
  //
6
6
 
7
7
  #import <Foundation/NSString.h>
@@ -1,7 +1,7 @@
1
1
  //
2
2
  // Generated by CocoaPods-Keys
3
3
  // on 11/03/2015
4
- // For more information see https://github.com/cocoapods/cocoapods-keys
4
+ // For more information see https://github.com/orta/cocoapods-keys
5
5
  //
6
6
 
7
7
  #import <objc/runtime.h>
@@ -0,0 +1,8 @@
1
+ plugin 'cocoapods-keys', {
2
+ :project => 'TestProject',
3
+ :target => 'TestTarget',
4
+ :keys => [
5
+ 'KeyWithData',
6
+ 'KeyWithoutData',
7
+ ]
8
+ }
@@ -0,0 +1,45 @@
1
+ // Dumps a key from a fixture bundle created like so:
2
+ //
3
+ // $ xcrun clang -framework Foundation -bundle ArtsyKeys.m -o ArtsyKeys.bundle
4
+
5
+ #import <Foundation/Foundation.h>
6
+ #include <dlfcn.h>
7
+ #include <stdio.h>
8
+
9
+ int main(int argc, char **argv) {
10
+ if (argc != 3) {
11
+ fprintf(stderr, "Usage: dump-key path/to/fixture.bundle [KEY]\n");
12
+ return 1;
13
+ }
14
+
15
+ char *fixturePath = argv[1];
16
+ char *keyName = argv[2];
17
+
18
+ if (dlopen(fixturePath, RTLD_NOW) == NULL) {
19
+ fprintf(stderr, "[!] Unable to load bundle at path `%s`: %s\n", fixturePath, strerror(errno));
20
+ return 2;
21
+ }
22
+
23
+ NSString *fixtureClassName = [[[NSString stringWithUTF8String:fixturePath] lastPathComponent] stringByDeletingPathExtension];
24
+ Class fixtureClass = NSClassFromString(fixtureClassName);
25
+ if (fixtureClass == nil) {
26
+ fprintf(stderr, "[!] Unable to load fixture class `%s` from bundle at `%s`\n", [fixtureClassName UTF8String], fixturePath);
27
+ return 3;
28
+ }
29
+
30
+ SEL keySelector = sel_registerName(keyName);
31
+ if (![fixtureClass instancesRespondToSelector:keySelector]) {
32
+ fprintf(stderr, "[!] Unable to find key `%s` in fixture class `%s` from bundle at `%s`\n", keyName, [fixtureClassName UTF8String], fixturePath);
33
+ return 4;
34
+ }
35
+
36
+ NSString *key = [[fixtureClass new] performSelector:keySelector];
37
+ // TODO Or is a `nil` entry fine?
38
+ if (key == nil) {
39
+ fprintf(stderr, "[!] Got `nil` for key `%s` in fixture class `%s` from bundle at `%s`\n", keyName, [fixtureClassName UTF8String], fixturePath);
40
+ return 5;
41
+ }
42
+
43
+ printf("%s\n", [key UTF8String]);
44
+ return 0;
45
+ }
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+ require 'tmpdir'
3
+ require 'fileutils'
4
+
5
+ describe 'CocoaPodsKeys functional tests' do
6
+ before :all do
7
+ @tmpdir = Dir.mktmpdir
8
+ Dir.chdir(@tmpdir) do
9
+ FileUtils.mkdir('TestProject.xcodeproj')
10
+ File.open('Podfile', 'w') do |podfile|
11
+ podfile.puts <<-PODFILE
12
+ platform :ios, '7'
13
+ plugin 'cocoapods-keys', {
14
+ :project => 'TestProject',
15
+ :keys => [
16
+ 'KeyWithData',
17
+ 'AnotherKeyWithData',
18
+ # This is not included!
19
+ # 'UnusedKey'
20
+ ]
21
+ }
22
+ PODFILE
23
+ end
24
+
25
+ system("pod keys set KeyWithData such-data --silent")
26
+ system("pod keys set AnotherKeyWithData other-data --silent")
27
+ system("pod keys set UnusedKey - --silent")
28
+ system("pod install --silent --no-repo-update --no-integrate")
29
+ end
30
+ end
31
+
32
+ it "does not directly encode the keys into the implementation file" do
33
+ source = File.read(File.join(@tmpdir, 'Pods/CocoaPodsKeys/TestProjectKeys.m'))
34
+ expect(source).to_not include('such-data')
35
+ expect(source).to_not include('other-data')
36
+ end
37
+
38
+ it "is able to retrieve the correct keys from the command-line" do
39
+ Dir.chdir(@tmpdir) do
40
+ expect(`pod keys get KeyWithData`.strip).to eq('such-data')
41
+ expect(`pod keys get AnotherKeyWithData`.strip).to eq('other-data')
42
+ end
43
+ end
44
+
45
+ describe "with a built keys implementation" do
46
+ before :all do
47
+ name = 'TestProjectKeys'
48
+ dir = File.join(@tmpdir, 'Pods/CocoaPodsKeys')
49
+ Dir.chdir(dir) do
50
+ system("xcrun clang -framework Foundation -bundle #{name}.m -o #{name}.bundle")
51
+ end
52
+ @bundle = File.join(dir, "#{name}.bundle")
53
+ end
54
+
55
+ it "produces an implementation that is able to return the correct keys" do
56
+ expect(fetch_key('keyWithData')).to eq('such-data')
57
+ expect(fetch_key('anotherKeyWithData')).to eq('other-data')
58
+ end
59
+
60
+ xit "does not include keys that were not specified in the Podfile" do
61
+ expect(lambda { fetch_key('unusedKey') }).to raise_error
62
+ end
63
+
64
+ private
65
+
66
+ def fetch_key(key)
67
+ result = `'#{fixture('dump-key')}' '#{@bundle}' #{key}`.strip
68
+ raise 'Failed to fetch key from bundle' unless $?.success?
69
+ result
70
+ end
71
+ end
72
+ end
@@ -4,11 +4,11 @@ require 'tmpdir'
4
4
 
5
5
  describe CocoaPodsKeys::KeyMaster do
6
6
  let(:empty_keys_interface) {
7
- IO.read(File.join(__dir__, "fixtures", "Keys_empty.h"))
7
+ File.read(fixture("Keys_empty.h"))
8
8
  }
9
9
 
10
10
  let(:empty_keys_implementation) {
11
- IO.read(File.join(__dir__, "fixtures", "Keys_empty.m"))
11
+ File.read(fixture("Keys_empty.m"))
12
12
  }
13
13
 
14
14
  it "should work with an empty keyring" do
@@ -39,6 +39,8 @@ describe CocoaPodsKeys::KeyMaster do
39
39
  expect(keymaster.generate_implementation).to include('"\\""')
40
40
  end
41
41
 
42
+ private
43
+
42
44
  def validate_syntax(keymaster)
43
45
  # write out the interface and the implementation to temp files
44
46
  Dir.mktmpdir do |dir|
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,10 @@ def clang_available
5
5
  system("which -s clang")
6
6
  end
7
7
 
8
+ def fixture(name)
9
+ File.join(__dir__, "fixtures", name)
10
+ end
11
+
8
12
  RSpec.configure do |c|
9
13
  # exclude tests requiring clang when it's unavailable
10
14
  c.filter_run_excluding requires_clang: true unless clang_available
data/templates/Keys.h.erb CHANGED
@@ -1,7 +1,7 @@
1
1
  //
2
2
  // Generated by CocoaPods-Keys
3
3
  // on <%= @time.strftime("%d/%m/%Y") %>
4
- // For more information see https://github.com/cocoapods/cocoapods-keys
4
+ // For more information see https://github.com/orta/cocoapods-keys
5
5
  //
6
6
 
7
7
  #import <Foundation/NSString.h>
data/templates/Keys.m.erb CHANGED
@@ -1,7 +1,7 @@
1
1
  //
2
2
  // Generated by CocoaPods-Keys
3
3
  // on <%= @time.strftime("%d/%m/%Y") %>
4
- // For more information see https://github.com/cocoapods/cocoapods-keys
4
+ // For more information see https://github.com/orta/cocoapods-keys
5
5
  //
6
6
 
7
7
  #import <objc/runtime.h>
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "Keys",
3
+ "version": "1.0.0",
4
+ "summary": "Injected podspec used by CocoaPods-Keys plugin.",
5
+ "description": "This is intended to be used as an injected podspec template \n used by the [CocoaPods-Keys plugin](https://github.com/orta/cocoapods-keys).\n\n It should *not* be referenced outside of that context. \n",
6
+ "homepage": "https://github.com/orta/cocoapods-keys",
7
+ "license": {
8
+ "type": "MIT",
9
+ "text": "MIT LICENSE Found in the repo"
10
+ },
11
+ "authors": {
12
+ "Orta Therox": "orta.therox@gmail.com",
13
+ "Samuel Giddins": "segiddins@segiddins.me",
14
+ "Ash Furrow": "ash@ashfurrow.com"
15
+ },
16
+ "source": {
17
+ "git": "https://github.com/orta/cocoapods-keys.git",
18
+ "tag": "23"
19
+ },
20
+ "source_files": "*",
21
+ "frameworks": "Foundation",
22
+ "requires_arc": true
23
+ }
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.1.0
4
+ version: 1.2.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-04-07 00:00:00.000000000 Z
12
+ date: 2015-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: osx_keychain
@@ -77,6 +77,7 @@ extra_rdoc_files: []
77
77
  files:
78
78
  - ".gitignore"
79
79
  - ".travis.yml"
80
+ - CHANGELOG.md
80
81
  - Gemfile
81
82
  - Gemfile.lock
82
83
  - LICENSE.txt
@@ -91,7 +92,6 @@ files:
91
92
  - lib/name_whisperer.rb
92
93
  - lib/plugin.rb
93
94
  - lib/pod/command/keys.rb
94
- - lib/pod/command/keys/generate.rb
95
95
  - lib/pod/command/keys/get.rb
96
96
  - lib/pod/command/keys/list.rb
97
97
  - lib/pod/command/keys/rm.rb
@@ -99,12 +99,16 @@ files:
99
99
  - lib/preinstaller.rb
100
100
  - spec/fixtures/Keys_empty.h
101
101
  - spec/fixtures/Keys_empty.m
102
+ - spec/fixtures/Podfile
103
+ - spec/fixtures/dump-key.m
104
+ - spec/functional_spec.rb
102
105
  - spec/key_master_spec.rb
103
106
  - spec/keyring_liberator_spec.rb
104
107
  - spec/plugin_spec.rb
105
108
  - spec/spec_helper.rb
106
109
  - templates/Keys.h.erb
107
110
  - templates/Keys.m.erb
111
+ - templates/Keys.podspec.json
108
112
  homepage: https://github.com/cocoapods/cocoapods-keys
109
113
  licenses:
110
114
  - MIT
@@ -134,6 +138,9 @@ summary: CocoaPods Keys will store sensitive data in your Mac's keychain. Then o
134
138
  test_files:
135
139
  - spec/fixtures/Keys_empty.h
136
140
  - spec/fixtures/Keys_empty.m
141
+ - spec/fixtures/Podfile
142
+ - spec/fixtures/dump-key.m
143
+ - spec/functional_spec.rb
137
144
  - spec/key_master_spec.rb
138
145
  - spec/keyring_liberator_spec.rb
139
146
  - spec/plugin_spec.rb
@@ -1,43 +0,0 @@
1
- require 'keyring_liberator'
2
- require 'key_master'
3
-
4
- module Pod
5
- class Command
6
- class Keys
7
- class Generate < Keys
8
- include CocoaPodsKeys
9
-
10
- self.summary = "Generates the .h and .m files representing the keys."
11
-
12
- self.description = <<-DESC
13
- Generates the Objective-C class containing obfuscated keys for the project
14
- in the current working directory (if it exists). The .h and .m files are
15
- generated in the current working directory.
16
- DESC
17
-
18
- def initialize(argv)
19
- @project_name = argv.shift_argument
20
- super
21
- end
22
-
23
- def run
24
- key_master = KeyMaster.new(@keyring)
25
-
26
- interface_file = key_master.name + '.h'
27
- implementation_file = key_master.name + '.m'
28
-
29
- File.write(interface_file, key_master.interface)
30
- File.write(implementation_file, key_master.implementation)
31
- end
32
-
33
- def validate!
34
- super
35
- verify_podfile_exists!
36
-
37
- @keyring = KeyringLiberator.get_keyring_named(@project_name) || KeyringLiberator.get_keyring(Dir.getwd)
38
- help! "No keys associated with this directory or project name." unless @keyring
39
- end
40
- end
41
- end
42
- end
43
- end