Skip to content

Instantly share code, notes, and snippets.

@janjiss
Created September 21, 2016 16:17
Show Gist options
  • Save janjiss/07e95e54b8ba453304659485eab0adf7 to your computer and use it in GitHub Desktop.
Save janjiss/07e95e54b8ba453304659485eab0adf7 to your computer and use it in GitHub Desktop.
➜ massager git:(master) rspec spec
Massager
has a version number
Regular attributes
does not conflict with two classes with same attributes
works without type conversions
works with type checking
does the typechecking after the block has been executed
supports multiple attributes
raises error if modifier block returns enum attribute
raises error if there are multiple attributes and no modifier block
raises error if passed arguments don't comply with strict schema
Integration
works with multiple attributes
works with inherience
transforms struct in to the hash
Finished in 0.00615 seconds (files took 0.8836 seconds to load)
12 examples, 0 failures
➜ massager git:(master) gem install dry-logic
Fetching: dry-core-0.1.0.gem (100%)
Successfully installed dry-core-0.1.0
Fetching: dry-logic-0.4.0.gem (100%)
Successfully installed dry-logic-0.4.0
Parsing documentation for dry-core-0.1.0
Installing ri documentation for dry-core-0.1.0
Parsing documentation for dry-logic-0.4.0
Installing ri documentation for dry-logic-0.4.0
Done installing documentation for dry-core, dry-logic after 0 seconds
2 gems installed
➜ massager git:(master) rspec spec
/Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/constraints.rb:8:in `curry': no implicit conversion of Class into Integer (TypeError)
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/constraints.rb:8:in `block in Rule'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/constraints.rb:8:in `each'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/constraints.rb:8:in `map'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/constraints.rb:8:in `Rule'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/builder.rb:22:in `constrained'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/core.rb:32:in `block in <module:Types>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/core.rb:31:in `each'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/core.rb:31:in `<module:Types>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/core.rb:2:in `<module:Dry>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types/core.rb:1:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry/types.rb:104:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/dry-types-0.8.1/lib/dry-types.rb:1:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
from /Users/janjiss/Work/massager/lib/massager.rb:2:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/janjiss/Work/massager/spec/spec_helper.rb:2:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/janjiss/Work/massager/spec/massager_spec.rb:1:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1435:in `load'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1433:in `each'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1433:in `load_spec_files'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:100:in `setup'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:86:in `run'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:71:in `run'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:45:in `invoke'
from /Users/janjiss/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-core-3.5.3/exe/rspec:4:in `<top (required)>'
from /Users/janjiss/.rbenv/versions/2.3.1/bin/rspec:23:in `load'
from /Users/janjiss/.rbenv/versions/2.3.1/bin/rspec:23:in `<main>'
➜ massager git:(master)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment