Skip to content

Collection of concerns and helpers for Rails + Mongoid + Character web development

License

Notifications You must be signed in to change notification settings

slate-studio/ants

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e2971eb · Dec 25, 2015

History

74 Commits
Dec 24, 2015
Dec 24, 2015
May 7, 2015
Dec 23, 2015
May 7, 2015
Jun 18, 2015
Dec 23, 2015
May 7, 2015
Dec 23, 2015
Dec 23, 2015
May 7, 2015
May 2, 2015
Dec 25, 2015
May 2, 2015
Dec 13, 2015
May 7, 2015
Dec 19, 2015

Repository files navigation

Ants

GitHub version Build Status Code Climate Coverage Status

Collection of concerns and helpers for Rails + Mongoid + Character stack.

Id

Orderable

Adds ordering functionality to the model. Default order is assending by _position field.

Usage:

  include Ants:Orderable

NOTE: If this concern is added to model with already existing documents, value for _position field should be initialized with this command:

ModelClass.all.set(_position: 1000)

OrderableReverse

Meta

Adds set of page meta fields and creates default methods that should be overriden if necessary:

  • _meta_title
  • _meta_description
  • _meta_keywords
  • _opengraph_image_url

Usage:

  include Ants:Meta

Featurable

Hideable

When you need to hide some documents from public or often used as draft analogue:

Usage:

  include Ants:Hideable

Scopes:

  • hidden
  • not_hidden

Helpers:

  • hide!
  • unhide!
  • hidden?

Slug

Scheduled

Sorted Relations

In Mongoid, the HM & HABTM relations return docs in random order. This workaround provides an ability to retrieve related documents in the same order it was stored.

Usage example:

class Post
  include Mongoid::Document
  include Ants::SortedRelations

  field :title

  has_and_belongs_to_many :authors
  sorted_relations_for :authors
end

post = Post.new title: 'RESTful actions with Mongosteen'
post.sorted_author_ids = [ Author.create(name: "Oleksandr Kravets").id,
                           Author.create(name: "Roman Brazhnyk"   ).id,
                           Author.create(name: "Maxim Melnyk"     ).id ]

post.sorted_authors.map(&:name)
#=> ['Alexander Kravets', 'Roman Brazhnyk', 'Maxim Melnyk']

Versions

Provides a helper method to get a list of document versions, used by chr + mongosteen:

Usage:

  include Ants:Versions

Helpers:

  • _document_versions

AdminUsers

Settings

Redirects

Content

Menus

Profile

About

Collection of concerns and helpers for Rails + Mongoid + Character web development

Resources

License

Stars

Watchers

Forks

Packages

No packages published