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