Skip to content

Instantly share code, notes, and snippets.

View codenamev's full-sized avatar
🌩️

Valentino Stoll codenamev

🌩️
View GitHub Profile
@codenamev
codenamev / wait_steps.rb
Last active October 6, 2015 18:12 — forked from jnicklas/wait_steps.rb
Capybara Javascript become_true RSpec matcher
require "timeout"
module WaitSteps
extend RSpec::Matchers::DSL
matcher :become_true do
match do |block|
begin
Timeout.timeout(ENV['CAPYBARA_TIMEOUT'] || Capybara.default_wait_time) do
sleep(0.1) until value = block.call
@codenamev
codenamev / gist:1f44a4d3cafac473d204
Created September 28, 2015 13:52 — forked from JosephPecoraro/shell-execution.rb
Shell Execution in Ruby
# Ways to execute a shell script in Ruby
# Example Script - Joseph Pecoraro
cmd = "echo 'hi'" # Sample string that can be used
# 1. Kernel#` - commonly called backticks - `cmd`
# This is like many other languages, including bash, PHP, and Perl
# Returns the result of the shell command
# Docs: http://ruby-doc.org/core/classes/Kernel.html#M001111
require 'open-uri'
require 'json'
language = 'en'
unless article = ARGV.shift
print 'What do you need to know? : '
article = URI::encode gets.chomp
end
@codenamev
codenamev / mobile_capybara.rb
Created December 20, 2012 16:20 — forked from anonymous/mobile_capybara.rb
Capybara view as iphone helper. Change the user agent string to be whatever device you'd like. It's also possible to add view-port dimensions.
# put this in `features/support/env.rb`
Capybara.register_driver :chrome do |app|
args = []
args << "--user-agent='Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile /9A334 Safari/7534.48.3'"
Capybara::Selenium::Driver.new(app, {:browser => :chrome, :args => args})
end
Before('@mobile') do
Capybara.current_driver = :chrome
end
@codenamev
codenamev / rspec_table_helpers.rb
Last active April 26, 2016 12:19
RSpec helper and Cucumber step to match table rows with Capybara
# Thanks to Henning Koch: https://makandracards.com/makandra/763-cucumber-step-to-match-table-rows-with-capybara
module ArrayMethods
def find_row(expected_row)
find_index do |row|
expected_row.all? do |expected_column|
first_column = row.find_index do |column|
content = column.content.gsub(/[\r\n\t]+/, ' ').gsub(/[ ]+/, ' ').strip
expected_content = expected_column.gsub(' ', ' ').strip
matching_parts = expected_content.split('*', -1).collect { |part| Regexp.escape(part) }
matching_expression = /\A#{matching_parts.join(".*")}\z/
@codenamev
codenamev / number_with_delimiter.js
Created December 21, 2011 15:46 — forked from scottwb/number_with_delimiter.js
Rails-like number_with_delimiter in javascript
Number.prototype.number_with_delimiter = function(delimiter) {
var number = this + '', delimiter = delimiter || ',';
var split = number.split('.');
split[0] = split[0].replace(
/(\d)(?=(\d\d\d)+(?!\d))/g,
'$1' + delimiter
);
return split.join('.');
};