class Cipherpipe::OnePassword::Upload

Attributes

external_source[R]
variables[R]

Public Class Methods

call(external_source, variables) click to toggle source
# File lib/cipherpipe/one_password/upload.rb, line 5
def self.call(external_source, variables)
  new(external_source, variables).call
end
new(external_source, variables) click to toggle source
# File lib/cipherpipe/one_password/upload.rb, line 9
def initialize(external_source, variables)
  @external_source = external_source
  @variables       = variables
end

Public Instance Methods

call() click to toggle source
# File lib/cipherpipe/one_password/upload.rb, line 14
def call
  documents.each do |document|
    next unless document["overview"]["title"] == external_source.destination

    `op delete item "#{document["uuid"]}" --vault="#{vault}"`
  end

  Dir.mktmpdir do |directory|
    File.write "#{directory}/cipherpipe.json", JSON.dump(variables)

    `op create document "#{directory}/cipherpipe.json" --title="#{external_source.destination}" --vault="#{vault}"`
  end
end

Private Instance Methods

documents() click to toggle source
# File lib/cipherpipe/one_password/upload.rb, line 32
def documents
  JSON.load `op list documents --vault "#{vault}"`
end
vault() click to toggle source
# File lib/cipherpipe/one_password/upload.rb, line 36
def vault
  external_source.options["vault"]
end