Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Maciej Mensfeld
@mensfeld
@mrbongiolo exactly - I just want to know when something is not exactly as I defined
Oskar Szrajer
@gotar
Fast probably stupid question ;] how to list everything from container? To check what I have defined there
Tim Riley
@timriley
my_container.keys @gotar ?
Oskar Szrajer
@gotar
;] thx I was sure it must be sth obvious
Tim Riley
@timriley
Turned out the key was right before our eyes :wink:
Piotr Solnica
@solnic
hey folks, I improved/fixed how “safe” types work in dry-types which dry-validation heavily relies on and there were many known bugs that I think I fixed. please help with testing, just grab dry-v/t from master and lemme know if it works for you /cc @jodosha @timriley
Tim Riley
@timriley
Will take a look @solnic!
Fran Worley
@fran-worley
@solnic I think you've fixed dry-rb/dry-validation#125
Just checking the specs now
Fran Worley
@fran-worley
@solnic it looks like this can also be closed: dry-rb/dry-validation#133
Piotr Solnica
@solnic
@fran-worley I thought my commit would close them
Fran Worley
@fran-worley
@solnic I'm just updating the integration specs to check that all the skipped ones now pass
Piotr Solnica
@solnic
@fran-worley yeah we might need to tweak some of the specs, I noticed today that some specs had incorrect expectations
I fixed them but I didn’t have enough time to check xit specs
Fran Worley
@fran-worley
I'm going through them now. I'll PR in a few
Piotr Solnica
@solnic
sweeet
Fran Worley
@fran-worley
Are you happy for me to close the issues now fixed?
dry-validation issues: #125
Piotr Solnica
@solnic
@fran-worley yes please!
Fran Worley
@fran-worley
@solnic with regards to #134, would you raise the error when compiling the schema or when trying to validate ?
Piotr Solnica
@solnic
@fran-worley the dsl should yell when somebody tries to do that
Fran Worley
@fran-worley
so basically:
it "should raise error" do
  expect { Dry::Validation.Form do
      required(:foo).maybe(:none?)
    end }.to raise_error SomeError
end
Oskar Szrajer
@gotar

If I have container like:

require 'dry/web/container'

module Blog
  class Container < Dry::Web::Container
    setting :auto_register, 'lib'

    configure do
      load_paths!('lib')
    end
  end
end

and in lib directory I have for example repository, that require single arg when initialize, how I can do that? Container above register it automatically without any args,

module Persistence
  module Repo
    class Posts < ROM::Repository
      relations :posts

      def index
        posts.to_a
      end
    end
  end
end
>> Blog::Container['persistence.repo.posts']
ArgumentError: wrong number of arguments (given 0, expected 1)
    from /Users/gotar/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/bundler/gems/rom-repository-37ec20210a66/lib/rom/repository.rb:33:in `initialize'
Piotr Solnica
@solnic
@gotar you can use it with auto-inject thingie
include YourInjectModule[“your.rom.container”]
Oskar Szrajer
@gotar

hmm ok then I define sth like:

require_relative 'container'

module Blog
  Import = Container.import_module

  def self.Import(*args)
    Import[*args]
  end
end

and then

require "blog/import"

module Persistence
  module Repo
    class Posts < ROM::Repository
      include Blog::Import("persistence.rom")

      relations :posts

      def index
        posts.to_a
      end
    end
  end
end
??
those above do not works for me
but I think i'm close
Fran Worley
@fran-worley
@solnic I assume that it also should raise an error if you try to do: required(:foo).filled(:filled?)
Oskar Szrajer
@gotar
I was trying to find in any article or repo but have no luck
Piotr Solnica
@solnic
@fran-worley yep
@gotar it’s a recent improvement
@gotar icelab’s skeletons might have it
see Berg app
Oskar Szrajer
@gotar
I read whole code of berg and skeleton, but didn't found it. He do not use Repository
and define all relation and commands containers manually
but if it's AutoInject then I will find a way
Piotr Solnica
@solnic
@gotar make sure you’re using latest-latest-latest stuff
although auto-inject was recently released
so maybe it’s ok to use released ver, I’m not really up-to-date with the recent stuff, better ask @timriley
Oskar Szrajer
@gotar
i always use master master
in all my projects ;] even produciton
I will try to skip Import and use AutoInject manually
Oskar Szrajer
@gotar
ok found it, eh
module Berg
  class Repository < ROM::Repository::Root
    # This .new shouldn't be needed, since repos should work with dry-
    # auto_inject. This is not working yet, so this remains as a workaround.
    def self.new(rom = nil)
      super(rom || Berg::Container["persistence.rom"])
    end
  end
end
Piotr Solnica
@solnic
uhm I thought we made that work
Andy Holland
@AMHOL
@gotar @solnic yeah, pretty sure @timriley fixed that, probably just that the skeleton hasn't been updated
Oskar Szrajer
@gotar

my Gemfile:

source "https://rubygems.org"

ruby "2.3.0"

# Web framework
gem "dry-web", github: "dry-rb/dry-web"

# Database persistence
gem "sqlite3"
gem "rom",            github: "rom-rb/rom"
gem "rom-mapper",     github: "rom-rb/rom-mapper"
gem "rom-repository", github: "rom-rb/rom-repository"
gem "rom-sql",        github: "rom-rb/rom-sql"
gem "rom-support",    github: "rom-rb/rom-support"

# Application dependencies
gem 'rake'
gem "dry-validation", github: "dryrb/dry-validation"

group :test do
  gem "rspec"
  gem "rack-test"
end

and it's not working still

but maybe i'm doing sth in a wrong way