Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
dry-validations
Search
Krzysztof Wawer
September 23, 2016
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
dry-validations
Krzysztof Wawer
September 23, 2016
More Decks by Krzysztof Wawer
See All by Krzysztof Wawer
The Good Architecture
wafcio
0
680
GIT - Good Practices
wafcio
0
110
Slim Ruby on Rails: Controllers & Middlewares
wafcio
1
230
Dry System
wafcio
0
130
Validations in Ruby
wafcio
0
210
Generating a CSV file with ROM
wafcio
0
380
Trailblazer bez trailblazera
wafcio
0
260
ActiveRecord, DataMapper czy Agregacja encji
wafcio
0
220
Jak (nie) używać Service Object
wafcio
0
250
Other Decks in Programming
See All in Programming
Press start. Python's next generation.
willingc
PRO
3
310
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
670
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
120
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
480
typoなんかねぇよ
raspython3
0
670
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
470
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
750
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
870
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
290
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
670
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Limits of Empathy - UXLibs8
cassininazir
1
640
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
How to make the Groovebox
asonas
2
2.4k
Transcript
Krzysztof (Christopher) Wawer @wafcio about.me/kwawer
Our API • Roda • ROM (Ruby Object Mapper) •
JSON API standard (http://jsonapi.org)
{ price: 1000 } => { price: '1000' } /\d+/
dry-validation Piotr Solnica Andy Holland http://dry-rb.org/gems/dry-validation/
Community • 17 contributors • very active Gitter channel https://gitter.im/dry-rb/chat
• v0.10.1 • used in hanami-validations, reform
Strange and awesome things
Predicate Logic • and ( & ) • or (
| ) Dry::Validation.Schema do required(:age) { int? & gt?(18) } end
Optional Keys and Values { age: 30 } { name:
nil, age: 30 }
Nested data { name: "John", address: { street: "Main Street"
}, emails: ["
[email protected]
"] }
Shared schema Dry::Validation.Schema do required(:name).filled required(:address).schema(AddressSchema) end
dry-validation http://dry-rb.org/gems/dry-validation/
Thanks @wafcio about.me/kwawer