Skip to content

Commit 33c02da

Browse files
committed
Kaminary support
Configurable table names
1 parent 0635d3a commit 33c02da

File tree

6 files changed

+30
-26
lines changed

6 files changed

+30
-26
lines changed

Gemfile.lock

+8-3
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,12 @@ GEM
5151
ffi (1.0.9)
5252
hike (1.2.1)
5353
i18n (0.6.0)
54+
jquery-rails (1.0.18)
55+
railties (~> 3.0)
56+
thor (~> 0.14)
5457
json_pure (1.6.1)
58+
kaminari (0.12.4)
59+
rails (>= 3.0.0)
5560
mail (2.3.0)
5661
i18n (>= 0.4.0)
5762
mime-types (~> 1.16)
@@ -98,7 +103,7 @@ GEM
98103
sprockets (2.0.0)
99104
hike (~> 1.2)
100105
rack (~> 1.0)
101-
tilt (!= 1.3.0, ~> 1.1)
106+
tilt (~> 1.1, != 1.3.0)
102107
sqlite3 (1.3.4)
103108
sqlite3-ruby (1.3.3)
104109
sqlite3 (>= 1.3.3)
@@ -108,7 +113,6 @@ GEM
108113
polyglot
109114
polyglot (>= 0.3.1)
110115
tzinfo (0.3.29)
111-
will_paginate (3.0.2)
112116
xpath (0.1.4)
113117
nokogiri (~> 1.3)
114118
ya2yaml (0.30)
@@ -119,8 +123,9 @@ PLATFORMS
119123
DEPENDENCIES
120124
capybara
121125
factory_girl_rails
126+
jquery-rails
127+
kaminari
122128
mocha
123129
rails
124130
sqlite3-ruby
125-
will_paginate
126131
ya2yaml

app/models/tolk/locale.rb

+19-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
module Tolk
22
class Locale < ActiveRecord::Base
3-
set_table_name "tolk_locales"
43

54
MAPPING = {
65
'ar' => 'Arabic',
@@ -60,7 +59,8 @@ class Locale < ActiveRecord::Base
6059
self.locales_config_path = "#{Rails.root}/config/locales"
6160

6261
cattr_accessor :primary_locale_name
63-
self.primary_locale_name = I18n.default_locale.to_s
62+
#self.primary_locale_name = I18n.default_locale.to_s
63+
self.primary_locale_name = "en"
6464

6565
include Tolk::Sync
6666
include Tolk::Import
@@ -112,29 +112,29 @@ def pluralization_data?(data)
112112
end
113113

114114
def has_updated_translations?
115-
translations.count(:conditions => {:'tolk_translations.primary_updated' => true}) > 0
115+
translations.where(:primary_updated => true).count > 0
116116
end
117117

118118
def phrases_with_translation(page = nil)
119-
find_phrases_with_translations(page, :'tolk_translations.primary_updated' => false)
119+
find_phrases_with_translations(page, :"#{Tolk::Translation.table_name}.primary_updated" => false)
120120
end
121121

122122
def phrases_with_updated_translation(page = nil)
123-
find_phrases_with_translations(page, :'tolk_translations.primary_updated' => true)
123+
find_phrases_with_translations(page, :"#{Tolk::Translation.table_name}.primary_updated" => true)
124124
end
125125

126126
def count_phrases_without_translation
127-
existing_ids = self.translations.all(:select => 'tolk_translations.phrase_id').map(&:phrase_id).uniq
127+
existing_ids = self.translations.all(:select => "#{Tolk::Translation.table_name}.phrase_id").map(&:phrase_id).uniq
128128
Tolk::Phrase.count - existing_ids.count
129129
end
130130

131131
def phrases_without_translation(page = nil, options = {})
132-
phrases = Tolk::Phrase.scoped(:order => 'tolk_phrases.key ASC')
132+
phrases = Tolk::Phrase.scoped(:order => "#{Tolk::Phrase.table_name}.key ASC")
133133

134-
existing_ids = self.translations.all(:select => 'tolk_translations.phrase_id').map(&:phrase_id).uniq
135-
phrases = phrases.includes(:translations => [:locale]).scoped(:conditions => ['tolk_phrases.id NOT IN (?)', existing_ids]) if existing_ids.present?
134+
existing_ids = self.translations.all(:select => "#{Tolk::Translation.table_name}.phrase_id").map(&:phrase_id).uniq
135+
phrases = phrases.includes(:translations => [:locale]).scoped(:conditions => ["#{Tolk::Phrase.table_name}.id NOT IN (?)", existing_ids]) if existing_ids.present?
136136

137-
result = phrases.paginate(:page => page, :per_page => Tolk::Phrase.per_page)#page(page).per(Tolk::Phrase.per_page)
137+
result = phrases.page(page).per(Tolk::Phrase.per_page)
138138
result
139139
end
140140

@@ -148,19 +148,19 @@ def search_phrases(query, scope, page = nil, options = {})
148148
self.translations.containing_text(query)
149149
end
150150

151-
phrases = Tolk::Phrase.scoped(:order => 'tolk_phrases.key ASC')
152-
phrases = phrases.scoped(:conditions => ['tolk_phrases.id IN(?)', translations.map(&:phrase_id).uniq])
151+
phrases = Tolk::Phrase.scoped(:order => "#{Tolk::Phrase.table_name}.key ASC")
152+
phrases = phrases.scoped(:conditions => ["#{Tolk::Phrase.table_name}.id IN(?)", translations.map(&:phrase_id).uniq])
153153
phrases.page(page)
154154
end
155155

156156
def search_phrases_without_translation(query, page = nil, options = {})
157157
return phrases_without_translation(page, options) unless query.present?
158158

159-
phrases = Tolk::Phrase.scoped(:order => 'tolk_phrases.key ASC')
159+
phrases = Tolk::Phrase.scoped(:order => "#{Tolk::Phrase.table_name}.key ASC")
160160

161-
found_translations_ids = Tolk::Locale.primary_locale.translations.all(:conditions => ["tolk_translations.text LIKE ?", "%#{query}%"], :select => 'tolk_translations.phrase_id').map(&:phrase_id).uniq
162-
existing_ids = self.translations.all(:select => 'tolk_translations.phrase_id').map(&:phrase_id).uniq
163-
phrases = phrases.scoped(:conditions => ['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
161+
found_translations_ids = Tolk::Locale.primary_locale.translations.all(:conditions => ["#{Tolk::Translation.table_name}.text LIKE ?", "%#{query}%"], :select => "#{Tolk::Translation.table_name}.phrase_id").map(&:phrase_id).uniq
162+
existing_ids = self.translations.all(:select => "#{Tolk::Translation.table_name}.phrase_id").map(&:phrase_id).uniq
163+
phrases = phrases.scoped(:conditions => ["#{Tolk::Phrase.table_name}.id NOT IN (?) AND #{Tolk::Phrase.table_name}.id IN(?)", existing_ids, found_translations_ids]) if existing_ids.present?
164164

165165
result = phrases.page(page)
166166
result
@@ -218,8 +218,9 @@ def remove_invalid_translations_from_target
218218

219219
def find_phrases_with_translations(page, conditions = {})
220220
result = Tolk::Phrase.page(page).find(:all,
221-
:conditions => { :'tolk_translations.locale_id' => self.id }.merge(conditions),
222-
:joins => :translations, :order => 'tolk_phrases.key ASC')
221+
:conditions => {:"#{Tolk::Translation.table_name}.locale_id" => self.id }.merge(conditions),
222+
:joins => :translations, :order => "#{Tolk::Phrase.table_name}.key ASC")
223+
223224

224225
result.each do |phrase|
225226
phrase.translation = phrase.translations.for(self)

app/models/tolk/phrase.rb

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
module Tolk
22
class Phrase < ActiveRecord::Base
3-
set_table_name "tolk_phrases"
43

54
validates_uniqueness_of :key
65

app/models/tolk/translation.rb

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
module Tolk
22
class Translation < ActiveRecord::Base
3-
set_table_name "tolk_translations"
4-
53
scope :containing_text, lambda {|query| where("#{self.table_name}.text LIKE ?", "%#{query}%") }
64

75
serialize :text

lib/tolk.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
require 'will_paginate'
1+
require 'kaminari'
22
require 'ya2yaml'
33
require 'tolk/engine'
44
require 'tolk/sync'
55
require 'tolk/import'
66

77
module Tolk
8+
89
end

tolk.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
99
s.homepage = 'http://www.rubyonrails.org'
1010

1111
s.platform = Gem::Platform::RUBY
12-
s.add_dependency('will_paginate')
12+
s.add_dependency('kaminari')
1313
s.add_dependency('jquery-rails')
1414
s.add_dependency('ya2yaml', '~> 0.26')
1515

0 commit comments

Comments
 (0)