Skip to content

Instantly share code, notes, and snippets.

View lolmaus's full-sized avatar
🐹
Reducing entropy

Andrey Mikhaylov (lolmaus) lolmaus

🐹
Reducing entropy
View GitHub Profile
@lolmaus
lolmaus / controllers.application\.js
Last active August 3, 2021 15:28
Ember Conucrrency perform helper vs Qunit
import Controller from '@ember/controller';
import { task } from 'ember-concurrency';
import { waitFor } from '@ember/test-waiters';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
@waitFor
reject() {
return new Promise((resolve, reject) => reject(new Error('SHOOP DA WHOOP!')));
import Controller from '@ember/controller';
import { TrackedArray } from 'tracked-built-ins';
import { action } from '@ember/object';
export default class ApplicationController extends Controller {
appName = 'particial application';
values = new TrackedArray([0, 1, 2, 3, 4, 'omg']);
@action handleInput(event) {
this.values[0] = event.target.value;
@lolmaus
lolmaus / Ссылки к докладу по Cucumber (EmberNN).md
Last active June 8, 2021 12:46
Ссылки к докладу по Cucumber (EmberNN 2021)
@lolmaus
lolmaus / _settings.json
Created April 7, 2021 13:56
Change the color of ESLint syntax highlighting: fixable are blue, non-fixable are yellow. For `vscode-eslint` v2.1.20+. https://github.com/microsoft/vscode-eslint/pull/1164
{
"eslint.rules.customizations": [
{ "rule": "*", "severity": "warn" }
{ "rule": "no-extra-boolean-cast", "severity": "info" },
{ "rule": "no-extra-parens", "severity": "info" },
{ "rule": "no-extra-semi", "severity": "info" },
{ "rule": "no-regex-spaces", "severity": "info" },
{ "rule": "curly", "severity": "info" },
{ "rule": "dot-location", "severity": "info" },
{ "rule": "dot-notation", "severity": "info" },
@lolmaus
lolmaus / LICENCE.md
Last active March 30, 2021 16:10
EmberConf 2021 companion app timezone converter. Open the Schedule page in the companion app, paste this code snippet into the Dev Tools console., change your time zone (first line) and run

BSD Zero Clause License (public-domain-equivalent)

Copyright (C) 2021 by Andrey Mikhaylov (lolmaus) lolmaus@gmail.com

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

I maked these

@lolmaus
lolmaus / img-loading.ts
Created January 11, 2021 14:49
An EmberJS modifier to hide an image during loading. Useful for virtual scrolling, when same image element is reused and briefly displays obsolete image when its `src` attribute is changed.
import Modifier from 'ember-modifier';
import { action } from '@ember/object';
export default class ImgLoadingModifier extends Modifier {
src?: string;
_hideClass = 'loading';
hideImage(): void {
this.element.classList.add(this._hideClass);
}
import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
import EmberObject, { computed } from '@ember/object';
import { A } from '@ember/array';
const AttributeModel = EmberObject.extend({
countAdditives: alias('additives.length'),
additives: A()
});
import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
import EmberObject, { computed } from '@ember/object';
import { A } from '@ember/array';
const AttributeModel = EmberObject.extend({
countAdditives: alias('additives.length'),
additives: A()
});
import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
import EmberObject, { computed } from '@ember/object';
import { A } from '@ember/array';
const AttributeModel = EmberObject.extend({
countAdditives: alias('additives.length'),
additives: A()
});
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { action, computed } from '@ember/object';
class Item {
@tracked name;
constructor(name) {
this.name = name;
}