Skip to content

Instantly share code, notes, and snippets.

👨‍🔬

Luján Fernaud lujanfernaud

👨‍🔬
View GitHub Profile
@lujanfernaud
lujanfernaud / .rubocop.yml
Created Aug 2, 2017
Prevent RuboCop from checking the use of quotes
View .rubocop.yml
inherit_from: ../.rubocop.yml
# Checks if uses of quotes match the configured preference.
Style/StringLiterals:
Enabled: false
@lujanfernaud
lujanfernaud / rails_datetime_select_capybara.md
Last active Sep 8, 2017
Rails: Test datetime_select using Capybara
View rails_datetime_select_capybara.md

Rails: Test datetime_select using Capybara

# test_helper.rb

def select_date_and_time(date, **options)
  return nil unless date
  
  field = options[:from]
@lujanfernaud
lujanfernaud / seeds-faker-carrierwave.rb
Created Sep 7, 2017
Rails: Seed database with remote Faker images and CarrierWave
View seeds-faker-carrierwave.rb
# We need to use 'remote_<object>_url' as attribute instead of '<object>'.
# Having Image, we would use 'remote_image_url: <url>'.
titles = [Faker::RockBand.name, Faker::BossaNova.artist, Faker::Book.title]
54.times do |n|
start_date = Faker::Date.between(1.day.from_now, 6.months.from_now)
end_date = start_date + 1.day
Event.create!(title: titles.sample + " ##{n}",
@lujanfernaud
lujanfernaud / testing_image_attachments_in_rails.md
Last active Feb 22, 2018
Testing image attachments or uploads in Rails
View testing_image_attachments_in_rails.md

Testing Image Attachments/Uploads in Rails

Model

We need to use File.open(Rails.root.join("<image_path>")).

File.open(Rails.root.join("test/fixtures/files/sample.jpeg"))
View rolify_remove_all_roles_for_user_in_resource.md

Rolify: Remove All Roles For User In a Specific Resource

We find all roles assigned to the user in the resource, a group in this case.

@user.roles.where(resource: @group)
=> [#<Role:0x00000004a80580
  id: 24,
@lujanfernaud
lujanfernaud / rails_pundit_custom_redirection_when_not_authorized.md
Last active Apr 30, 2018
Rails and Pundit: Custom Redirection When Not Authorized
View rails_pundit_custom_redirection_when_not_authorized.md

Rails and Pundit: Custom Redirection When Not Authorized

To use a custom redirection when a resource is not authorized we only need to add an user_not_authorized method to the controller, and define the redirection.

Example:

class Groups::MembershipRequestsController < ApplicationController
  def new
    @membership_request = MembershipRequest.new
@lujanfernaud
lujanfernaud / running_rails5_in_production_locally.md
Last active May 24, 2018
Running a Rails 5 App in Production Locally
View running_rails5_in_production_locally.md

Running a Rails 5 App in Production Locally

This is what we need to do:

export RAILS_ENV=production
rake db:reset
rake assets:precompile
RAILS_SERVE_STATIC_FILES=true
SECRET_KEY_BASE=production rails s
@lujanfernaud
lujanfernaud / removing_trailing_spaces.md
Last active May 31, 2018
Ruby and Nokogiri: Removing trailing spaces
View removing_trailing_spaces.md

Ruby and Nokogiri: Removing trailing spaces

sample_input = "<div>Hi&nbsp; &nbsp; &nbsp;</div>"
parsed_input = Nokogiri::HTML.parse(sample_input).text #=> "Hi   "

parsed_input.gsub(/\p{Space}*\z/, "") #=> "Hi"

\p{Space} catches any whitespace character.

View rails_migrations.md

Rails: Migrations

Add reference:

# add_reference :table, :column_name, foreign_key: boolean
add_reference :bookings, :flight, foreign_key: true

Add index:

@lujanfernaud
lujanfernaud / rails_random_date_in_period.md
Last active Jun 19, 2018
Rails: Random Date in Period
View rails_random_date_in_period.md

Rails: Random Date in Period

def random_date_in_period(period)
  rand(period).seconds.ago
end

random_date_in_period 1.year #=> Tue, 22 May 2018 04:55:54 UTC +00:00
random_date_in_period 1.year #=> Mon, 06 Nov 2017 19:50:07 UTC +00:00
You can’t perform that action at this time.