Skip to content

Instantly share code, notes, and snippets.

View fdutey's full-sized avatar

Florian Dutey fdutey

  • Simfinity
  • Zhuhai
View GitHub Profile
# lib/services/user/signup_service.rb
module Services
module User
class SignUpService
attr_reader :publish_statistics_service,
:send_email_confirmation_service
def initialize(
user_publish_statistics_service:,
@fdutey
fdutey / sum.rb
Last active November 7, 2017 03:22
def parse_arg(arg)
a, b, q = arg.split(' ').map(&:to_i)
[Range.new(a, b), q]
end
inputs = []
while arg = STDIN.gets
inputs << parse_arg(arg)
end
describe :note_for do
it 'give notes for the project' do
CategoryProject.create(:project => project,
:category => category,
:description => 'test')
params = { :category => category }
project.notes.create params.merge(:value => 8)
2.times{ project.notes.create params.merge(:value => 3) }
@fdutey
fdutey / gist:2358352
Created April 11, 2012 10:04
03.Héritage
/**
Comme nous l'avons vu, il n'y a pas de classe en JavaScript.
La notion même d'héritage tel que conçu de manière traditionnelle n'a donc aucun sens.
Il existe plusieurs façons de concevoir et mettre en oeuvre l'héritage en JS:
* héritage de prototype
* héritage classique
* copie
module Formol
class Post < ActiveRecord::Base
#Security
attr_protected :topic_id, :user_id, :created_by_topic
#Virtual attributes
attr_accessor :created_by_topic, :quote_id, :register_user_as_subscriber
#Default values
default_value_for :created_by_topic, false
#lib/active_record/custom_validations.rb
module ActiveRecord
module CustomValidations
def validates_unchanged_value(*attr_names)
configuration = { :message => :frozen_attribute }
configuration.update(attr_names.extract_options!)
configuration[:on] = :update
validates_each(attr_names, configuration) do |record, attr_name, value|
class Post < ActiveRecord::Base
#...
validates_unchanged_value :title, :if => published?,
:message => :frozen_attribute_when_published
end
a = { :a => '1', :b => '2' }
b = a.dup
with a do
def test_method
keys
end
end
a.test_method #=> [:b, :a]
class Object
def with(obj, &block)
obj.instance_eval &block
end
end
h = { :a => 1, :b => 2 }
a = ["a", "b"]
with h do
posts = Post.all
#renvoie true si ma collection a plusieurs (> 1) élément répondant à la condition passée sous forme de bloc
posts.many?(&:published?) #=> true
#renvoie true si aucun élément de ma collection ne répond à la condition passée sous forme de bloc
posts.none?(&:published?) #=> false
#effectue la somme des valeurs renvoyées successivement par un bloc executé sur chaque élément de ma collection
posts.sum(&:comments_count) #=> 10