riboseinc / object_path

Generate path or URL for an ActiveRecord object.
MIT License
0 stars 0 forks source link

ObjectPath

:source-highlighter: pygments

image:https://img.shields.io/gem/v/object_path.svg["Gem Version", link="https://rubygems.org/gems/object_path"] image:https://img.shields.io/travis/riboseinc/object_path/master.svg["Build Status", link="https://travis-ci.org/riboseinc/object_path"] image:https://img.shields.io/codecov/c/github/riboseinc/object_path.svg["Test Coverage", link="https://codecov.io/gh/riboseinc/object_path"] image:https://img.shields.io/codeclimate/github/riboseinc/object_path.svg["Code Climate", link="https://codeclimate.com/github/riboseinc/object_path"]

This gem defines the ObjectPath::Mixin to be included in any ruby class where the path/url of an ActiveRecord model is useful.

The path/url generated by the ObjectPath::Mixin will be the same as generated by Rails according to the routes defined in your Rails application.

Installation


Add this line to your application’s Gemfile:

[source,ruby]
----
gem 'object_path'
----

And then execute:

....
$ bundle
....

Or install it yourself as:

....
$ gem install object_path
....

Usage

class Notification include ObjectPath::Mixin end

n = Notification.new

n.object_path(@blog_post) # => '/blog_posts/:id' n.object_path(@blog_post, :edit) # => '/blog_posts/:id/edit' n.object_path(@blog_post, :edit, context: 'next') # => '/blog_posts/:id/edit?context=next' n.object_path(BlogPost.new) # => '/blog_posts/new'

Include ObjectPath::Mixin in the class you want. The path of the model/collection and action will be generated according to the routes defined in your Rails application by calling the object_path method. You can also call the object_url method with exactly the same arguments if you want to get the url of the model/collection instead.

Development


After checking out the repo, run `bin/setup` to install dependencies.
Then, run `rake spec` to run the tests. You can also run `bin/console`
for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run
`bundle exec rake install`. To release a new version, update the version
number in `version.rb`, and then run `bundle exec rake release`, which
will create a git tag for the version, push git commits and tags, and
push the `.gem` file to https://rubygems.org[rubygems.org].

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/riboseinc/object_path. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the http://contributor-covenant.org[Contributor Covenant] code of conduct.

License


The gem is available as open source under the terms of the
https://opensource.org/licenses/MIT[MIT License].

Code of Conduct

Everyone interacting in the ObjectPath project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the https://github.com/riboseinc/object_path/blob/master/CODE_OF_CONDUCT.md[code of conduct].