Skip to content

Instantly share code, notes, and snippets.

@gerep
Last active December 25, 2015 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save gerep/7033149 to your computer and use it in GitHub Desktop.
Save gerep/7033149 to your computer and use it in GitHub Desktop.
class RiakWrapper
def self.setup
walk_server = WalkServer.first
@client ||= Riak::Client.new(:protocol => "pbc", :host => walk_server.host, :pb_port => walk_server.pb_port)
end
def self.exists?(key, bucket_name)
get_bucket(bucket_name)
@bucket.exists?(key)
end
def self.get(key, bucket_name)
get_bucket(bucket_name)
@bucket.get(key)
end
def self.delete(key, bucket_name)
get_bucket(bucket_name)
@bucket.delete(key) if exists?(key, bucket_name)
end
def self.get_bucket(bucket_name)
setup
@bucket = @client.bucket(bucket_name)
end
end
# USAGE EXAMPLE
RiakWrapper.delete("#dg_123456", 'terminals')
RiakWrapper.exists?("bm_654321.dat", 'files')
RiakWrapper.get("ig_13579.xml", 'files')
# REAL USE
RiakWrapper.delete("#{acronym}_#{self.number}", 'terminals')
RiakWrapper.delete("#{acronym}_#{self.number}_params.dat", 'assets')
RiakWrapper.delete("#{acronym}_#{self.number}_params.dat", 'files')
@gerep
Copy link
Author

gerep commented Oct 17, 2013

class RiakWrapper
  def self.setup
    @client ||= begin
      walk_server = WalkServer.first
      Riak::Client.new(:protocol => "pbc", :host => walk_server.host, :pb_port => walk_server.pb_port)
    end
  end

  def self.exists?(key, bucket_name)
    get_bucket(bucket_name)
    @bucket.exists?(key)
  end

  def self.get(key, bucket_name)
    get_bucket(bucket_name)
    @bucket.get(key)
  end

  def self.delete(key, bucket_name)
    get_bucket(bucket_name)
    @bucket.delete(key) if exists?(key, bucket_name)
  end

  def self.get_bucket(bucket_name)
    setup
    @bucket = @client.bucket(bucket_name)
  end

end

@gerep
Copy link
Author

gerep commented Oct 17, 2013

class RiakWrapper
  def initialize
    walk_server = WalkServer.first
    @client = Riak::Client.new(:protocol => "pbc", :host => walk_server.host, :pb_port => walk_server.pb_port)
  end

  def exists?(key, bucket_name)
    bucket(bucket_name).exists?(key)
  end

  def get(key, bucket_name)
    bucket(bucket_name).get(key)
  end

  def delete(key, bucket_name)
    bucket(bucket_name).delete(key) if exists?(key, bucket_name)
  end

  def bucket(bucket_name)
    @client.bucket(bucket_name)
  end

  def self.current
    Thread.local[:current_riak_wrapper] ||= new
  end

  def self.reset
    Thread.local[:current_riak_wrapper] = nil
  end
end

# USAGE EXAMPLE

RiakWrapper.current.delete("#dg_123456", 'terminals')

RiakWrapper.current.exists?("bm_654321.dat", 'files')

RiakWrapper.current.get("ig_13579.xml", 'files')


# REAL USE

RiakWrapper.current.delete("#{acronym}_#{self.number}", 'terminals')
RiakWrapper.current.delete("#{acronym}_#{self.number}_params.dat", 'assets')
RiakWrapper.current.delete("#{acronym}_#{self.number}_params.dat", 'files')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment