This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'rubygems' | |
| require 'activesupport' | |
| class Array | |
| def to_proc | |
| procs = self.clone | |
| lambda { |object, *args| | |
| procs.inject(object){ |object, proc| | |
| proc.to_proc.call(object, *args) | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def convert_value(value) | |
| case value | |
| when Hash | |
| value.with_indifferent_access | |
| when Array | |
| # value.collect { |e| e.is_a?(Hash) ? e.with_indifferent_access : e } | |
| value.include(WithIndifferentHashes) | |
| else | |
| value | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Hash | |
| # Like has_key? but accepts an list of keys and returns true of self has every | |
| # key in the array | |
| def has_keys?(key, *other_keys) | |
| other_keys.unshift key | |
| other_keys.flatten.all?{ |k| self.has_key? k } | |
| end | |
| # Like has_key? but accepts a list of keys and returns true of self has any |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IRB.conf[:AUTO_INDENT] = true | |
| IRB.conf[:EDITOR] = :mate | |
| require 'rubygems' | |
| require 'utility_belt' | |
| %w(google interactive_editor command_history with).each{ |t| require "utility_belt/#{t}" } | |
| require 'wirble' | |
| require 'pp' | |
| WIRBLE_OPTIONS = { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Regexp | |
| def to_proc | |
| lambda{|*args| (matches = args.shift.match(self)) ? matches.to_a.first : nil} | |
| end | |
| end | |
| example = %w(love me inside your face) | |
| puts example.find_all(&/^l|y|f/).inspect | |
| puts example.map(&/^l|y|f/).inspect |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Regexp | |
| def to_proc | |
| lambda {|arg| match(arg)} | |
| endhttp://gist.github.com/images/modules/gist/save_button.png | |
| end | |
| puts /whatever/.to_proc.call(5,6) | |
| # => untitled:3: warning: multiple values for a block parameter (2 for 1) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/features/step_definitions/challenge_creation_wizard_page_steps.rb b/features/step_definitions/challenge_creation_wizard_page_steps.rb | |
| index 5a49295..477bb46 100644 | |
| --- a/features/step_definitions/challenge_creation_wizard_page_steps.rb | |
| +++ b/features/step_definitions/challenge_creation_wizard_page_steps.rb | |
| @@ -3,7 +3,7 @@ When /^I enter "([^\"]+)" into the game field$/ do |game_name| | |
| fill_in("challenge_game_id", :with => game.param) | |
| end | |
| -When /^I enter that game''?s title into the game field$/ do | |
| +When Regexp.new('^I enter that game\'s title into the game field$') do |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Object | |
| def tell(method, *args) | |
| send(method, *args) | |
| self | |
| end | |
| alias_method :returning_self, :tell | |
| end | |
| puts [[1,2,[1,2]]].compact!.inspect | |
| puts [[1,2,[1,2]]].tell(:compact!).inspect |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Object | |
| def tell(method, *args) | |
| send(method, *args) | |
| self | |
| end | |
| alias_method :returning_self, :tell | |
| end | |
| puts [[1,2,[1,2]]].compact!.inspect | |
| puts [[1,2,[1,2]]].tell(:compact!).inspect |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class Object | |
| define_method :returning_self do | |
| ReturningSelf.new(self) | |
| end | |
| class ReturningSelf | |
| private *instance_methods.select { |m| m !~ /(^__|^\W|^binding$)/ } | |
| def initialize(subject) | |
| @subject = subject | |
| end | |
| def method_missing(sym, *args, &blk) |