You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by eh...@apache.org on 2007/04/03 06:49:32 UTC
svn commit: r525031 -
/lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/importer/mapper.rb
Author: ehatcher
Date: Mon Apr 2 21:49:31 2007
New Revision: 525031
URL: http://svn.apache.org/viewvc?view=rev&rev=525031
Log:
Only use symbols for mapping keys. Strings pass through as static field values
Modified:
lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/importer/mapper.rb
Modified: lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/importer/mapper.rb
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/importer/mapper.rb?view=diff&rev=525031&r1=525030&r2=525031
==============================================================================
--- lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/importer/mapper.rb (original)
+++ lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/importer/mapper.rb Mon Apr 2 21:49:31 2007
@@ -10,39 +10,41 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# For files with the first line containing field names
class Solr::Importer::Mapper
def initialize(mapping)
@mapping = mapping
end
def field_data(orig_data, field_name)
- case field_name
+ orig_data[field_name]
+ end
+
+ def mapped_field_value(orig_data, field_mapping)
+ case field_mapping
+ when String
+ field_mapping
+ when Proc
+ field_mapping.call(orig_data)
when Symbol
- orig_data[field_name]
+ field_data(orig_data, field_mapping)
+ when Enumerable
+ field_mapping.collect {|orig_field_name| mapped_field_value(orig_data, orig_field_name)}.flatten
else
- field_name
+ raise "Unknown mapping for #{field_mapping}"
end
end
def map(orig_data)
mapped_data = {}
@mapping.each do |solr_name, field_mapping|
- value = case field_mapping
- when Proc
- field_mapping.call(orig_data)
- when String, Symbol
- field_data(orig_data, field_mapping)
- when Enumerable
- field_mapping.collect {|orig_field_name| field_data(orig_data, orig_field_name)}.flatten
- else
- raise "Unknown mapping for #{solr_name}: #{field_mapping}"
- end
+ value = mapped_field_value(orig_data, field_mapping)
mapped_data[solr_name] = value if value
end
mapped_data
end
+
+
end