Is there a way to insert code which is unbalanced into Ruby source.
For example, I have a condition which is checked in many places, but
which i am not yet sure is the correct condition, so i want to keep only
that condition in an “include” library called “not yet completed
condition” or “condition which i reckon will change and it is used
everywhere”.
This include library may contain this code -
if condition then
I would like to be able to insert this in my source code with an in situ
“include”, but the Ruby include expects a complete block.
the source code would look like this-
includesnippet “C:/INSERTS/IFNOTBROKEN.RB.INS”
While you may think this is crazy, and i can certainly see your point,
this question is related to converting from another language to Ruby, so
i just have to ask.
I would like to be able to insert this in my source code with an in situ
“include”, but the Ruby include expects a complete block.
the source code would look like this-
includesnippet “C:/INSERTS/IFNOTBROKEN.RB.INS”
While you may think this is crazy, and i can certainly see your point,
this question is related to converting from another language to Ruby, so
i just have to ask.
Include doesn’t include a file, but a module.
You can do what you want with load but you need to work around the way
ruby treats line breaks, note how I left the if unfinished and closed
it after the load:
rick@frodo:/public/rubyscripts$ cat condition.rb
true
rick@frodo:/public/rubyscripts$ cat loadtest.rb
if (
load ‘condition.rb’
)
puts “included file evaluated to 1”
else
puts “included file evaluated to non-1”
end
rick@frodo:/public/rubyscripts$ ruby loadtest.rb
included file evaluated to 1
As an afterthought, having answered your question without analysis of
whether this is a good thing, there are probably saner approaches, two
which come to mind are:
defining the condition separately as a function or a lambda.
defining it as a string and using one of the eval family of
functions to evaluate it.
As an afterthought, having answered your question without analysis of
whether this is a good thing, there are probably saner approaches, two
which come to mind are:
defining the condition separately as a function or a lambda.
defining it as a string and using one of the eval family of
functions to evaluate it.
Definitely. The best thing to do would be to define a top-level
method for it, #require the file and then use the method in the
conditional. Maintaining the proposed scheme would probably be
a nightmare.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.