Skip to content

Instantly share code, notes, and snippets.

View katakeynii's full-sized avatar

Mohamed Camara GUEYE katakeynii

View GitHub Profile
class Variant
attr_accessor :price, :sku, :is_master, :product
delegate :name, to: :@product, allow_nil: true, prefix: "product"
def initialize(data={})
@price = data[:price]
@sku = data[:sku]
@is_master = data[:is_master] || false
@product = data[:product]
require 'forwardable'
# Ici notre class produit hérite de notre delegotr
class Product
extend Forwardable
attr_accessor :name, :variants
def_delegators :@obj, :price, :sku
def initialize price, sku,
require 'delegate'
# On crée notre classe délégator
class MyDelegator < Delegator
# retourne l'objet à qui on a déléguer les fonctions
def __getobj__
@delegate_sd_obj
end
# permet de changer l'objet à qui on délégue la fonction
@katakeynii
katakeynii / profile_user.rb
Last active October 25, 2022 11:10
Testing delegate 2
require "delegate"
class User
attr_accessor :firstname, :lastname, :username
def initialize(firstname, lastname, username)
@firstname = firstname
@lastname = lastname
@username = username
end
def iam
@katakeynii
katakeynii / product_with_delegate_class.rb
Last active October 25, 2022 11:06
product_with_delegate_class
require "delegate"
class Variant
attr_accessor :price, :sku, :is_master
def initialize(data={})
@price = data[:price]
@sku = data[:sku]
@is_master = data[:is_master] || false
end
end
@katakeynii
katakeynii / product_with_method_missing.rb
Created October 24, 2022 16:28
product_with_method_missing
class Product
attr_accessor :name, :variants
def initialize price, sku,
master = Variant.new(price: price, sku: sku, is_master: true)
@variants = [master]
end
def add_variant(variant)
@variants << variant
end
@katakeynii
katakeynii / product_variant.rb
Last active October 24, 2022 16:11
Product With variants
class Product
attr_accessor :name, :variants
def initialize price, sku,
master = Variant.new(price: price, sku: sku, is_master: true)
@variants = [master]
end
def add_variant(variant)
@variants << variant
end
<?php
namespace App\EventSubscriber;
use \Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\Common\EventSubscriber;
class TableSchemaSubscriber implements EventSubscriber
{
protected $schemaName = '';
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Challenge DOM Manipulation</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
const throwMissing = (parent) => { throw new Error(`le nom de ${parent} doit etre renseigné`) }
const CodeFamille = (papa = throwMissing("papa"), mere = throwMissing("Maman"), ...children ) => {
if(children.length == 0){
console.log(" Pas d'enfants ")
return;
}
console.log("Papa: ", papa, "Maman: ", mere, "enfants :", children )
}