Sha256: 9ccbaebb54489606ac264b00a67310e18fb5a03f2e4f7c7a1e345d2b236e397d

Contents?: true

Size: 862 Bytes

Versions: 3

Compression:

Stored size: 862 Bytes

Contents

require 'osx_keychain'

module CocoaPodsKeys
  class Keyring
    attr_accessor :keys, :path, :name

    def initialize(name, path, keys = [])
      @name = name.to_s
      @path = path
      @keys = keys
    end

    def self.from_hash(hash)
      new(hash['name'], hash['path'], hash['keys'])
    end

    def to_hash
      { 'keys' => @keys, 'path' => @path, 'name' => @name }
    end

    def code_name
      name.split(/[^a-zA-Z0-9_]/).map { |s| s[0].upcase + s[1..-1] }.join('')
    end

    def self.keychain_prefix
      'cocoapods-keys-'
    end

    def save(key, value)
      keychain = OSXKeychain.new
      keychain[self.class.keychain_prefix + name, key] = value
    end

    def keychain_data
      keychain = OSXKeychain.new
      Hash[
        @keys.map { |key| [key, keychain[self.class.keychain_prefix + name, key]] }
      ]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cocoapods-keys-1.3.2 lib/keyring.rb
cocoapods-keys-1.3.1 lib/keyring.rb
cocoapods-keys-1.3.0 lib/keyring.rb