Sha256: 9dc973bce83fadaa1e446ea5f3e4da72fd0f5e6a40a291b6a955f7f3b35fb071

Contents?: true

Size: 670 Bytes

Versions: 4

Compression:

Stored size: 670 Bytes

Contents

require 'slosilo/adapters/abstract_adapter'

module Slosilo
  module Adapters
    class SequelAdapter < AbstractAdapter
      def model
        @model ||= create_model
      end
      
      def create_model
        model = Sequel::Model(:slosilo_keystore)
        model.unrestrict_primary_key
        model.attr_encrypted :key
        model
      end
      
      def put_key id, value
        model.create id: id, key: value
      end
      
      def get_key id
        stored = model[id]
        return nil unless stored
        stored.key
      end
      
      def each
        model.each do |m|
          yield m.id, m.key
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
slosilo-0.2.4 lib/slosilo/adapters/sequel_adapter.rb
slosilo-0.2.3 lib/slosilo/adapters/sequel_adapter.rb
slosilo-0.2.2 lib/slosilo/adapters/sequel_adapter.rb
slosilo-0.1.2 lib/slosilo/adapters/sequel_adapter.rb