Hi all,
I have an array of shipping_type’s being returned, and I want to see
what is in there. In the past I have done:
shipping_type.include?(Cart::SHIPPING_TYPE_REGULAR).should be_true
This works, but looks really ugly… It just doesn’t roll of the
tongue very well. I then looked up the use of Predicates, which I
had been using, but hadn’t realized:
shipping_type.should be_include(Cart::SHIPPING_TYPE_REGULAR)
This works, however the syntac of be_include looks very odd… Is
there any way to do:
shipping_type.should_include(Cart::SHIPPING_TYPE_REGULAR)
How are other folks looking at the contents of an Array? Am I going
around bassackwards on this?
Eric
On 10/4/07, Eric P. [email protected] wrote:
shipping_type.should be_include(Cart::SHIPPING_TYPE_REGULAR)
You were close on this one, it should just be
shipping_type.should include(Cart::SHIPPING_TYPE_REGULAR)
It’s a special predicate just for working with arrays.
Cheers,
/Nick
On 10/4/07, Eric P. [email protected] wrote:
shipping_type.should be_include(Cart::SHIPPING_TYPE_REGULAR)
This is what I usually do; I agree the syntax of be_include looks odd,
as is
true for some other predicates.
OTOH, it’s hard to find a formulation that works well for all
predicates.
For instance:
domain.should_valid doesn’t look as good as domain.should be_valid
domain.should_include(x) looks better than domain.should be_include(x)
Rspec could support both, which means you could select the one that
“looks”
right, I guess. That might lead to inconsistent usage. I can live with
the
current approach as well, looks odd, but it’s not a serious problem for
me.
On 10/4/07, Geoffrey W. [email protected] wrote:
domain.should_include(x) looks better than domain.should be_include(x)
Rspec could support both, which means you could select the one that “looks”
right, I guess. That might lead to inconsistent usage. I can live with the
current approach as well, looks odd, but it’s not a serious problem for me.
As Nick points out in this thread, rspec supports:
collection.should include(some_item)
Also, you can define your own predicate matchers very easily using the
predicate_matchers collection:
predicate_matchers[:be_able_to_cook] = [:can_cook?]
chef.should be_able_to_cook
=> passes if chef.can_cook?
Cheers,
David
On Oct 4, 2007, at 12:46 PM, Nick S. wrote:
tongue very well. I then looked up the use of Predicates, which I
had been using, but hadn’t realized:
shipping_type.should be_include(Cart::SHIPPING_TYPE_REGULAR)
You were close on this one, it should just be
shipping_type.should include(Cart::SHIPPING_TYPE_REGULAR)
It’s a special predicate just for working with arrays.
Isn’t it a general predicate for all foo? (boolean) methods?
class Object
def foo?
true
end
end
Object.new.should be_foo
Doesn’t that work, as well?
Scott
On 10/4/07, Scott T. [email protected] wrote:
be_true
Object.new.should be_foo
Doesn’t that work, as well?
Sure it does, but be_include sounds icky. That’s the point of this
thread, I believe.
Then it is a matter of changing your code or adding a .autotest like so:
Autotest.add_hook :run do |at|
at.exceptions = /generated_output/
end
This allows you to ignore directories that match a regexp.
Unfortunately, there is no
hook in Autotest to allow you to ignore single file regexp which I
need to ignore flymake.rb
files when running emacs
Is there a way to have Autotest ignore a directory? I am working on a
project that involves code generation and some spec stub files are
created. This causes Autotest to run over and over. Ideally I would
like to be able to say something like
autotest --ignore /generated_output
or have an entry in my .autotest file that told autotest to always
ignore that directory.
Thank you,
Matt M.