I'm trying to call one class within another class which is in a different module.
require 'json'
require 'pry'
module Parsers
class JiraParser
def initialize(event)
@event = JSON.parse(event)
end
def call
reporter_email = parse_reporter_email
::Slack::GetUserId.new(reporter_email).call
end
private
attr_reader :event
def parse_reporter_email
event.dig('issue', 'reporter', 'emailAddress')
end
end
end
Parsers::JiraParser.new(event).call
code structure:
source__
|-parsers__
| |_ jira_parser.rb
|
|-slack____
|_ get_user_id.rb
When I'm trying to call this class in the console I'm getting an error:
uninitialized constant Slack (NameError)
So I thought I just need to add require "slack/get_user_id"
but I've received another error instead:
require': cannot load such file -- slack/get_user_id (LoadError)
Did I missed something?
EDIT:
$LOAD_PATH
=> ["/Users/usr/.rvm/rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib",
"/Users/usr/.rvm/gems/ruby-2.5.0/gems/coderay-1.1.2/lib",
"/Users/usr/.rvm/gems/ruby-2.5.0/gems/method_source-0.9.2/lib",
"/Users/usr/.rvm/gems/ruby-2.5.0/gems/pry-0.12.2/lib",
"/Users/usr/.rvm/gems/ruby-2.5.0/gems/json-2.2.0/lib",
"/Users/usr/.rvm/gems/ruby-2.5.0/extensions/x86_64-darwin-18/2.6.0-static/json-2.2.0",
"/Users/usr/.rvm/gems/ruby-2.5.0/gems/pry-rails-0.3.9/lib",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/site_ruby/2.6.0",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/site_ruby/2.6.0/x86_64-darwin18",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/site_ruby",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/vendor_ruby/2.6.0",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/vendor_ruby/2.6.0/x86_64-darwin18",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/vendor_ruby",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/2.6.0",
"/Users/usr/.rbenv/versions/2.6.1/lib/ruby/2.6.0/x86_64-darwin18"]