Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'resolv'
require 'uri'
def filter_arguments(line)
line.gsub(/(\S+)=\S+/, '\1=[FILTERED_VALUE]')
end
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'resolv'
require 'uri'
def filter_arguments(line)
line.gsub(/(\S+)=\S+/, '\1=[FILTERED_VALUE]')
end
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'bundler/inline'
require 'resolv'
require 'uri'
gemfile do
gem 'dry-cli', branch: 'master', git: 'https://github.com/dry-rb/dry-cli', require: 'dry/cli/inline'
end
@IvanShamatov
IvanShamatov / testing.md
Last active December 12, 2019 20:39
Про тестирование в разных окружениях
  1. Когда я еще был рубистом и упарывался на написание тестов, то для своего гема у меня была какая-то дикая матрица тестирования, не только под версию руби, но даже под операционку. Вот тот самый конфиг для матрицы.

https://github.com/TheRole/DummyApp/blob/master/.travis.yml

  1. Для того, чтобы подключать разные версии зависимостей в Gemfile приложения, которое ты тестируешь вообще была (и есть) такая штука

https://github.com/thoughtbot/appraisal#readme

Но я решил не заморачиваться на нее.

# Component way of adding redis
# vendor/dry/system/components.rb
Dry::System.register_provider(
:persistence,
boot_path: Pathname(__dir__).join('components').realpath()
)
# vendor/dry/system/components/redis.rb
Dry::System.register_component(:redis, provider: :persistence) do
init do
class User < Struct.new(:name, :age)
def to_s
"#{name}, #{age}"
end
end
=> :to_s
User.new('Ivan', 30).to_s
=> "Ivan, 30"
require 'benchmark'
require 'benchmark/memory'
require 'dry-struct'
require 'dry-initializer'
require 'virtus'
require 'shallow_attributes'
require 'active_data'
require 'active_model'
require 'benchmark/ips'
class Picture {
canAdd()
return true
}
}
class ModerationPolicy {
canAdd(context) {
if( moderated(context)) {
return false
Comment = Struct.new(:title, :body, :author)
class Comment::Item
include Componenta
render :html do
h1 object.title
div object.body
span object.author
end
---
chdir: /home/deployer/sinatraapp/
environment: production
timeout: 30
log: /home/deployer/sinatraapp/log/thin.log
pid: /home/deployer/sinatraapp/tmp/pids/thin.pid
socket: /home/deployer/sinatraapp/tmp/sockets/thin.sock
max_conns: 1024
max_persistent_conns: 10
require: []