Jruby not finding gender_detector

I have the following ruby filter in my .conf

ruby {
	code => '
		require "rubygems";
		require "gender_detector";
		d = GenderDetector.new(:case_sensitive => false)
		first_name = "MARK"
		if first_name.to_s.empty?
			gender = "U"
		else
			gender = d.get_gender(first_name, :usa)
		end 
		sex = "U"
		if gender == :male
			sex = "M"
		end
		if gender == :female
			sex = "F"
		end 

	'
}

But I keep getting the error of

[ERROR] 2019-06-04 00:40:00.178 [[main]>worker5] ruby - Ruby exception occurred: no such file to load -- gender_detector

I have run the gem install using -

sudo /usr/share/logstash/vendor/jruby/bin/jruby -S gem install gender_detector 

and it install correctly.

This is my ruby gems environment

RubyGems Environment:
 - RUBYGEMS VERSION: 2.7.9
 - RUBY VERSION: 2.5.3 (2019-04-09 patchlevel 0) [java]
 - INSTALLATION DIRECTORY: /usr/share/logstash/vendor/jruby/lib/ruby/gems/shared
 - USER INSTALLATION DIRECTORY: /home/mark/.gem/jruby/2.5.0
 - RUBY EXECUTABLE: /usr/share/logstash/vendor/jruby/bin/jruby
 - EXECUTABLE DIRECTORY: /usr/share/logstash/vendor/jruby/bin
 - SPEC CACHE DIRECTORY: /home/mark/.gem/specs
 - SYSTEM CONFIGURATION DIRECTORY: /usr/share/logstash/vendor/jruby/etc
 - RUBYGEMS PLATFORMS:
- ruby
- universal-java-1.8
 - GEM PATHS:
 - /usr/share/logstash/vendor/jruby/lib/ruby/gems/shared
 - /home/mark/.gem/jruby/2.5.0
- GEM CONFIGURATION:
  - :update_sources => true
  - :verbose => true
  - :backtrace => false
  - :bulk_threshold => 1000
  - "install" => "--no-rdoc --no-ri --env-shebang"
  - "update" => "--no-rdoc --no-ri --env-shebang"
- REMOTE SOURCES:
  - https://rubygems.org/
- SHELL PATH:
 - /usr/local/sbin
 - /usr/local/bin
 - /usr/sbin
 - /usr/bin
 - /sbin
 - /bin
 - /usr/games
 - /usr/local/games
 - /snap/bin

I'm thinking it is a path issue but I can seem to find the right setting for this gem.

Mark

I should have mentioned that I can run this file successfully as a script running

/usr/share/logstash/vendor/jruby/bin/jruby gender_test.rb

This was the answer -

But I might resort to writing a plugin for an easier way

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.