ruby

learning and "singing" Ruby with Sinatra

Hello I'm trying to improve my ruby knowledge by reading The Ruby Programming Language book. Reading Coders at work I saw that lot of the interviewees suggest to dive into a project source code to learn best practices to be aware of bad habits and of course to take new inspirations for how to do things. I decided to pick a project as...

Rails preventing duplicates in polymorphic has_many :through associations

Is there an easy or at least elegant way to prevent duplicate entries in polymorphic has_many through associations? I've got two models, stories and links that can be tagged. I'm making a conscious decision to not use a plugin here. I want to actually understand everything that's going on and not be dependent on someone else's code that...

Twitter Oauth Issue

I'm using a few different gems here (Devise, Warden, Warden_Oauth), but I think you could answer this question without necessarily being familiar with them. I'm trying to execute a Twitter Oauth strategy, where the app first looks for a user by an access_token and access_secret, and then if it doesn't find one, it creates a new user. I c...

hosting a high traffic facebook app (game)

we are currently developing a high traffic facebook application. all the traffic will be within one month, where there are 500.000 to 1.000.000 expected users. after that month, the game is over and we have a winner - so the app will be archived. we are currently planning to develop the application with ruby on rails and searching for h...

nokogiri vs hpricot?

Which one would you choose? My important attributes are (not in order) Support & Future enhancements Community & general knowledge base (on the Internet) Comprehensive (i.e proven to parse a wide range of *.*ml pages) Performance Memory Footprint (runtime, not the code-base) ...

Minimizing calls to database in rails

Hi guys, i am familiar with memcached and eager loading, but neither seems to solve the problem i am facing. My main performance lag comes from hundreds of data retrieval calls from the database. The tricky thing is that I do not know which set of users i need to retrieve until i have several steps of computation. I can refactor my c...

Avoiding class_eval in Ruby metaprogramming

I want to have a return_empty_set class method in Ruby, similar to the attr_reader methods. My proposed implementation is class Class def return_empty_set *list list.each do |x| class_eval "def #{x}; Set.new; end" end end end and example usage: class Foo return_empty_set :one end Foo.new.one # returns #<Set: {}> ...

How Do I Remove The First 4 Characters From A String If It Matches A Pattern In Ruby

I have the following string: "h3. My Title Goes Here" I basically want to remove the first 4 characters from the string so that I just get back: "My Title Goes Here". The thing is I am iterating over an array of strings and not all have the h3. part in front so I can't just ditch the first 4 characters blindly. I have checke...

One liner in Ruby for displaying a prompt, getting input, and assigning to a variable?

Often I find myself doing the following: print "Input text: " input = gets.strip Is there a graceful way to do this in one line? Something like: puts "Input text: #{input = gets.strip}" The problem with this is that it waits for the input before displaying the prompt. Any ideas? ...

How to setup default attributes in a ruby model

I have a model User and when I create one, I want to pragmatically setup some API keys and what not, specifically: @user.apikey = Digest::MD5.hexdigest(BCrypt::Password.create("jibberish").to_s) I want to be able to run User.create!(:email=>"[email protected]") and have it create a user with a randomly generated API key, and secret. I...

Undefined method for ri inside of IRB

Inside of the interactive ruby console if i type ri then i get an undefined method error, do i explicitly have to install documentation somewhere to get this to work? irb(main):015:0* ri --help NoMethodError: undefined method `-@' for nil:NilClass from (irb):15 from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295 irb(main):016...

Ruby ways to authenticate using headers?

I am designing an API system in Ruby-on-Rails, and I want to be able to log queries and authenticate users. However, I do not have a traditional login system, I want to use an APIkey and a signature that users can submit in the HTTP headers in the request. (Similar to how Amazon's services work) Instead of requesting /users/12345/phot...

In Ruby or Python can the very idea of Class be rewritten?

Howdy All... first time at stack overflow. I'm looking into using some of the metaprogramming features provided by Ruby or Python, but first I need to know the extent to which they will allow me to extend the language. The main thing I need to be able to do is to rewrite the concept of Class. This doesn't mean that I want to rewrite a...

How do i use RVM w/ Hudson CI server on Debian?

I'm trying to setup an automated "build" server for my rails projects using Hudson CI. SO far it's able to run specs and do metrics on the code but I have 2 different projects dependent on 2 different versions of ruby. So i'm trying to use RVM to run multiple copies of ruby then switch back and forth in a pre-build step. I found a coup...

How to parse AMF data in Ruby?

So I see that there are a few Rails plugins for serving AMF. However, is there a library that I can use in a Ruby environment to act as an AMF client: to read AMF data, and deserialize it into a Ruby object? If not, how could I best go about using tools built in other languages? I suppose I could write something in Python or Java or wha...

How does one write extconf.rb files when one extension includes header files from another?

This is a follow-up question for: Multiple Ruby modules under one directory What happens if these extensions include each other? For example, you have the following structure: ext/foo ext/bar In ext/bar/bar.h, you have a #include "foo.h" foo.h and foo.cpp compile to form foo.o, to make life a little more complicated. Finally, it ...

Rails: Overriding ActiveRecord association method

Is there a way to override one of the methods provided by an ActiveRecord association? Say for example I have the following typical polymorphic has_many :through association: class Story < ActiveRecord::Base has_many :taggings, :as => :taggable has_many :tags, :through => :taggings, :order => :name end class Tag < ActiveRecor...

How do I calculate the content-length of a file upload in ruby?

I need to include the content-length of a image /png file posted in an upload to a webservice. But how do I calculate the content-length to include in the header? Thanks. I am submitting it using rest-client. The webservice for the upload is Postful: and the documentation has been unclear: http://www.postful.com/developer/guide#upl...

Rake tasks in other files

Im trying to use rake in a project, and if I put everything into Rakefile it will be huge and hard to read/find things, so I tried to stick each namesapce in its own file in lib/rake, i added this to the top of my rake file: Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map { |f| require f } it loads the file no problem, but doesn'...

rails best practices where to place unobtrusive javascript

Hi there, my rails applications (all 2.3.5) use a total mix of inline javascript, rjs, prototype and jquery. Let's call it learning or growing pains. Lately i have been more and more infatuated with unobtrusive javascript. It makes your html clean, in the same way css cleaned it up. But most examples i have seen are small examples, an...