Skip to content

Instantly share code, notes, and snippets.

View KamilLelonek's full-sized avatar
🏋️‍♂️
Do you even lift?

Kamil Lelonek KamilLelonek

🏋️‍♂️
Do you even lift?
View GitHub Profile
class CreateTask
include Wisper::Publisher
def call(attributes)
task = Task.create(attributes)
if task.valid?
publish :success, task
else
publish :error, task
@KamilLelonek
KamilLelonek / gravatar_helper.rb
Last active August 29, 2015 14:10
GravatarHelper module to be mixed in any class
require 'digest/md5'
module GravatarHelper
def gravatar_for_email(email)
"#{gravatar_endpoint}#{hash_for_email(email)}"
end
def hash_for_email(email)
Digest::MD5.hexdigest(email)
end
@KamilLelonek
KamilLelonek / gravatar_helper.rb
Created December 8, 2014 08:36
GravatarHelper that can be used directly
require 'digest/md5'
module GravatarHelper
# previous implementation
# ...
def gravatar_for_email(email)
self.class.gravatar_for_email(email)
end
end
@KamilLelonek
KamilLelonek / gravatar_helper.rb
Last active August 29, 2015 14:10
GravatarHelper with module_function usage
require 'digest/md5'
module GravatarHelper
module_function
def gravatar_for_email(email)
"#{gravatar_endpoint}#{hash_for_email(email)}"
end
def hash_for_email(email)
Digest::MD5.hexdigest(email)
@KamilLelonek
KamilLelonek / 1_brand.rb
Last active September 15, 2022 16:05
Repository pattern example in Ruby for Rails developers
module Storage
module Models
class Brand < ActiveRecord::Base; end
end
end
@KamilLelonek
KamilLelonek / 7_brand_in_memory_adapter.rb
Created January 19, 2015 20:01
Repository pattern spec example in Ruby for Rails developers
class BrandInMemoryAdapter
attr_accessor :db
def initialize
@db = []
end
def all
db
end
#!/usr/bin/env ruby
# WANT_JSON
require 'rubygems'
require 'json'
File.open(ARGV[0]) do |arguments_stream|
begin
data = JSON.parse(arguments_stream.read)
dir_path = data.fetch 'dir_path'
@KamilLelonek
KamilLelonek / coffee_constructor.coffee
Last active August 29, 2015 14:14
Creating objects in CoffeeScript - part1[code]
class OrderForm
constructor: (type, frequencyNumber, frequencyPeriod, name, mail, company, cvr, phone, address, products, message) ->
@type = type
@frequencyNumber = frequencyNumber
@frequencyPeriod = frequencyPeriod
@name = name
@mail = mail
@company = company
@cvr = cvr
@phone = phone
@KamilLelonek
KamilLelonek / coffee_constructor.coffee
Created February 6, 2015 04:14
Creating objects in CoffeeScript - part1[usage]
@OrderService.sendOrder new OrderForm(
@$scope.type
@$scope.frequencyNumber
@$scope.frequencyPeriod
@$scope.name
@$scope.mail
@$scope.company
@$scope.cvr
@$scope.phone
@$scope.address
@KamilLelonek
KamilLelonek / ruby_constructors.rb
Created February 6, 2015 04:25
Ruby constructor arguments names
class Foo
def initialize(foo:, bar:) end
end
Foo.new(foo: 1, bar: false)
################################
class Bar
def initialize(foo, bar) end