by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Christopher Dennl-Ortega Arrieta
@cdennl
require 'i18n'
require 'cell/translation'
require 'reform/form/dry'
require 'disposable/twin/coercion'
panigrah
@panigrah
ok. And all messages are directly under errors with the rule name?
errors:
    rule_name1?: "Rule has a problem" 
    rule_name2?: "Another rule problem" 
Christopher Dennl-Ortega Arrieta
@cdennl
well common rules i put directly below errors if they are used in multiple contexts
otherwise i put them under a namespace below rules
en:
  errors:
    in_possession?:                         'is not in possession of deviation'
    is_conversion_correct?:                 'is incorrectly converted from P to $'
    not_blank?:                             'is blank'

    rules:
      auction:
        autobuy_amount_is_above_start_bid?: 'must be greater than start bid'
        currency_accepted?:                 'select at least one currency'
        is_conversion_correct?:             'is incorrectly converted from P to $'
      bid:
        is_no_self_bid?:                    'must not bid on own auction'
        is_running?:                        'is not running'
and then i set config.namespace = :whatever in the repsective validation group
panigrah
@panigrah
aah okay.
I will try this out.
for now I have unique?: 'must be unique' directly under errors:. I did not make sure however to put the i18 before dry-v.
maybe thats why it isnt picking up.
Christopher Dennl-Ortega Arrieta
@cdennl
and remember to restart the server then after adapting your initializer :)
panigrah
@panigrah
no luck.
Dry::Validation::MissingMessageError: message for unique? was not found
Christopher Dennl-Ortega Arrieta
@cdennl
mhh
all my statements are for drv-v 0.7.3
my config block looks like this:
```
configure do
        config.messages   = :i18n
        config.namespace  = :bid
        config.predicates = Dagavel::Predicates

        option :form

        def is_no_self_bid?( user )
          user.id != form.auction.user_id
        end

        def is_running?( auction )
          auction.is_running?
        end
      end
panigrah
@panigrah

this is the yml file

en:
   hello: "Hello world"
   errors:
      unique? : "WTF"

and initializer has required i18n on top before dry-v and reform and configure block has the same

i have 0.7.4 dry-v. I will take a break for now
thanks for your help!
Christopher Dennl-Ortega Arrieta
@cdennl
np
panigrah
@panigrah
@cdennl i just realized - that the global setting that was suggested by AMHOL doesn't work in my case. But if I put config.messages_file into my validation block then it works.
Christopher Dennl-Ortega Arrieta
@cdennl
messages_file or messages?
panigrah
@panigrah
messages_file and messages shows me a different error - perhaps i have a problem with i18 setup
Piotr Solnica
@solnic
You need to make sure i18n loads all your locale files
Christopher Dennl-Ortega Arrieta
@cdennl
my initializer for i18n:
```
# tell the I18n library where to find your translations
I18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

# set default locale to something other than :en
I18n.default_locale = :en
Pablo Herrero
@pabloh
Sry if this was already asked, why dry-types depends on concurrent-ruby?
Hunter Madison
@hmadison
Thread safety stuff iirc
Piotr Solnica
@solnic
@pabloh we use concurrent::cache
Don Morrison
@elskwid
is this the @solnic hugs chat?
Cause I have one I’d like to give him.
:heart:
Piotr Solnica
@solnic
Heh. It's a dry-rb chat. But we can hug each other nevertheless ;)
Don Morrison
@elskwid
I’ve been lurking around as I do and thought you could use some happy thoughts.
panigrah
@panigrah
@cdennl couldn't get i18n to load. I have to get i18n eventually - but for now - this worked in an initializer. I am using reform 2-2 branch which is setup to use the new dry-v api. @fran-worley if you aren't having luck with the global setup for error messages - this may help.
Dry::Validation::Schema::Form.configure do |config|
  config.messages = :yaml
  config.messages_file =  "#{Rails.root}/config/locales/en/dry-v-custom-messages.yml"
end
Piotr Solnica
@solnic
@panigrah please report an issue. A simple reproduction script would be very helpful too
dan-klasson
@dan-klasson
@panigrah post the repo and updated branch here to reproduce the error
Tim Riley
@timriley
Here’s a draft of my next next-gen Ruby article: “Functional command objects in Ruby”. Would appreciate any feedback! https://draftin.com/documents/854843?token=Qm-VkDc3aIYo_FAKreRlkmY_iiCcSIBjf4tn2J2A40eQR28Z0VWG7uHDGsN3LxY_KXmw4tbcm95DEMveJqCcEfE
Andy Holland
@AMHOL
@timriley nice job, really nice article :+1:
Benjamin Klotz
@tak1n
@timriley awesome article :+1: :D
Kuba Krzempek
@kubakrzempek
@timriley I like it too :thumbsup: Learnt quite a few from it.
Tim Riley
@timriley
Thanks! After some other feedback I just updated the rspec example to make it better at simluating a real validation object. And added an explainer about why I’m just hand-waving the persistence step away.
Piotr Solnica
@solnic
@timriley :+1:
Tim Riley
@timriley
Woot, the solnic thumbs-up!
timriley @timriley sneaks back into the draft and names this The Solnica Pattern ;)
Tim Riley
@timriley
Actually though, I might add a note that this approach needn’t be restricted to commands only. Works for anything which would otherwise make sense as a standalone function, and not some part of an object with a wider API.
Nikita Shilnikov
@flash-gordon
@timriley great! That's how I write code today thanks to dry-stuff :)
Also most of my my classes returns Either object so I can compose it with dry-transaction