Is there a shorthand version of this loop in Ruby [closed] - ruby

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I am writing a code that has lines limit of a method so I am trying to write the shortest possible version of this loop :
for i in (0..number)
#lines of code
end
I was wondering if there is a way to do it somehow similar to:
{
#lines of code
}*number
In general I am looking for the shortest possible way of writing something like this.

some way to do a loop/iterator
0.upto(number) { ... }
or
number.upto(number) { ... }

Based on the second code block in your question, I'll conclude you do not need to reference the loop variable i within your loop. So the best solution in Ruby is:
(number+1).times {
# code
}

Related

How to do arithmetic in bash when the operator is stored in a variable? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
add=+
echo "$((1{$add}2))"
If I write 1+2 it outputs 3, but when I store the + sign in a variable called "add" and then use it in place of + operator, it just outputs it as if it was a string. How can I use the variable and still make it output 3?
As far as I can see, the code is wrong and should not print anything but an error.
What you should do is write the variable as ${add}, not {$add}.

How to write a file in ruby without a terminating newline [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
For debugging purposes, I want to alter a rake test so as not to end a saved file with a newline.
I don't know ruby. How do I do this? (file.print doesn't seem to work.)
Not clear what you are doing, but since you tried file.print, it looks like you have access to what is to be printed. Let's say this is string. My guess is that string already has a newline character. Then do:
file.print(string.chomp)

Apply regex to a string in irb [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 8 years ago.
Improve this question
I am trying to get this to work. Its driving me nuts.
'/leisure/venuename/news'.gsub(/\^(.*)(\/.*)$/, $1#$2)
This should return
/leisure/venuename#/news
so eventualy I can do it to this
venue_news_index_path(sensitive_venue).gsub(/\^(.*)(\/.*)$/, $1#$2)
This?
'/leisure/venuename/news'.gsub(/^(.*)(\/.*)$/, '\1#\2')

Ruby detect if a column value has changed [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
So I have this line:
if self.company_changed?
And it works fine but this detects if the company has changed on the object. I need to know if the database value has changed and not if the value in memory has changed. So I tried this:
if :company_changed?
This seems to work in debug mode when I only execute the one line. If I let it run, it fails in testing on an infinite loop.
My question is what can be used in ruby to check to see if the column value has actually changed.
I'm pretty sure you're actually talking about ActiveRecord. In which case, you'd need to re-fetch the record to see if the value has changed in the database.
self.class.find(self.id).company != self.company
A general purpose method for this might be something like:
def attr_changed_in_db?(attr)
self.class.find(self.id).attributes[attr] != self.attributes[attr]
end
There is an excellent screencast on this by the great Ryan Bates.

Ruby 1.9, return array if keys include a particular object [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Code:
#albums = #genres.each_with_index { |item,key|
if item.keys.include?('Albums')
break
end
}
This should be returning the Albums array (the #genres object is a huge multidimensional JSON response)
I reckon this is what I get for trying to code while being sick... or just simply doing things wrong... either way, any help is much appreciated!
I think you want #detect (or its synonym #find):
#albums = #genres.detect { |item| item.key?('Albums') }['Albums']
EDIT | Also note that you can provide an argument to break just like you can do with return, if you want to break and return a specific value.

Resources