3

i'm trying to load a new gem that i recently created, and don't have have any code yet, because when i tried to load just for test this error appeared.

My code: My gem name is tracky.

tracky.gemspec

lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'tracky/version'

Gem::Specification.new do |spec|
  spec.name          = "tracky"
  spec.version       = Tracky::VERSION
  spec.authors       = ["Matheus Mendes"]
  spec.email         = ["matheus.mendescf@gmail.com"]
  spec.summary       = %q{TODO: Write a short summary. Required.}
  spec.description   = %q{TODO: Write a longer description. Optional.}
  spec.homepage      = ""
  spec.license       = "MIT"

  spec.files         = [`git ls-files -z`.split("\x0")]
  spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
  spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
  spec.require_paths = ["lib"]

  spec.add_development_dependency "bundler", "~> 1.7"
  spec.add_development_dependency "rake", "~> 10.0"
end

My folder:

http://postimg.org/image/ve7nlyja7/

Error:

irb(main):001:0> require_relative 'lib/tracky'
LoadError: cannot load such file -- tracky/version
    from /home/matheus/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /home/matheus/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /home/matheus/Ruby/tracky/lib/tracky.rb:1:in `<top (required)>'
    from (irb):1:in `require_relative'
    from (irb):1
    from /home/matheus/.rbenv/versions/2.2.2/bin/irb:11:in `<main>'

I'm using irb in the root of tracky

Matheus Mendes
  • 155
  • 2
  • 14

1 Answers1

1

Inside the lib/tracky.rb file, change require "tracky/version" to require_relative "tracky/version".

This is because the version file is located relative to the lib/tracky.rb file. I would advise you reserve require for gem dependencies.

Check this answer for the difference between require and require_relative.

Late to the party but I guess it could help the next person. I came across this question while facing the same issue.

L.T
  • 370
  • 3
  • 8