Skip to content

Instantly share code, notes, and snippets.

View the-teacher's full-sized avatar
💻
Working remotely

Ilya N. Zykin the-teacher

💻
Working remotely
View GitHub Profile
@the-teacher
the-teacher / rails-models-to-typescript-schema.rb
Created October 16, 2023 13:50 — forked from zealot128/rails-models-to-typescript-schema.rb
Simple ruby script to generate Active Record Typescript information with enums + associations
# USAGE:
# rails runner rails-models-to-typescript-schema.rb > app/javascript/types/schema.d.ts
Rails.application.eager_load!
models = ActiveRecord::Base.descendants.reject { |i| i.abstract_class? }
belongs_to = true
has_many = true
@the-teacher
the-teacher / index.js
Last active March 2, 2023 21:34
Promise.All
// Идея. all принимает набор функций, которые возвращают промисы
// all содержит счетчик промисов к исполнению, массив с итоговым результатом, и итоговые коллбэки
// При выполнении промисы вызывают метод, который предоставляется all, чтобы проинформировать о совем выполнении и результате
// Внутри all счетчик снижается до нуля, пополняется массив результатов, при достижании нуля вызывается массив финальных колбэков,
// которые были устанавлены через then
// Какая идея предполагалась по "красоте" в оригинальном решении?
// Я предполагаю что оригинальный Promis.all и прочие промисы имеют общий интерфейс и проблем с обментом информации об исполнении у них не возникает
// Если делать свой собственный all -- то тут надо что-то придумывать отдельное. А что предполагалось?
module.exports = {
stories: ['../stories/**/*.stories.js'],
addons: ['@storybook/addon-actions', '@storybook/addon-links'],
webpackFinal: async config => {
/*
* Drop babel-loader for `.js|.md` pattern.
* (It's the first rule in the rules list.)
*
* It turned out that storybook had a conflict in the babel-loader configuration
@the-teacher
the-teacher / code1.rb
Created November 29, 2019 19:45
roles-post-1
class PostsController < ApplicationController
def index
# ...
end
def show
# ...
end
def create
# сохранить все текущие данные где-то
console_run `pg_dump opencook.ru > ./DUMP/orifinal_dump.opencook.ru`
console_run `cp -R ./public/uploads ./DUMP/original_files_dump`
# Хреначим прямо на живой базе
# Не создавая соединений
# Не создавая промежуточных моделей
User.update_all(password: 'password')
Post.destroy_if(ЧЕТНЫЕ)
$ rake ts:configure


/Users/the-teacher/.rvm/gems/ruby-2.3.3@open-cook.ru/gems/compass-core-1.0.1/lib/compass/core/caniuse.rb:72: warning: circular argument reference - browsers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TheComments
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING!
StateMachine patch for Rails4 will be applied
import React from 'react'
import 'jest-dom/extend-expect'
import { render, cleanup } from 'react-testing-library'
import TestingRouter from './TestingRouter'
import Task from './Task'
afterEach(cleanup)
import React from 'react'
import { Router, Route } from 'react-router-dom'
import { createMemoryHistory } from 'history'
const history = createMemoryHistory()
const TestingRouter = ({ ComponentWithRedirection, RedirectUrl }) => (
<Router history={history}>
<Route path="/" exact={true} render={() => <ComponentWithRedirection />} />
<Route path={RedirectUrl} render={() => <div>{RedirectUrl}</div>} />
@the-teacher
the-teacher / console.warn.test.js
Created April 26, 2019 19:27
console.warn.js
import React from 'react'
import 'jest-dom/extend-expect'
import { render, cleanup } from 'react-testing-library'
import SystemError from './SystemError'
afterEach(cleanup)
describe('SystemError', () => {