Skip to content

Instantly share code, notes, and snippets.

View tanakahisateru's full-sized avatar

Hisateru Tanaka tanakahisateru

View GitHub Profile
@tanakahisateru
tanakahisateru / clipboard.ts
Created July 12, 2022 09:48
クロスプラットフォームな ClipboardEvent 生成
/**
* コードによるクリップボードイベントの生成はブラウザ実装によってまったく違う。
*
* Gekko (Firefox) はコンストラクタの clipboardData 初期値を無視するが、
* 生成されたイベントオブジェクトの clipboardData には空の DataTransfer
* 入っている。データ入りの DataTransfer を事前準備できない。
*
* WebKit (Chrome, Safari, Edge) は、clipboardData の初期値をコンストラクタに
* 与えないと clipboardData = null になっている異常なオブジェクトを作ってしまう。
* こちらはデータ入りの DataTransfer を最初から与えても OK。
@tanakahisateru
tanakahisateru / AssertHtmlTarit.php
Last active June 13, 2022 14:30
assertHtmlStringEqualsHtmlString
<?php
/**
* @method assertEquals(mixed $expected, mixed $actual, string $message)
*/
trait AssetHtmlTrait
{
public function assertHtmlStringEqualsHtmlString(string $expectedHtml, string $actualHtml, string $message = ''): void
{
$expected = (new \PHPUnit\Util\Xml\Loader)->load(
$this->cleanHtml($expectedHtml),
@tanakahisateru
tanakahisateru / DoctrineHelper.php
Last active March 21, 2021 06:38
Symfony book problem
<?php
namespace Symfony\Bundle\MakerBundle\Doctrine;
final class DoctrineHelper
{
/**
* @return MappingDriver|LegacyMappingDriver|null
*
* @throws \Exception
@tanakahisateru
tanakahisateru / genuuid4.php
Created November 21, 2019 19:05
NEVER USE this UUIDv4 generator
#!/usr/bin/env php
<?php
/**
* Try: bin/genuuid4.php 65536 | sort | uniq -d
*/
class UuidV4
{
const VERSION = 4;
const VARIANT = 2;
@tanakahisateru
tanakahisateru / nazo.php
Last active April 22, 2019 08:29
The refactoring
<?php
foreach ($cells $ $cell) {
//
switch ($tdcnt++ % 3) {
case 0:
$cls = 'c_td1';
break;
case 1:
$cls = 'c_td2';
@tanakahisateru
tanakahisateru / main.py
Created February 28, 2019 07:26
牛乳パック1つと卵があれば6つ買うをやるシステム
from shop import Item, Shop
shop = Shop('イオン ドームシティ店')
cart = shop.cart()
cart.add(Item.MILK)
# TODO implement more
receipt = shop.paycheck(cart)
@tanakahisateru
tanakahisateru / wave-or-tilde.php
Last active June 19, 2018 11:10
入力した波ダッシュが全角チルダに化けるまたはその逆について
<?php
$wave = "\u{301C}";
$tilde = "\u{FF5E}";
// EUC-JP has no different character for wavy dash and full width tilde
$eucWave = mb_convert_encoding($wave, 'euc-jp', 'utf-8');
$eucTilde = mb_convert_encoding($tilde, 'euc-jp', 'utf-8');
assert($eucWave == $eucTilde);
// euc-jp to utf-8: always wavey dash
@tanakahisateru
tanakahisateru / emoji-gh2cp.rb
Last active January 29, 2018 08:33
Generates emoji data mapped from GitHub emoji name to fully-qualified codepoints
#!/usr/bin/env ruby
require 'set'
require 'net/http'
require 'json'
gh_emoji_json = Net::HTTP.get URI('https://api.github.com/emojis')
gh_emoji = JSON.load gh_emoji_json
exit 1 unless gh_emoji.kind_of? Hash
@tanakahisateru
tanakahisateru / AncestorPrivateAccessTrait.php
Created December 13, 2017 14:04
継承で子が親の private にアクセスするできるようにするやつ
<?php
trait AncestorPrivateAccessTrait
{
protected function invokePrivateMethod($name, $arguments = [])
{
$reflectionClass = new \ReflectionClass(get_class($this));
while (!$reflectionClass->hasMethod($name)) {
$reflectionClass = $reflectionClass->getParentClass();
if (!$reflectionClass) {
throw new \InvalidArgumentException('Property not found:' . $name);

OREORE

    "require": {
        "aura/di": "^3.2",
        "aura/dispatcher": "^2.0",
        "aura/includer": "^2.0",
        "aura/router": "^3.1",
        "http-interop/http-factory": "^0.3.0",
        "http-interop/http-factory-diactoros": "^0.3.0",