class RSolr::Field
Attributes
attrs[RW]
“attrs” is a hash for setting the “doc” xml attributes “value” is the text value for the node
source_value[RW]
“attrs” is a hash for setting the “doc” xml attributes “value” is the text value for the node
Private Class Methods
class_for_field(field_type)
click to toggle source
# File lib/rsolr/field.rb, line 18 def self.class_for_field(field_type) potential_class_name = field_type + 'Field'.freeze search_scope = Module.nesting[1] search_scope.const_defined?(potential_class_name, false) ? search_scope.const_get(potential_class_name) : self end
instance(attrs, value)
click to toggle source
# File lib/rsolr/field.rb, line 3 def self.instance(attrs, value) attrs = attrs.dup field_type = attrs.delete(:type) { value.class.name } klass = if field_type.is_a? String class_for_field(field_type) elsif field_type.is_a? Class field_type else self end klass.new(attrs, value) end
new(attrs, source_value)
click to toggle source
“attrs” must be a hash “value” should be something that responds to #_to_s
# File lib/rsolr/field.rb, line 31 def initialize(attrs, source_value) @attrs = attrs @source_value = source_value end
Private Instance Methods
as_json()
click to toggle source
# File lib/rsolr/field.rb, line 45 def as_json if attrs[:update] { attrs[:update] => value } elsif attrs.any? { |k, _| k != :name } hash = attrs.dup hash.delete(:name) hash.merge(value: value) else value end end
name()
click to toggle source
the value of the “name” attribute
# File lib/rsolr/field.rb, line 37 def name attrs[:name] end
value()
click to toggle source
# File lib/rsolr/field.rb, line 41 def value source_value end