Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Localised Properties for CouchRest Model
Ruby
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
LICENSE
README.rdoc
Rakefile
VERSION
couchrest_localised_properties.gemspec

README.rdoc

CouchRest Localised Properties

Localise your CouchRest Model properties as if by magic!

Introduction

Storing translations of data is always a difficult problem.

CouchRest Localised Properties works by overwriting the normal attribute getters and setters with special localised versions that will magically replace the attribute with a hash. For each locale supported by your application there will be a key in the hash to store the real value. This approach allows you to apply any typecasting to the value being read as if you were working in just one locale.

While getting and setting values is quite considerably easier, you'll still need to write your view methods manually.

Basic Usage

class Article < CouchRest::Model::Base
  localised_property :title, String
  localised_property :content, String

  property :published_at, DateTime
end

# set language to english and set title
I18n.default_locale = :en
I18n.locale = :en
@a = Article.new
@a.title = "Test Title"

# language changed to spanish:
I18n.locale = :es
# returns default text as no translation set
@a.title == "Test Title"  # true

# set the title for spanish
@a.title = "Título de prueba"

# Have a look at the raw data
@a['title'] == {
  'en' => "Test Title",
  'es' => "Título de prueba"
}

Updates

v0.1.1 - 20th April 2011

- Updated to use CouchRest Model 1.1.0.beta4 with dirty tracking

v0.1 - 25th March 2011

- First release

Todos / Bugs

- Please let me know!

License

Copyright © 2011 Samuel Lown <me (AT) samlown.com>

This Plugin is released under the MIT license, as Rails itself. Please see the attached LICENSE file for further details.

This document and plugin should be considered a work in progress until further notice!

Something went wrong with that request. Please try again.