class Blacklight::OpenStructWithHashAccess

An OpenStruct that responds to common Hash methods

Public Instance Methods

deep_dup() click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 52
def deep_dup
  self.class.new @table.deep_dup
end
deep_transform_values(&method) click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 56
def deep_transform_values(&method)
  self.class.new @table.deep_transform_values(&method)
end
merge(other_hash) click to toggle source

Merge the values of this OpenStruct with another OpenStruct or Hash @param [Hash,#to_h] other_hash @return [OpenStructWithHashAccess] a new instance of an OpenStructWithHashAccess

# File lib/blacklight/open_struct_with_hash_access.rb, line 36
def merge other_hash
  self.class.new to_h.merge((other_hash if other_hash.is_a? Hash) || other_hash.to_h)
end
merge!(other_hash) click to toggle source

Merge the values of another OpenStruct or Hash into this object @param [Hash,#to_h] other_hash @return [OpenStructWithHashAccess] a new instance of an OpenStructWithHashAccess

# File lib/blacklight/open_struct_with_hash_access.rb, line 44
def merge! other_hash
  @table.merge!((other_hash if other_hash.is_a? Hash) || other_hash.to_h)
end
reverse_merge(other_hash) click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 48
def reverse_merge(other_hash)
  self.class.new to_h.reverse_merge((other_hash if other_hash.is_a? Hash) || other_hash.to_h)
end
select(...) click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 19
def select(...)
  self.class.new to_h.select(...)
end
sort_by(...) click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 23
def sort_by(...)
  self.class.new to_h.sort_by(...).to_h
end
sort_by!(...) click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 27
def sort_by!(...)
  replace to_h.sort_by(...).to_h
  self
end
to_h() click to toggle source

Expose the internal hash @return [Hash]

# File lib/blacklight/open_struct_with_hash_access.rb, line 15
def to_h
  @table
end
try(method_name = nil, *args) { |self| ... } click to toggle source
# File lib/blacklight/open_struct_with_hash_access.rb, line 60
def try(method_name = nil, *args, &block)
  if method_name.nil? && block_given?
    if b.arity.zero?
      instance_eval(&block)
    else
      yield self
    end
  elsif respond_to?(method_name)
    public_send(method_name, *args, &b)
  end
end