Skip to content

Instantly share code, notes, and snippets.

View bryanp's full-sized avatar

Bryan Powell bryanp

View GitHub Profile
@bryanp
bryanp / validation-dsl.rb
Created August 1, 2017 00:22
Validation DSL
# common validation style implemented on top of dry-validation
validates :title, length: { minimum: 20 }
# or use predicates
validates(:title).filled(min_size?: 20)
# or validate however you want
validates :title do |value|
# ...
end
@bryanp
bryanp / example.rb
Created June 21, 2017 17:21
Pakyow Presenter State
# Demonstration of how state will be passed from the route context to presenter.
# Presentation will not occur in the routing context, so only what is exposed is available.
module Helpers
presentable :current_user, :current_resource
def current_user
@current_user ||= data.user.find(session[:user])
end
@bryanp
bryanp / rubocop.yml
Created May 4, 2017 18:54
Rubocop Defaults
AllCops:
Exclude:
- 'bin/**/*'
- 'vendor/**/*'
DisplayCopNames: true
BlockDelimiters:
EnforcedStyle: semantic
Lint/AssignmentInCondition:
@bryanp
bryanp / rubocop.yml
Created May 4, 2017 18:54
Rubocop Defaults
AllCops:
Exclude:
- 'bin/**/*'
- 'vendor/**/*'
DisplayCopNames: true
BlockDelimiters:
EnforcedStyle: semantic
Lint/AssignmentInCondition:
@bryanp
bryanp / router_loader.rb
Created February 12, 2017 22:29
Pakyow 1.0 Loader Example
module Pakyow
class App
load :resources, with: Loaders::Resource
end
module Loaders
class Resource < Base
location :resources
def initialize(filename, resource)
@bryanp
bryanp / run.rb
Created February 11, 2017 00:12
Pakyow 1.0 Process Reloading
require "bundler/setup"
require "pakyow"
require "rack/handler/puma"
def run
if Process.respond_to?(:fork)
@pid = Process.fork do
require "./app/setup"
Pakyow::App.run(ENV['RACK_ENV'])
@bryanp
bryanp / test-db-setup.rb
Created December 13, 2016 04:20
Pakyow Test DB
# add these to your Gemfile under the `test` group:
gem "factory_girl"
gem "database_cleaner"
# spec_helper.rb should look similar to:
require 'pakyow-test'
require 'factory_girl'
require 'database_cleaner'
require_relative '../app/setup'
@bryanp
bryanp / quiz.rb
Last active April 14, 2016 18:21
Ruby Benchmark Quiz
# Comment with what benchmark you think would be faster, and why.
require "benchmark"
data = {
'foo' => 'bar'
}
count = 100_000_000
@bryanp
bryanp / 01-app.rb
Last active December 9, 2015 17:54
Simple Pakyow App
require 'pakyow-core'
Pakyow::App.define do
routes do
default do
puts 'hello'
end
end
end.run
@bryanp
bryanp / .rubocop.yml
Created November 3, 2015 14:29
Rubocop Example
AllCops:
Exclude:
- 'bin/**/*'
- 'vendor/**/*'
DisplayCopNames: true
BlockDelimiters:
EnforcedStyle: semantic
Metrics/LineLength: