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 String | |
| def to_caesar shift | |
| shift = (shift % 26).abs | |
| each_byte.map { |b| ((b + shift - 97) % 26 + 97).chr }.join | |
| end | |
| end | |
| a = "Caesar was a cool guy" | |
| p a.split.map { |w| w.to_caesar 4 }.join(' ') # => "aeiwev aew e gssp kyc" |
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 User | |
| def say | |
| puts "Hello" | |
| end | |
| end | |
| def override_instance_methods(c) | |
| c.instance_methods(false).each do |m| | |
| c.class_eval <<-RUBY | |
| alias #{m}_original #{m} |
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 Array | |
| def bindex element, lower = 0, upper = length - 1 | |
| return if lower > upper | |
| mid = (lower + upper) / 2 | |
| element < self[mid] ? upper = mid - 1 : lower = mid + 1 | |
| element == self[mid] ? mid : bindex(element, lower, upper) | |
| end | |
| end | |
| class Array |
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
| at_exit do | |
| deploy.unlock | |
| end | |
| set :deploy_lock_file, "#{shared_path}/tmp/deploing_lock_file" | |
| namespace :deploy do | |
| desc "Check if somebody already is deploing" | |
| task :check_lock 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
| require 'benchmark' | |
| require 'benchmark/ips' | |
| Benchmark.ips do |r| | |
| r.report("group_by") do | |
| (0..1000).group_by { |w| w % 2 == 0 }.values | |
| end | |
| EVEN = 0 | |
| ODD = 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
| require 'active_record' | |
| require 'csv' | |
| ActiveRecord::Base.establish_connection( | |
| adapter: "mysql2", | |
| host: "localhost", | |
| database: "36on_development", | |
| user: "username", | |
| password: "password", | |
| pool: 5, |
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
| train_path.each do |obj| | |
| result << obj.obj_id | |
| end if train_path.any? | |
| # | |
| # 1. Если ты вызываешь метод .each, то как минимум переменная | |
| # должна иметь множественное число, это ведь коллекция (массив), | |
| # т.е. это train_paths | |
| # | |
| # 2. Если массив пуст, то метод .each сразу вернет пустой массив |
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 'parser' | |
| require 'parser/current' | |
| module OneLetterVariableDetector | |
| class NodeAnalyzer < Struct.new(:node, :path) | |
| def analyze | |
| return unless node && node.respond_to?(:type) | |
| if node.type == :lvasgn || node.type == :lvar | |
| if lvar_name.size == 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
| require "socket" | |
| socket = TCPSocket.open("www.theonion.com", "80") | |
| TCPSocket.open("www.theonion.com", 80) do |socket| | |
| socket.puts "GET / HTTP/1.0\n\n" | |
| puts socket.read | |
| 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
| # Reddit thread: http://www.reddit.com/r/ruby/comments/217yvm/trivia_ruby_quiz/ | |
| # Quiz page: http://makaroni4.com/ruby/quiz/2014/03/24/ruby-quiz/ | |
| # Explanation link: http://www.medihack.org/2011/03/15/intend-to-extend/ | |
| # Code example: | |
| module Human | |
| def eat | |
| puts "Yam" | |
| end |