class Riak::Client::BeefcakeProtobuffsBackend::RpbBucketProps

Public Instance Methods

chash_keyfun=(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 43
def chash_keyfun=(newval)
  @chash_keyfun = clean_modfun newval
end
has_postcommit=(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 38
def has_postcommit=(newval)
  @has_postcommit = newval
  @postcommit ||= [] if newval
end
has_precommit=(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 27
def has_precommit=(newval)
  @has_precommit = newval
  @precommit ||= [] if newval
end
linkfun=(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 47
def linkfun=(newval)
  @linkfun = clean_modfun newval
end
postcommit=(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 32
def postcommit=(newval)
  newval = clean_hook newval
  @postcommit = newval
  @has_postcommit = !!newval
end
precommit=(newval) click to toggle source

“repeated” elements with zero items are indistinguishable from a nil, so we have to manage has_precommit/has_postcommit flags.

# File lib/riak/client/beefcake/message_overlay.rb, line 21
def precommit=(newval)
  newval = clean_hook newval
  @precommit = newval
  @has_precommit = !!newval
end

Private Instance Methods

clean_hook(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 53
def clean_hook(newval)
  if newval.is_a? Array
    return newval.map{|v| clean_hook v}
  end

  newval = newval.symbolize_keys if newval.is_a? Hash
  if newval.is_a?(Hash) && newval[:module] && newval[:function]
    modfun = RpbModFun.new newval
    hook = RpbCommitHook.new modfun: modfun
    newval = hook
  elsif newval.is_a?(Hash) && newval[:name]
    hook = RpbCommitHook.new newval
    newval = hook
  elsif newval.is_a? String
    hook = RpbCommitHook.new name: newval
    newval = hook
  end

  return newval
end
clean_modfun(newval) click to toggle source
# File lib/riak/client/beefcake/message_overlay.rb, line 74
def clean_modfun(newval)
  return newval unless newval.is_a? Hash

  newval = newval.symbolize_keys
  if newval[:mod] && newval[:fun]
    modfun = RpbModFun.new :'module' => newval[:mod], function: newval[:fun]
  end

  return modfun
end