class Recruitee::Resource
Attributes
client[R]
properties[R]
Public Class Methods
new(client, properties)
click to toggle source
# File lib/recruitee/resource.rb, line 7 def initialize(client, properties) @client = client @properties = deep_symbolize_keys(properties) end
Public Instance Methods
[](key)
click to toggle source
# File lib/recruitee/resource.rb, line 12 def [](key) @properties[key.to_sym] end
[]=(key, value)
click to toggle source
# File lib/recruitee/resource.rb, line 16 def []=(key, value) send(:"#{key}=", value) end
method_missing(name, *args)
click to toggle source
Calls superclass method
# File lib/recruitee/resource.rb, line 20 def method_missing(name, *args) if name.to_s.end_with?('=') attr = name.to_s[0...-1].to_sym @properties[attr] = args.first elsif @properties.key?(name) @properties[name] else super end end
respond_to_missing?(name, include_private = false)
click to toggle source
Calls superclass method
# File lib/recruitee/resource.rb, line 31 def respond_to_missing?(name, include_private = false) attr = name.to_s.end_with?('=') ? name.to_s[0...-1].to_sym : name @properties.key?(attr) || super end
to_s()
click to toggle source
# File lib/recruitee/resource.rb, line 36 def to_s values = @properties.map { |k, v| "#{k}: #{v}" }.join(' ') "<#{self.class.name} #{values}>" end
Private Instance Methods
deep_symbolize_keys(object)
click to toggle source
# File lib/recruitee/resource.rb, line 45 def deep_symbolize_keys(object) deep_transform_keys(object) do |key| begin key.to_sym rescue StandardError key end end end
deep_transform_keys(object) { |key| ... }
click to toggle source
# File lib/recruitee/resource.rb, line 55 def deep_transform_keys(object, &block) case object when Hash object.each_with_object({}) do |(key, value), result| result[yield(key)] = deep_transform_keys(value, &block) end when Array object.map { |e| deep_transform_keys(e, &block) } else object end end