Skip to content

Instantly share code, notes, and snippets.

View vlado's full-sized avatar

Vlado Cingel vlado

View GitHub Profile
@vlado
vlado / a_rails_examples.rb
Last active November 7, 2022 14:59
Value Objects in Ruby (and Rails)
# create_table :products do |t|
# t.integer :price_in_cents
# ...
# end
class Product < ApplicationRecord
VAT = 25 # %
def price_in_eur
price_in_cents / 100.0
end
class SearchForm
include ActiveModel::Model
%i[query lat lng].each do |name|
define_method name do
@params[name]
end
end
def initialize(params)
@vlado
vlado / _form.html.erb
Last active June 9, 2020 06:32
Example how mdc form builder could be implemented
<%= mdc_form_with model: @my_model do |f| %>
<%= f.mdc_text_field :last_name %>
<% end %>
@vlado
vlado / custom_chosen.coffee
Created November 5, 2013 08:40
How to extend Chosen jQuery library example
# 1. Extend Chosen with custom method or owerwrite existing methods
class CustomChosen extends Chosen
show_search_field_default: ->
# ...
# original method updated
# ...
some_new_method: ->
# ...
@vlado
vlado / controller_helpers.rb
Last active February 16, 2019 01:03
Stub devise authentication in controller specs with multiple scopes
# Usage:
# fake_sign_in
# fake_sign_in(@user)
# fake_sign_in(@admin)
# fake_sign_in(:admin)
# fake_sign_in(@some_object, :scope => :user)
# fake_sign_out
# fake_sign_out :admin
module ControllerHelpers
@vlado
vlado / encrypt_decrypt.sh
Created January 28, 2019 11:43
Encrypt/Decrypt file on macOs
# Encrypt
openssl aes-256-cbc -salt -in filename.ext -out filename.enc
# Decrypt
openssl aes-256-cbc -d -salt -in filename.enc -out filename.ext
@vlado
vlado / gist:1877457
Last active April 3, 2018 08:36
Postgres on macos or OSX - Fix
# ** ERROR 1 **
# FATAL: lock file "postmaster.pid" already exists
# HINT: Is another postmaster (PID 4646) running in data directory "/usr/local/var/postgres"?
#
# ** ERROR 2 **
# Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
#
# To fix one of this errors:
cat /usr/local/var/postgres/postmaster.pid # pid is the number on first line
@vlado
vlado / appointment.rb
Last active October 8, 2017 21:01
Rails bug when creating using association and scopes?
class Appointment < ApplicationRecord
belongs_to :inquiry
enum appointment_type: { default: 0, q1: 1, q2: 2 }
scope :q1, -> { where(appointment_type: q1) }
scope :on_date, -> (date) { where(scheduled_date: date) }
before_validation :set_start_and_end_time
def duration
[15, 30, 45].sample
@vlado
vlado / you_tube_embed_example.html.erb
Last active May 8, 2017 17:37
How to embed youtube video in Rails view
<%
video_code, video_width, video_height = 'nkYA1xqrdGw', 938, 555
video_embed_params = { :fs => 1, :rel => 0, :hd => 1, :autoplay => 1, :modestbranding => 1, :version => 3, :enablejsapi => 1, :playerapiid => "ytplayer" }
player_wrapper_id, player_id = 'ytPlayerWrapper', 'ytPlayer'
%>
<% unless mobile_safari_request? %>
<% content_for :head do %>
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" %>
<% end %>
@vlado
vlado / install_neo4j_on_semaphore_ci.sh
Last active August 5, 2016 09:18
Install Neo4j on Semaphore CI
#! /usr/bin/env bash
set -e
source /opt/change-java-version.sh
change-java-version 8
wget -O - https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add -
echo 'deb http://debian.neo4j.org/repo stable/' >/tmp/neo4j.list
sudo mv /tmp/neo4j.list /etc/apt/sources.list.d
sudo apt-get update