Skip to content

Instantly share code, notes, and snippets.

Enjoying life, including work.

Balint Erdi balinterdi

Enjoying life, including work.
View GitHub Profile
lifeart / component.js
Created Feb 6, 2020
Ember Cp Validations Octane
View component.js
import Component from "@glimmer/component";
import { tracked } from "@glimmer/tracking";
import Object from "@ember/object";
import { reads } from "@ember/object/computed";
import { validator, buildValidations } from "ember-cp-validations";
import { getOwner } from "@ember/application";
const Validations = buildValidations({
billing_first_name: {
descriptionKey: "form.fields.billing_first_name",
rafaltrojanowski / VSCode
Last active Sep 26, 2019
Vim -> VSCode migration
View VSCode
1. Install vscodevim
2. Run from terminal:
defaults write ApplePressAndHoldEnabled -bool false # Key repeat
3. jj:
Add to settings.json:
"vim.insertModeKeyBindings": [

How to use positionalParams in Angle Bracket invocation

A component with positionalParams always also has named versions of its parameters. For example, the liquid-if component from liquid-fire has this in its Javascript file:

positionalParams: ['predicate']

So these are equivalent:

runspired / push-deletion.js
Last active Apr 22, 2020
Useful Ember Data helpers
View push-deletion.js
notifying the store that a record has been remotely deleted and should be fully removed.
function pushDeletion(store, type, id) {
let record = store.peekRecord(type, id);
if (record !== null) {
let relationships = {};
let hasRelationships = false;
View push-mirage-db-into-store.js
// tests/helpers/push-mirage-db-into-store.js
import { registerAsyncHelper } from '@ember/test';
import { run } from '@ember/runloop';
let pushMirageDbIntoStore = function(server, store) {
let tables = Object.keys(server.schema);
tables.forEach(table => {
if (server.schema[table].all) {
let all = server.schema[table].all();
wojteklu /
Last active Aug 14, 2020
Summary of 'Clean code' by Robert C. Martin

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.

General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

ef4 / select.hbs
Last active Jun 5, 2020
Goodbye old Select View
View select.hbs
<select onchange={{action (mut vehicle) value="target.value"}}>
{{#each vehicles key="@item" as |vehicleChoice|}}
<option value={{vehicleChoice}} selected={{eq vehicle vehicleChoice}}>{{vehicleChoice}}</option>
mars / gist:6086194
Last active Dec 20, 2015
DEPRECATED see comments: ember-testing: select an option (helper)
View gist:6086194
function(app, selector, value, description) {
// choose an option
// trigger the change
// assert the selected option
equal(find(selector+" option:selected").val(), value, description||"makes the selection");
// promise
return wait();
lukemelia / buffered_proxy.js
Last active May 5, 2016
Buffered Proxy, extracted from Yapp codebase
View buffered_proxy.js
var empty, get, set,
__hasProp = {}.hasOwnProperty;
get = Ember.get;
set = Ember.set;
empty = function(obj) {
var key;
for (key in obj) {
if (!, key)) continue;
You can’t perform that action at this time.