Skip to content

Instantly share code, notes, and snippets.

View kdiogenes's full-sized avatar

Kadu Diógenes kdiogenes

View GitHub Profile
@kdiogenes
kdiogenes / errors_without_index.js
Last active March 1, 2019 14:39
vuejs-nested-form: errors without index_errors
erors = {
"categories.listener_deadline_values.value": ["can't be blank"],
"categories.listener_deadline_values.deadline": ["can't be blank"],
"categories.name": ["can't be blank"],
"listener_deadlines.deadline": ["can't be blank"]
};
@kdiogenes
kdiogenes / errors_with_index.js
Last active February 12, 2017 13:03
vuejs-nested-form: errors with errors_index
errors = {
"categories[0].listener_deadline_values[0].value": ["can't be blank"],
"categories[0].listener_deadline_values[0].deadline": ["can't be blank"],
"categories[0].listener_deadline_values[1].value": ["can't be blank"],
"categories[0].listener_deadline_values[1].deadline": ["can't be blank"],
"categories[0].name": ["can't be blank"],
"categories[1].listener_deadline_values[0].value": ["can't be blank"],
"categories[1].listener_deadline_values[0].deadline": ["can't be blank"],
"categories[1].listener_deadline_values[1].value": ["can't be blank"],
"categories[1].listener_deadline_values[1].deadline": ["can't be blank"],
@kdiogenes
kdiogenes / embed_errors_in_data.coffee
Created February 12, 2017 13:04
vuejs-nested-form: embed errors in data
errors = #{@nested_form.errors.to_json}
categories = #{@nested_form.categories.as_json(
only: [:id, :name, :_destroy], include: {
listener_deadline_values: { only: [:id, :value] },
presenter_deadline_values: { only: [:id, :value] }
}
).to_json}
listener_deadlines = #{@nested_form.listener_deadlines.as_json(only: [:deadline, :_destroy]).to_json}
presenter_deadlines = #{@nested_form.presenter_deadlines.as_json(only: [:deadline, :_destroy]).to_json}
for key, value of errors
require 'rails/generators/rails/scaffold/scaffold_generator'
module Rails::Generators
class GrapesGenerator < ::Rails::Generators::ScaffoldGenerator
attr_reader :fields
def initialize(args, *options) #:nodoc:
@fields = args[1..-1]
super
end
@kdiogenes
kdiogenes / slides.md
Created November 23, 2017 12:19 — forked from shadowmaru/slides.md
Palestras da RubyConf BR 2017
{
"complemento2":null,
"uf":"PR",
"cidade":"Cascavel",
"atualizado_em":"2018-04-21T19:08:21.122Z",
"complemento":null,
"bairro":"Universitário",
"end":"Rua Medicina",
"id":"0",
"cep":"85819260"
AWS Lambda (NodeJS) Heroku (RoR)
Concurrecy 1000 req/s 1000 req/s
Total time 6.076s 7.212s
Failed requests 3.935 49.465
Requests per second 164/s 138/s
Mean time per request 6.076 7.212ms
@kdiogenes
kdiogenes / user.ex
Created October 23, 2018 12:34
phoenix: default coherence user
defmodule Pumpbits.Coherence.User do
@moduledoc false
use Ecto.Schema
use Coherence.Schema
use CoherenceAssent.Schema
alias Pumpbits.Repo
schema "users" do
field :name, :string
field :email, :string
@kdiogenes
kdiogenes / user.ex
Created October 23, 2018 13:27
phoenix: enforce field in changeset
def changeset(model, params \\ %{}) do
model
|> cast(params, [:name, :email] ++ coherence_fields())
|> enforce_api_token
|> validate_required([:name, :email])
|> validate_format(:email, ~r/@/)
|> unique_constraint(:email)
|> unique_constraint(:api_token)
|> validate_coherence_assent(params)
end
@kdiogenes
kdiogenes / find_or_create_model.ex
Created November 13, 2018 15:01
phoenix: find or create model
def find_or_create_upload(find_fields, create_attrs \\ %{}) do
filters = Map.take(create_attrs, find_fields) |> Map.to_list()
query = from(u in Upload, where: ^filters)
upload = Repo.one(query)
if upload == nil do
create_upload(create_attrs)
else
upload
end