Skip to content

Instantly share code, notes, and snippets.

@UberMouse
Last active September 26, 2016 22:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save UberMouse/3e532cf21a9eebcf70012e0b3949ca17 to your computer and use it in GitHub Desktop.
Save UberMouse/3e532cf21a9eebcf70012e0b3949ca17 to your computer and use it in GitHub Desktop.
Story = Dry::Validation.Schema do
configure do
def privacy_statuses
%w(hidden private public)
end
def valid_block?(block)
block_schema = "StoriesApi::V3::Schemas::StoryItem::#{block[:type]}::#{block[:sub_type]}".constantize
block_schema.call(block)
end
def foo?(value)
p value
true
end
end
required(:id).filled(:str?, :foo?)
required(:name).filled(:str?)
required(:description).filled(:str?)
required(:privacy).filled(included_in?: privacy_statuses)
required(:featured).filled(:bool?)
required(:approved).filled(:bool?)
required(:tags).each(:str?)
required(:number_of_items).filled(:int?, gt?: 0)
required(:contents).each(:foo?)
end
NoMethodError: undefined method `to_ast' for #<UnboundMethod:0x007f9aa4d14e80>
Did you mean? to_s
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-validation-0.10.0/lib/dry/validation/schema/value.rb:54:in `each'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-validation-0.10.0/lib/dry/validation/schema/rule.rb:104:in `each'
/Users/taylor/projects/dnz/engine/app/services/stories_api/v3/schemas/story.rb:30:in `block in <module:Schemas>'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-validation-0.10.0/lib/dry/validation/schema/class_interface.rb:46:in `instance_exec'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-validation-0.10.0/lib/dry/validation/schema/class_interface.rb:46:in `define'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-validation-0.10.0/lib/dry/validation.rb:23:in `Schema'
/Users/taylor/projects/dnz/engine/app/services/stories_api/v3/schemas/story.rb:4:in `<module:Schemas>'
/Users/taylor/projects/dnz/engine/app/services/stories_api/v3/schemas/story.rb:3:in `<module:V3>'
/Users/taylor/projects/dnz/engine/app/services/stories_api/v3/schemas/story.rb:2:in `<module:StoriesApi>'
/Users/taylor/projects/dnz/engine/app/services/stories_api/v3/schemas/story.rb:1:in `<top (required)>'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:247:in `require'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:247:in `block in require'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:232:in `load_dependency'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:247:in `require'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:348:in `require_or_load'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:480:in `load_missing_constant'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:180:in `const_missing'
/Users/taylor/projects/dnz/engine/spec/services/stories_api/v3/schemas/story_spec.rb:4:in `<module:Schemas>'
/Users/taylor/projects/dnz/engine/spec/services/stories_api/v3/schemas/story_spec.rb:3:in `<module:V3>'
/Users/taylor/projects/dnz/engine/spec/services/stories_api/v3/schemas/story_spec.rb:2:in `<module:StoriesApi>'
/Users/taylor/projects/dnz/engine/spec/services/stories_api/v3/schemas/story_spec.rb:1:in `<top (required)>'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:241:in `load'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:241:in `block in load'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:232:in `load_dependency'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:241:in `load'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `block in load_spec_files'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `each'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load_spec_files'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:96:in `setup'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:84:in `run'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:69:in `run'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/lib/rspec/core/runner.rb:37:in `invoke'
/Users/taylor/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.1.7/exe/rspec:4:in `<top (required)>'
/Users/taylor/.rbenv/versions/2.3.1/bin/rspec:23:in `load'
/Users/taylor/.rbenv/versions/2.3.1/bin/rspec:23:in `<top (required)>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment