i18n-sequel_bitemporal 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c0b9fbde1fa26917643d8e20f17d2cee68976ad
4
- data.tar.gz: 195ed0eeaa86d216c4c871778f86f5665de75ed4
3
+ metadata.gz: bd33458823a537773be7030596348d77748afa26
4
+ data.tar.gz: 2cd8bfe9ca96357fb7cc58bdef0e7ec6a6ce10df
5
5
  SHA512:
6
- metadata.gz: c9bfde211f0394892bfee0d9b42359704954efdef7646ff87d6aa017ef52a8852e5fdf94f8caf8f4b256faa97d93bb844982e7abc67dab74293605158885224b
7
- data.tar.gz: b9d6fc67c377bcceebf0958397e223219588cee04c61933aeef709982483045a89d3d951cec3d5e41c6b5a5c958942a9b8ba6e5190bdafb8746f9bc97aa3a041
6
+ metadata.gz: e4ac6a80844e7eb02fe26726035bb9969806b8a12abd80d46c75307f7666a20b68e820c388751c732045754477d89acd02633bfb7baa3153629721584edc1b6b
7
+ data.tar.gz: 800e91ef1b16110e16509541586e56eb5bff5b2c612c3a24ba34db1984740d2d80b6552e5bb6301ec1beba56239cbba3ca2a64922f65822f61dd7d354ac63144
data/.travis.yml CHANGED
@@ -1,21 +1,33 @@
1
+ language: ruby
2
+ cache: bundler
3
+ sudo: false
1
4
  rvm:
2
5
  - 1.9.3
3
- - 2.0.0
4
- - 2.1.0
6
+ - 2.0
7
+ - 2.1
8
+ - 2.2
5
9
  - jruby-19mode
6
10
  env:
7
11
  - ADAPTER=sqlite3
8
12
  - ADAPTER=postgres
9
13
  gemfile:
10
- - ci/Gemfile.rails-3.x
11
- - ci/Gemfile.rails-3.x-i18n-0.6
14
+ - ci/Gemfile.rails-3.2
15
+ - ci/Gemfile.rails-4.0
16
+ - ci/Gemfile.rails-4.1
17
+ - ci/Gemfile.rails-4.2
12
18
  matrix:
13
19
  exclude:
14
20
  - rvm: jruby-19mode
15
21
  env: ADAPTER=sqlite3
16
- gemfile: ci/Gemfile.rails-3.x
22
+ gemfile: ci/Gemfile.rails-3.2
17
23
  - rvm: jruby-19mode
18
24
  env: ADAPTER=sqlite3
19
- gemfile: ci/Gemfile.rails-3.x-i18n-0.6
25
+ gemfile: ci/Gemfile.rails-4.0
26
+ - rvm: jruby-19mode
27
+ env: ADAPTER=sqlite3
28
+ gemfile: ci/Gemfile.rails-4.1
29
+ - rvm: jruby-19mode
30
+ env: ADAPTER=sqlite3
31
+ gemfile: ci/Gemfile.rails-4.2
20
32
  before_script:
21
33
  - psql -c 'create database i18n_sequel_bitemporal;' -U postgres
data/Gemfile CHANGED
@@ -3,6 +3,7 @@ source "https://rubygems.org"
3
3
  # Specify your gem"s dependencies in i18n-sequel.gemspec
4
4
  gemspec
5
5
 
6
+ gem "test-unit"
6
7
  gem "test_declarative"
7
8
  gem "mocha"
8
9
  gem "rake"
data/README.textile CHANGED
@@ -1,3 +1,5 @@
1
+ !https://travis-ci.org/TalentBox/i18n-sequel_bitemporal.svg?branch=master!:https://travis-ci.org/TalentBox/i18n-sequel_bitemporal
2
+
1
3
  h1. I18n::Backend::SequelBitemporal
2
4
 
3
5
  This repository contains an "I18n":http://github.com/svenfuchs/i18n Sequel
@@ -21,7 +23,7 @@ or to track master's HEAD:
21
23
 
22
24
  <pre>
23
25
  gem 'i18n-sequel_bitemporal',
24
- :git => 'git://github.com/TalentBox/i18n-sequel_bitemporal.git',
26
+ :github => 'TalentBox/i18n-sequel_bitemporal',
25
27
  :require => 'i18n/sequel_bitemporal'
26
28
  </pre>
27
29
 
@@ -87,6 +89,23 @@ Memoization is highly recommended if you use a DB as your backend.
87
89
  I18n.backend = I18n::Backend::Chain.new(I18n::Backend::Simple.new, I18n.backend)
88
90
  </pre>
89
91
 
92
+ You can also customize table names for the backing models:
93
+
94
+ <pre>
95
+ require 'i18n/backend/sequel_bitemporal'
96
+ I18n::Backend::SequelBitemporal.master_table_name = :my_translations
97
+ I18n::Backend::SequelBitemporal.version_table_name = :my_translation_versions
98
+ </pre>
99
+
100
+ Please note names can be anything you can use in `Sequel::Model#set_dataset`.
101
+ For example you want your translations table to be in a specific schema:
102
+
103
+ <pre>
104
+ require 'i18n/backend/sequel_bitemporal'
105
+ I18n::Backend::SequelBitemporal.master_table_name = Sequel.qualify(:translations, :i18n_translations)
106
+ I18n::Backend::SequelBitemporal.version_table_name = Sequel.qualify(:translations, :i18n_translation_versions)
107
+ </pre>
108
+
90
109
  h2. Usage
91
110
 
92
111
  You can now use @I18n.t('Your String')@ to lookup translations in the database.
@@ -2,8 +2,9 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec :path => "../"
4
4
 
5
- gem "i18n", "~> 0.5.0"
5
+ gem 'railties', '~> 3.2.0'
6
6
 
7
+ gem "test-unit"
7
8
  gem "test_declarative"
8
9
  gem "mocha"
9
10
  gem "rake"
@@ -2,8 +2,9 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec :path => "../"
4
4
 
5
- gem "i18n", "~> 0.6.0"
5
+ gem 'railties', '~> 4.0.0'
6
6
 
7
+ gem "test-unit"
7
8
  gem "test_declarative"
8
9
  gem "mocha"
9
10
  gem "rake"
@@ -0,0 +1,23 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec :path => "../"
4
+
5
+ gem 'railties', '~> 4.1.0'
6
+
7
+ gem "test-unit"
8
+ gem "test_declarative"
9
+ gem "mocha"
10
+ gem "rake"
11
+ gem "timecop"
12
+
13
+ platforms :ruby do
14
+ gem "pg"
15
+ gem "mysql"
16
+ gem "sqlite3"
17
+ end
18
+
19
+ platforms :jruby do
20
+ gem "jdbc-postgres"
21
+ gem "jdbc-mysql"
22
+ gem "jdbc-sqlite3"
23
+ end
@@ -0,0 +1,23 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec :path => "../"
4
+
5
+ gem 'railties', '~> 4.2.0'
6
+
7
+ gem "test-unit"
8
+ gem "test_declarative"
9
+ gem "mocha"
10
+ gem "rake"
11
+ gem "timecop"
12
+
13
+ platforms :ruby do
14
+ gem "pg"
15
+ gem "mysql"
16
+ gem "sqlite3"
17
+ end
18
+
19
+ platforms :jruby do
20
+ gem "jdbc-postgres"
21
+ gem "jdbc-mysql"
22
+ gem "jdbc-sqlite3"
23
+ end
@@ -19,6 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
22
- s.add_dependency "i18n", ">= 0.5", "< 0.7.0"
22
+ s.add_dependency "i18n", ">= 0.6", "< 0.8.0"
23
23
  s.add_dependency "sequel_bitemporal", "~> 0.8.0"
24
24
  end
@@ -7,6 +7,22 @@ module I18n
7
7
  autoload :StoreProcs, 'i18n/backend/sequel_bitemporal/store_procs'
8
8
  autoload :Translation, 'i18n/backend/sequel_bitemporal/translation'
9
9
 
10
+ def self.master_table_name=(table_name)
11
+ @master_table_name = table_name
12
+ end
13
+
14
+ def self.master_table_name
15
+ @master_table_name || :i18n_translations
16
+ end
17
+
18
+ def self.version_table_name=(table_name)
19
+ @version_table_name = table_name
20
+ end
21
+
22
+ def self.version_table_name
23
+ @version_table_name || :i18n_translation_versions
24
+ end
25
+
10
26
  module Implementation
11
27
  include Base, Flatten
12
28
 
@@ -57,7 +57,7 @@ module I18n
57
57
  # Translation.find_by_locale_and_key('en', 'foo').value
58
58
  # # => 'FOO'
59
59
  class SequelBitemporal
60
- class TranslationVersion < ::Sequel::Model(:i18n_translation_versions)
60
+ class TranslationVersion < ::Sequel::Model(::I18n::Backend::SequelBitemporal.version_table_name)
61
61
  plugin :serialization
62
62
 
63
63
  TRUTHY_CHAR = "\001"
@@ -100,7 +100,7 @@ module I18n
100
100
  end
101
101
  end
102
102
 
103
- class Translation < ::Sequel::Model(:i18n_translations)
103
+ class Translation < ::Sequel::Model(::I18n::Backend::SequelBitemporal.master_table_name)
104
104
  extend Forwardable
105
105
  plugin :bitemporal, version_class: TranslationVersion
106
106
 
@@ -1,5 +1,5 @@
1
1
  module I18n
2
2
  module SequelBitemporal
3
- VERSION = "0.8.0"
3
+ VERSION = "0.9.0"
4
4
  end
5
5
  end
data/test/api_test.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../test_helper', __FILE__)
2
2
 
3
- class I18nSequelBitemporalApiTest < Test::Unit::TestCase
3
+ class I18nSequelBitemporalApiTest < I18nBitemporalTest
4
4
  def setup
5
5
  I18n::Backend::SequelBitemporal::Translation.dataset.delete
6
6
  I18n.backend = I18n::Backend::SequelBitemporal.new
@@ -28,4 +28,3 @@ class I18nSequelBitemporalApiTest < Test::Unit::TestCase
28
28
  assert_equal I18n::Backend::SequelBitemporal, I18n.backend.class
29
29
  end
30
30
  end if defined?(Sequel)
31
-
data/test/missing_test.rb CHANGED
@@ -1,11 +1,12 @@
1
1
  require File.expand_path('../test_helper', __FILE__)
2
2
 
3
- class I18nSequelBitemporalMissingTest < Test::Unit::TestCase
3
+ class I18nSequelBitemporalMissingTest < I18nBitemporalTest
4
4
  class Backend < I18n::Backend::SequelBitemporal
5
5
  include I18n::Backend::SequelBitemporal::Missing
6
6
  end
7
7
 
8
8
  def setup
9
+ super
9
10
  I18n.backend.store_translations(:en, :bar => 'Bar', :i18n => { :plural => { :keys => [:zero, :one, :other] } })
10
11
  I18n.backend = I18n::Backend::Chain.new(Backend.new, I18n.backend)
11
12
  I18n::Backend::SequelBitemporal::Translation.dataset.delete
@@ -68,4 +69,3 @@ class I18nSequelBitemporalMissingTest < Test::Unit::TestCase
68
69
  end
69
70
 
70
71
  end if defined?(Sequel)
71
-
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../test_helper', __FILE__)
2
2
 
3
- class I18nBackendSequelBitemporalCacheTest < Test::Unit::TestCase
3
+ class I18nBackendSequelBitemporalCacheTest < I18nBitemporalTest
4
4
  def clear_all
5
5
  I18n::Backend::SequelBitemporal::Translation.dataset.delete
6
6
  end
data/test/sequel_test.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../test_helper', __FILE__)
2
2
 
3
- class I18nBackendSequelBitemporalTest < Test::Unit::TestCase
3
+ class I18nBackendSequelBitemporalTest < I18nBitemporalTest
4
4
  def clear_all
5
5
  I18n::Backend::SequelBitemporal::Translation.dataset.delete
6
6
  end
@@ -63,4 +63,59 @@ class I18nBackendSequelBitemporalTest < Test::Unit::TestCase
63
63
  assert_equal %w(foo foo.bar foo.bar.baz), I18n.backend.send(:expand_keys, :'foo.bar.baz')
64
64
  end
65
65
 
66
+ test "allows to override the table names" do
67
+ ::Sequel::Model.db.transaction :rollback => :always do
68
+ begin
69
+ ::Sequel.migration do
70
+ change do
71
+ create_table :another_i18n_translations do
72
+ primary_key :id
73
+ String :locale, :null => false
74
+ String :key, :null => false
75
+ index [:locale, :key], :unique => true
76
+ end
77
+
78
+ create_table :another_i18n_translation_versions do
79
+ primary_key :id
80
+ foreign_key :master_id, :another_i18n_translations, :on_delete => :cascade
81
+ Time :created_at
82
+ Time :expired_at
83
+ Date :valid_from
84
+ Date :valid_to
85
+ String :value, :text => true
86
+ String :interpolations, :text => true
87
+ TrueClass :is_proc, :null => false, :default => false
88
+ end
89
+ end
90
+ end.apply(::Sequel::Model.db, :up)
91
+ change_table_names(
92
+ :another_i18n_translations,
93
+ :another_i18n_translation_versions
94
+ )
95
+
96
+ assert_equal(
97
+ ::I18n::Backend::SequelBitemporal::Translation.table_name,
98
+ :another_i18n_translations
99
+ )
100
+ assert_equal(
101
+ ::I18n::Backend::SequelBitemporal::TranslationVersion.table_name,
102
+ :another_i18n_translation_versions
103
+ )
104
+ ensure
105
+ change_table_names nil, nil
106
+ end
107
+ end
108
+ end
109
+
110
+ def change_table_names(master_name, version_name)
111
+ ::I18n::Backend::SequelBitemporal.master_table_name = master_name
112
+ ::I18n::Backend::SequelBitemporal.version_table_name = version_name
113
+ ::I18n::Backend::SequelBitemporal.send :remove_const, :Translation
114
+ ::I18n::Backend::SequelBitemporal.send :remove_const, :TranslationVersion
115
+ load File.expand_path(
116
+ "../../lib/i18n/backend/sequel_bitemporal/translation.rb",
117
+ __FILE__
118
+ )
119
+ end
120
+
66
121
  end if defined?(Sequel)
data/test/test_helper.rb CHANGED
@@ -12,17 +12,25 @@ require 'test_declarative'
12
12
  require 'timecop'
13
13
  I18n::Tests.setup_sequel
14
14
 
15
- class Test::Unit::TestCase
15
+ class I18nBitemporalTest < Test::Unit::TestCase
16
16
  def self.with_mocha
17
17
  yield if Object.respond_to?(:expects)
18
18
  end
19
19
 
20
+ def setup
21
+ super
22
+ I18n.enforce_available_locales = false
23
+ end
24
+
20
25
  def teardown
21
26
  I18n.locale = nil
22
- I18n.default_locale = :en
23
- I18n.load_path = []
27
+ I18n.default_locale = nil
28
+ I18n.load_path = nil
24
29
  I18n.available_locales = nil
25
30
  I18n.backend = nil
31
+ I18n.default_separator = nil
32
+ I18n.enforce_available_locales = true
33
+ super
26
34
  end
27
35
 
28
36
  def translations
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n-sequel_bitemporal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Tron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-07 00:00:00.000000000 Z
11
+ date: 2015-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.5'
19
+ version: '0.6'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 0.7.0
22
+ version: 0.8.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '0.5'
29
+ version: '0.6'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.7.0
32
+ version: 0.8.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: sequel_bitemporal
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -60,8 +60,10 @@ files:
60
60
  - MIT-LICENSE
61
61
  - README.textile
62
62
  - Rakefile
63
- - ci/Gemfile.rails-3.x
64
- - ci/Gemfile.rails-3.x-i18n-0.6
63
+ - ci/Gemfile.rails-3.2
64
+ - ci/Gemfile.rails-4.0
65
+ - ci/Gemfile.rails-4.1
66
+ - ci/Gemfile.rails-4.2
65
67
  - i18n-sequel_bitemporal.gemspec
66
68
  - lib/i18n/backend/sequel_bitemporal.rb
67
69
  - lib/i18n/backend/sequel_bitemporal/missing.rb
@@ -95,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
97
  version: '0'
96
98
  requirements: []
97
99
  rubyforge_project: "[none]"
98
- rubygems_version: 2.2.2
100
+ rubygems_version: 2.4.5
99
101
  signing_key:
100
102
  specification_version: 4
101
103
  summary: I18n Bitemporal Sequel backend
@@ -107,3 +109,4 @@ test_files:
107
109
  - test/sequel_test.rb
108
110
  - test/test_helper.rb
109
111
  - test/test_setup.rb
112
+ has_rdoc: