Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zonuexe/ruby-activerecord-bracket
Provide bracket-method `[]` for ActiveRecord Class
https://github.com/zonuexe/ruby-activerecord-bracket
Last synced: 2 months ago
JSON representation
Provide bracket-method `[]` for ActiveRecord Class
- Host: GitHub
- URL: https://github.com/zonuexe/ruby-activerecord-bracket
- Owner: zonuexe
- License: other
- Created: 2013-03-20T07:26:14.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2014-02-16T05:31:03.000Z (almost 11 years ago)
- Last Synced: 2024-10-03T11:18:30.173Z (3 months ago)
- Language: Ruby
- Homepage:
- Size: 164 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ActiveRecord::Bracket [![Build Status](https://travis-ci.org/zonuexe/ruby-activerecord-bracket.png?branch=develop)](https://travis-ci.org/zonuexe/ruby-activerecord-bracket) [![Code Climate](https://codeclimate.com/github/zonuexe/ruby-activerecord-bracket.png)](https://codeclimate.com/github/zonuexe/ruby-activerecord-bracket) [![Dependency Status](https://gemnasium.com/zonuexe/ruby-activerecord-bracket.png)](https://gemnasium.com/zonuexe/ruby-activerecord-bracket)
Provide bracket-method `[]` to index-like access for ActiveRecord Class. It method is a syntax-sugar of `find_by_slug` (dynamic-finder of ActiveRecord).
## Requirement
* **Ruby** (1.9+, 2.0)
* Ruby on Rails (3.x)
* Not yet supported rails 4## Installation
Add this line to your application's Gemfile:
gem 'activerecord-bracket'
And then execute:
$ bundle
Or install it yourself as:
$ gem install activerecord-bracket
## Introduction
*(Japanese)*
* **ID** とは *別の* 唯一の識別子を持つテーブルを前提とします (ex. Twitter)
* Twitterのアカウントには、作成時に任意で選択する変更可能な **Username** (一般に `@zonu_exe` のようにユーザを識別するために使用される) と、変更不可能でアカウント作成時に自動で付番される(10進整数のみからなる) **ID** が存在します
* **slug** とは、文字集合が概ねASCIIからなる、平易なURIとして *期待される* 文字列のことです
* この用語はWordPressから輸入しました。実際にはWordPressではASCIIのみといった制限はありませんし、 `ActiveRecord::Bracket` においてもその制限はModelのvalidationのみに依存します### Setup
*(Japanese)*
* ActiveRecordを継承したモデルに `slug` 列を用意します (**カラム名の制限は撤廃予定です**)
* この列は **uniqueness** であることが望ましいです (必須ではありませんが、 `find_by_slug` の構文糖でしかないことに留意しないと想定外の挙動をするおそれがある)## Usage
```ruby
# define system supported language
Language.create(name: 'Japanese', slug: 'ja')
Language.create(name: 'English' , slug: 'en')# get Language instance object
ja = Language[:ja] #=> #
en = Language[:en] #=> ## filter non-supported languages
ko = Language[:ko] #=> nil
fr = Language[:fr] #=> nil# sanitize
errorkeystr = 'kimiha jitsuni baka dana'
_ = Language[errorkeystr] #=> nil
```*(Japanese)*
* `Model.[]` の引数は `String`, `Symbol` のどちらでもActiveRecordがよしなに扱ってくれます。たぶん。
## Contributing
1. Fork it
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 new Pull Request