I have a file in step_definitions that’s giving me an error for an
uninitialized constant. My guess is I need to ‘require’ the file where
that class is defined. Said files is located in /lib/codebreaker.
I am very new to Ruby so this is probably a really simple question but
how do I ‘require’ a file in codebreaker from a file inside
step_definitions?
or, another common setup is to add the “lib” into require path list, and
them just require the file:
$: << File.expand_path(“…/…/lib”, FILE)
require “codebreaker”
another hint: you should require only main file of lib (codebreaker),
and
this file in lib should require the others (also, if you have some time,
research about autoload, will be useful too ;))
I have a file in step_definitions that’s giving me an error for an
uninitialized constant. My guess is I need to ‘require’ the file where
that class is defined. Said files is located in /lib/codebreaker.
I am very new to Ruby so this is probably a really simple question but
how do I ‘require’ a file in codebreaker from a file inside
step_definitions?
You could try asking on the RSpec Book’s own forum:
This question is really more Cucumber related so you could also ask on
the cukes google group.
Your guess is right. The best place to put your require statement is in
features/support/env.rb
I’m surprised that the book doesn’t tell you to do that - did you maybe
miss a step?
I ended up getting it to work after a co-worker pointed out that I need
to add “./lib” to some thing in ruby’s list of directories to look in. I
don’t remember what terminology he used but he did it through the
terminal.
He probably called it the ‘load path’. That’s what the $: means in that
snippet - it’s an Array of paths where Ruby will search for files when
you call require. In the code above, you’re pushing the lib directory
onto the load path.
The require statement I ended up using is
require ‘codebreaker/game’
Maybe the lib/codebreaker file was supposed to do that?
I am very new to Ruby so this is probably a really simple question but
features/support/env.rb
The require statement that the book says to put in env.rb is:
snippet - it’s an Array of paths where Ruby will search for files when you
call require. In the code above, you’re pushing the lib directory onto the
load path.
The require statement I ended up using is
require ‘codebreaker/game’
Maybe the lib/codebreaker file was supposed to do that?
I have a file in step_definitions that’s giving me an error for an
uninitialized constant. My guess is I need to ‘require’ the file where
that class is defined. Said files is located in /lib/codebreaker.
I am very new to Ruby so this is probably a really simple question but
how do I ‘require’ a file in codebreaker from a file inside
step_definitions?
I ended up getting it to work after a co-worker pointed out that I need
to add “./lib” to some thing in ruby’s list of directories to look in. I
don’t remember what terminology he used but he did it through the
terminal.
The require statement I ended up using is
require ‘codebreaker/game’
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.