avram_scoped_id

Version, currently 0.2.02 versions

github.com/microgit-com/avram_scoped_id

scoped_id based on query in Avram

0 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  avram_scoped_id:
    github: microgit-com/avram_scoped_id
    version: ~> 0.2.0

Then run:

shards install

shard.yml

Crystal
0.34.0
License
MIT
Author
Håkan Nylén

Dependencies

Runtime Dependencies

  • avram*github: luckyframework/avram, branch: master

README

avram_scoped_id

Build Status

An small helper to set an scoped id for the model, based on the query you set as well.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      avram_scoped_id:
        github: microgit-com/avram_scoped_id
  2. Run shards install

  3. Require the shard after requiring Avram

If using Lucky, require the shard in your src/shards.cr file after requiring Avram:

# In src/shards.cr
# Put this after `require "avram"`
require "avram_scoped_id"

If not using Lucky, require the shard after Avram:

# In whichever file you require your shards
# Put this after `require "avram"`
require "avram_scoped_id"

Usage

Create column scoped_id in your model, as Int64 You can call it differently if you want, just change to your column in the set method inside the before_save below

class AddScopeIdToArticle::V20200510065019 < Avram::Migrator::Migration::V1
  def migrate
    alter table_for(Article) do
      add scoped_id : Int64, default: 0
    end
  end

  def rollback
    # drop table_for(Thing)
  end
end

Feel free to add index on the scoped_id for faster queries later on.

Then You add it to the operation where you want to save the new scoped id. Like SaveArticle.

class SaveArticle < Article::SaveOperation
  before_save do
    AvramScopedId.set column: scoped_id,
      query: ArticleQuery.new.team_id(team_id)
  end
end

Good thing to know is that variables in the query might fail due to they can be Nil - So use needs and set that in the query and if necessary with .not_nil!

Development

TODO: Write development instructions here

Contributing

  1. Fork it (https://github.com/microgit-com/avram_scoped_id/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors