ruby

Strange ruby behavior when using Hash.new([])

Consider this code: h=Hash.new(0) #new hash pairs will by default have 0 as values h[1]+=1 # {1=>1} h[2]+=2 # {2=>2} that's all fine, but: h=Hash.new([]) #empty array as default value h[1]<<=1 #{1=>[1]} - OK h[2]<<=2 #{1=>[1,2], 2=>[1,2]} # why ?? At this point I expect the hash to be: {1=>[1], 2=>[2]} But something goes wrong....

How do I determine whether ruby can fork without excessive use of regexp?

Is it possible to determine whether the implementation of ruby you're running on is capable of supporting fork, without running a regex against RUBY_PLATFORM that'll expand until it summons Cthulhu? (Related question: Ruby - How can I find out on which system my program is running?) Edit: I tried Marc-Andre's suggestion. It doesn't wor...

Ruby IRB - Requires and Scope

Trying to understand this problem I'm running into. I create file welcome.rb. The contents of this file: welcome_message = "hi there" I then launch an irb session. And type require 'welcome'. That works fine. Then I type: puts welcome_message I get the error message undefined local variable or method `welcome_message' for main:Obj...

How to split a Ruby array into X parts

I have an array foo = %w(1 2 3 4 5 6 7 8 9 10) How can I split or "chunk" this into smaller arrays? class Array def chunk(size) # return array of arrays end end foo.chunk(3) # => [[1,2,3],[4,5,6],[7,8,9],[10]] ...

Adding Table Columns to a Group by clause - Ruby on Rails - Postgresql

I am trying to use Heroku and apparently Postgresql is a lot more strict than SQL for aggregate functions. When I am pushing to Heroku I am getting an error stating the below. On another question I asked I received some guidance that said I should just add the columns to my group by clause and I am not sure how to do that. See the full...

Is there a "method_missing" for rake tasks?

If my Rakefile does not find a task with a particular name, I'd like rake to instead create a new task by that name according to certain rules, if a file with the missing task name exists. But if it doesn't, I want to fall back to the default ("Don't know how to build task 'foo'!"). In short, is there a method_missing for Rake? ...

get next/previous month from a Time object

I have a Time object and would like to find the next/previous month. Adding subtracting days does not work as the days per month vary. time = Time.parse('21-12-2008 10:51 UTC') next_month = time + 31 * 24 * 60 * 60 Incrementing the month also falls down as one would have to take care of the rolling time = Time.parse('21-12-2008 10:51...

Ajax page.replace_html problems with partials in Rails

Hello, I am having a problem with a pretty simple AJAX call in rails. I have a blog-style application and each post has a "like" feature. I want to be able to increment the "like" on each post in the index using AJAX onclick. I got it to work; however, the DOM is a bit tricky here, because no matter what partial its looking at, it will ...

Thin, Sinatra, and intercepting static file request to do CAS authentication

I'm using the casrack-the-authenticator gem for CAS authentication. My server is running Thin on top of Sinatra. I've gotten the CAS authentication bit working, but I'm not sure how to tell Rack to intercept "/index.html" requests to confirm the CAS login, and if the user is not allowed to view the page, return a HTTP 403 response inst...

How to map a database view using Ruby ActiveRecord?

How to map a mysql database view using Ruby ActiveRecord in Rails? ...

Using AJAX to display error message Ruby on Rails

I have built a blog using Ruby on Rails. New to both. I am implementing AJAX pretty effectively until I get to the error handling portion. I allow for comments on posts and do this by rendering a comment partial and remote form in the /views/posts/show.html.erb page. Upon successful save of a comment the show page is updated using view...

Rails 3 Flash Uploader

I am trying to get Uploadify working with Rails 3. However, I can't insert the middleware with the correct arguments. This is the Rails 2 way: ActionController::Dispatcher.middleware.insert_before( ActionController::Session::CookieStore, FlashSessionCookieMiddleware, ActionController::Base.session_options[:key] ) This is what ...

Learning rails and AJAX. How do I load a div via ajax and then toggle hiding/showing it?

I'm doing my first Ruby on Rails project. I am working on a project where the user can add a new message. Then they can add updates to this message like a thread. I've got it all written and now I'm going back and applying some AJAX. I want to show just the main message when the page first loads. Then when I click a link I want an A...

Escape characters in MySQL, in Ruby

I have a couple escaped characters in user-entered fields that I can't figure out. I know they are the "smart" single and double quotes, but I don't know how to search for them in mysql. The characters in ruby, when output from Ruby look like \222, \223, \224 etc irb> "\222".length => 1 So - do you know how to search for these in m...

Ruby File IO question; Maintain file read position between script executions

I have two files a.txt and b.txt (henceforth a and b). My script iterates through a, does some operation, and potentially inserts a line to b. In the event the script stops, I need it to pick up where it left off. In the example below: foo was copied to b bar was copied to b zim was not copied to b (did not pass some criteria) gaz wa...

Thinking Sphinx - sorting by a string attribute gets out of sync when changes are made

I have a "restaurants" table with a "name" column. I've defined the following index: indexes "REPLACE(UPPER(restaurants.name), 'THE ', '')", :as => :restaurant_name, :sortable => true ... because I want to sort the restaurant names without respect to the prefix "The ". My problem is that whenever one of these records is updated (in ...

Ruby on Rails: Can I do a "link_to" to call a create action?

How would I correctly call the create action from a link_to? I'm using REST (map.resources :recipes). Here's the create action: def create recipe = Recipe.create(:name => "French fries") redirect_to recipe end For example, I thought something like this might work: <%= link_to "Create a default recipe", recipe_path, :method => :po...

Using Ruby/Python code in an iPhone OS app?

My app needs to use a library which is only available for Python and Ruby. From my understanding, Apple allows Ruby to run on iPhone as long as users can't execute arbitrary code (Rhomobile uses Ruby). How can I bundle Ruby/Python with my app, call a function from my Obj-C code, and get the result (a string) back in C or Obj-C format? ...

Heroku Push Problem part 2 - Postgresql - PGError Relations does not exist - Ruby on Rails

Ok so got through my last problem with the difference between Postgresql and SQLite and seems like Heroku is telling me I have another one. I am new to ruby and rails so a lot of this stuff I can't decipher at first. Looking for a little direction here. The error message and PostsController Index are below. I checked my routes.rb file an...

Breakdown of this Ruby code?

Would anyone be kind enough to dissect the merge! method? Its usage of conditions and variable assignment looks rather terse, and I'm having a difficult time following it. Would love to hear a Ruby-savvy developer break this apart. module ActiveRecord class Errors def merge!(errors, options={}) fields_to_merge = if only=op...