solnic / virtus

[DISCONTINUED ] Attributes on Steroids for Plain Old Ruby Objects
MIT License
3.77k stars 228 forks source link

strict: true when attribute is being set. #328

Open neumachen opened 8 years ago

neumachen commented 8 years ago

How is this achieved when setting strict mode on?

Let's say I have a sample class:

class Banana
  include Virtus.model

  attribute :origin, Country
  attribute :source, SourcesVendor

end

I only want to enforce coercion when an attribute is set either on initialize or during an instance.

How would this be achieved with Virtus?

neumachen commented 8 years ago

Is this currently possible or would this be a feature we need to request?

grantspeelman commented 8 years ago

I don't really see the use case for this?

grantspeelman commented 8 years ago

I know you can set strict per attribute

class Banana
  include Virtus.model

  attribute :origin, Country, strict: true
  attribute :source, SourcesVendor

end

but not sure why you would want

Banana.new(:origin => 'country')`

but not

b = Banana.new
b.origin = 'country'

or vice versa to fail