lib/plugin.rb in cocoapods-keys-0.9.5 vs lib/plugin.rb in cocoapods-keys-1.0.0
- old
+ new
@@ -1,8 +1,72 @@
+require 'cocoapods-core'
+
module CocoaPodsKeys
+ class << self
+ def podspec_for_current_project(spec_contents)
+ keyring = KeyringLiberator.get_keyring_named(user_options["project"]) || KeyringLiberator.get_keyring(Dir.getwd)
+ raise Informative, "Could not load keyring" unless keyring
+ key_master = KeyMaster.new(keyring)
- Pod::HooksManager.register(:post_install) do |options|
- require 'installer'
+ spec_contents.gsub!(/%%SOURCE_FILES%%/, "#{key_master.name}.{h,m}")
+ spec_contents.gsub!(/%%PROJECT_NAME%%/, user_options["project"])
+ end
- Installer.new(options.sandbox_root).install!
+ def setup
+ require 'preinstaller'
+
+ PreInstaller.new(user_options).setup
+ # Add our template podspec (needs to be remote, not local).
+ podfile.pod 'Keys', :git => 'https://github.com/ashfurrow/empty-podspec.git'
+ end
+
+ private
+
+ def podfile
+ Pod::Config.instance.podfile
+ end
+
+ def user_options
+ podfile.plugins["cocoapods-keys"]
+ end
+ end
+end
+
+module Pod
+ class Installer
+ alias_method :install_before_cocoapods_keys!, :install!
+
+ def install!
+ CocoaPodsKeys.setup
+ install_before_cocoapods_keys!
+ end
+
+ class Analyzer
+ class SandboxAnalyzer
+ alias_method :pod_state_before_cocoapods_keys, :pod_state
+
+ def pod_state(pod)
+ if pod == 'Keys'
+ # return :added if we were, otherwise assume the Keys have :changed since last install, following my mother's "Better Safe than Sorry" principle.
+ return :added if pod_added?(pod)
+ :changed
+ else
+ pod_state_before_cocoapods_keys(pod)
+ end
+ end
+ end
+ end
+ end
+
+ class Specification
+ class << self
+ alias_method :from_string_before_cocoapods_keys, :from_string
+
+ def from_string(spec_contents, path, subspec_name = nil)
+ if path.to_s.include? "Keys.podspec"
+ CocoaPodsKeys.podspec_for_current_project(spec_contents)
+ end
+ from_string_before_cocoapods_keys(spec_contents, path, subspec_name)
+ end
+ end
end
end