radiant-globalize2-extension 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. data/Rakefile +136 -0
  2. data/app/views/admin/shared/_change_locale.html.haml +22 -0
  3. data/app/views/admin/shared/_change_locale_admin.html.haml +7 -0
  4. data/app/views/admin/shared/_globalize_td.html.haml +4 -0
  5. data/app/views/admin/shared/_globalize_th.html.haml +2 -0
  6. data/config/routes.rb +4 -0
  7. data/cucumber.yml +1 -0
  8. data/db/migrate/20090728084238_create_translation_tables.rb +23 -0
  9. data/db/migrate/20090728114627_populate_translations.rb +21 -0
  10. data/db/migrate/20090729085422_remove_translated_attributes.rb +16 -0
  11. data/features/globalize_layouts.feature +19 -0
  12. data/features/globalize_pages.feature +58 -0
  13. data/features/globalize_snippets.feature +19 -0
  14. data/features/step_definitions/admin_steps.rb +58 -0
  15. data/features/step_definitions/webrat_steps.rb +119 -0
  16. data/features/support/env.rb +30 -0
  17. data/features/support/paths.rb +26 -0
  18. data/globalize2_extension.rb +93 -0
  19. data/lib/globalize2/compatibility/archive/archive_page_extensions.rb +21 -0
  20. data/lib/globalize2/compatibility/copy_move/copy_move_model_extensions.rb +22 -0
  21. data/lib/globalize2/compatibility/paginate/globalize_tags.rb +19 -0
  22. data/lib/globalize2/compatibility/paginate/page_extensions.rb +9 -0
  23. data/lib/globalize2/compatibility/vhost/page_extensions.rb +9 -0
  24. data/lib/globalize2/form_builder_extensions.rb +21 -0
  25. data/lib/globalize2/globalize_tags.rb +203 -0
  26. data/lib/globalize2/globalized_fields_controller_extension.rb +22 -0
  27. data/lib/globalize2/page_extensions.rb +88 -0
  28. data/lib/globalize2/page_part_extensions.rb +21 -0
  29. data/lib/globalize2/pages_controller_extensions.rb +9 -0
  30. data/lib/globalize2/site_controller_extensions.rb +24 -0
  31. data/lib/tasks/globalize2_extension_tasks.rake +28 -0
  32. data/public/images/admin/ad.gif +0 -0
  33. data/public/images/admin/ae.gif +0 -0
  34. data/public/images/admin/af.gif +0 -0
  35. data/public/images/admin/ag.gif +0 -0
  36. data/public/images/admin/ai.gif +0 -0
  37. data/public/images/admin/al.gif +0 -0
  38. data/public/images/admin/am.gif +0 -0
  39. data/public/images/admin/an.gif +0 -0
  40. data/public/images/admin/ao.gif +0 -0
  41. data/public/images/admin/ar.gif +0 -0
  42. data/public/images/admin/as.gif +0 -0
  43. data/public/images/admin/at.gif +0 -0
  44. data/public/images/admin/au.gif +0 -0
  45. data/public/images/admin/aw.gif +0 -0
  46. data/public/images/admin/ax.gif +0 -0
  47. data/public/images/admin/az.gif +0 -0
  48. data/public/images/admin/ba.gif +0 -0
  49. data/public/images/admin/bb.gif +0 -0
  50. data/public/images/admin/bd.gif +0 -0
  51. data/public/images/admin/be.gif +0 -0
  52. data/public/images/admin/bf.gif +0 -0
  53. data/public/images/admin/bg.gif +0 -0
  54. data/public/images/admin/bh.gif +0 -0
  55. data/public/images/admin/bi.gif +0 -0
  56. data/public/images/admin/bj.gif +0 -0
  57. data/public/images/admin/bm.gif +0 -0
  58. data/public/images/admin/bn.gif +0 -0
  59. data/public/images/admin/bo.gif +0 -0
  60. data/public/images/admin/br.gif +0 -0
  61. data/public/images/admin/bs.gif +0 -0
  62. data/public/images/admin/bt.gif +0 -0
  63. data/public/images/admin/bv.gif +0 -0
  64. data/public/images/admin/bw.gif +0 -0
  65. data/public/images/admin/by.gif +0 -0
  66. data/public/images/admin/bz.gif +0 -0
  67. data/public/images/admin/ca.gif +0 -0
  68. data/public/images/admin/catalonia.gif +0 -0
  69. data/public/images/admin/cc.gif +0 -0
  70. data/public/images/admin/cd.gif +0 -0
  71. data/public/images/admin/cf.gif +0 -0
  72. data/public/images/admin/cg.gif +0 -0
  73. data/public/images/admin/ch.gif +0 -0
  74. data/public/images/admin/ci.gif +0 -0
  75. data/public/images/admin/ck.gif +0 -0
  76. data/public/images/admin/cl.gif +0 -0
  77. data/public/images/admin/cm.gif +0 -0
  78. data/public/images/admin/cn.gif +0 -0
  79. data/public/images/admin/co.gif +0 -0
  80. data/public/images/admin/cr.gif +0 -0
  81. data/public/images/admin/cs.gif +0 -0
  82. data/public/images/admin/cu.gif +0 -0
  83. data/public/images/admin/cv.gif +0 -0
  84. data/public/images/admin/cx.gif +0 -0
  85. data/public/images/admin/cy.gif +0 -0
  86. data/public/images/admin/cz.gif +0 -0
  87. data/public/images/admin/de.gif +0 -0
  88. data/public/images/admin/dj.gif +0 -0
  89. data/public/images/admin/dk.gif +0 -0
  90. data/public/images/admin/dm.gif +0 -0
  91. data/public/images/admin/do.gif +0 -0
  92. data/public/images/admin/dz.gif +0 -0
  93. data/public/images/admin/ec.gif +0 -0
  94. data/public/images/admin/ee.gif +0 -0
  95. data/public/images/admin/eg.gif +0 -0
  96. data/public/images/admin/eh.gif +0 -0
  97. data/public/images/admin/en.gif +0 -0
  98. data/public/images/admin/england.gif +0 -0
  99. data/public/images/admin/er.gif +0 -0
  100. data/public/images/admin/es.gif +0 -0
  101. data/public/images/admin/et.gif +0 -0
  102. data/public/images/admin/europeanunion.gif +0 -0
  103. data/public/images/admin/fam.gif +0 -0
  104. data/public/images/admin/fi.gif +0 -0
  105. data/public/images/admin/fj.gif +0 -0
  106. data/public/images/admin/fk.gif +0 -0
  107. data/public/images/admin/fm.gif +0 -0
  108. data/public/images/admin/fo.gif +0 -0
  109. data/public/images/admin/fr.gif +0 -0
  110. data/public/images/admin/ga.gif +0 -0
  111. data/public/images/admin/gb.gif +0 -0
  112. data/public/images/admin/gd.gif +0 -0
  113. data/public/images/admin/ge.gif +0 -0
  114. data/public/images/admin/gf.gif +0 -0
  115. data/public/images/admin/gh.gif +0 -0
  116. data/public/images/admin/gi.gif +0 -0
  117. data/public/images/admin/gl.gif +0 -0
  118. data/public/images/admin/gm.gif +0 -0
  119. data/public/images/admin/gn.gif +0 -0
  120. data/public/images/admin/gp.gif +0 -0
  121. data/public/images/admin/gq.gif +0 -0
  122. data/public/images/admin/gr.gif +0 -0
  123. data/public/images/admin/gs.gif +0 -0
  124. data/public/images/admin/gt.gif +0 -0
  125. data/public/images/admin/gu.gif +0 -0
  126. data/public/images/admin/gw.gif +0 -0
  127. data/public/images/admin/gy.gif +0 -0
  128. data/public/images/admin/hk.gif +0 -0
  129. data/public/images/admin/hm.gif +0 -0
  130. data/public/images/admin/hn.gif +0 -0
  131. data/public/images/admin/hr.gif +0 -0
  132. data/public/images/admin/ht.gif +0 -0
  133. data/public/images/admin/hu.gif +0 -0
  134. data/public/images/admin/id.gif +0 -0
  135. data/public/images/admin/ie.gif +0 -0
  136. data/public/images/admin/il.gif +0 -0
  137. data/public/images/admin/in.gif +0 -0
  138. data/public/images/admin/io.gif +0 -0
  139. data/public/images/admin/iq.gif +0 -0
  140. data/public/images/admin/ir.gif +0 -0
  141. data/public/images/admin/is.gif +0 -0
  142. data/public/images/admin/it.gif +0 -0
  143. data/public/images/admin/jm.gif +0 -0
  144. data/public/images/admin/jo.gif +0 -0
  145. data/public/images/admin/jp.gif +0 -0
  146. data/public/images/admin/ke.gif +0 -0
  147. data/public/images/admin/kg.gif +0 -0
  148. data/public/images/admin/kh.gif +0 -0
  149. data/public/images/admin/ki.gif +0 -0
  150. data/public/images/admin/km.gif +0 -0
  151. data/public/images/admin/kn.gif +0 -0
  152. data/public/images/admin/kp.gif +0 -0
  153. data/public/images/admin/kr.gif +0 -0
  154. data/public/images/admin/kw.gif +0 -0
  155. data/public/images/admin/ky.gif +0 -0
  156. data/public/images/admin/kz.gif +0 -0
  157. data/public/images/admin/la.gif +0 -0
  158. data/public/images/admin/lb.gif +0 -0
  159. data/public/images/admin/lc.gif +0 -0
  160. data/public/images/admin/li.gif +0 -0
  161. data/public/images/admin/lk.gif +0 -0
  162. data/public/images/admin/lr.gif +0 -0
  163. data/public/images/admin/ls.gif +0 -0
  164. data/public/images/admin/lt.gif +0 -0
  165. data/public/images/admin/lu.gif +0 -0
  166. data/public/images/admin/lv.gif +0 -0
  167. data/public/images/admin/ly.gif +0 -0
  168. data/public/images/admin/ma.gif +0 -0
  169. data/public/images/admin/mc.gif +0 -0
  170. data/public/images/admin/md.gif +0 -0
  171. data/public/images/admin/me.gif +0 -0
  172. data/public/images/admin/mg.gif +0 -0
  173. data/public/images/admin/mh.gif +0 -0
  174. data/public/images/admin/mk.gif +0 -0
  175. data/public/images/admin/ml.gif +0 -0
  176. data/public/images/admin/mm.gif +0 -0
  177. data/public/images/admin/mn.gif +0 -0
  178. data/public/images/admin/mo.gif +0 -0
  179. data/public/images/admin/mp.gif +0 -0
  180. data/public/images/admin/mq.gif +0 -0
  181. data/public/images/admin/mr.gif +0 -0
  182. data/public/images/admin/ms.gif +0 -0
  183. data/public/images/admin/mt.gif +0 -0
  184. data/public/images/admin/mu.gif +0 -0
  185. data/public/images/admin/mv.gif +0 -0
  186. data/public/images/admin/mw.gif +0 -0
  187. data/public/images/admin/mx.gif +0 -0
  188. data/public/images/admin/my.gif +0 -0
  189. data/public/images/admin/mz.gif +0 -0
  190. data/public/images/admin/na.gif +0 -0
  191. data/public/images/admin/nc.gif +0 -0
  192. data/public/images/admin/ne.gif +0 -0
  193. data/public/images/admin/nf.gif +0 -0
  194. data/public/images/admin/ng.gif +0 -0
  195. data/public/images/admin/ni.gif +0 -0
  196. data/public/images/admin/nl.gif +0 -0
  197. data/public/images/admin/no.gif +0 -0
  198. data/public/images/admin/np.gif +0 -0
  199. data/public/images/admin/nr.gif +0 -0
  200. data/public/images/admin/nu.gif +0 -0
  201. data/public/images/admin/nz.gif +0 -0
  202. data/public/images/admin/om.gif +0 -0
  203. data/public/images/admin/pa.gif +0 -0
  204. data/public/images/admin/pe.gif +0 -0
  205. data/public/images/admin/pf.gif +0 -0
  206. data/public/images/admin/pg.gif +0 -0
  207. data/public/images/admin/ph.gif +0 -0
  208. data/public/images/admin/pk.gif +0 -0
  209. data/public/images/admin/pl.gif +0 -0
  210. data/public/images/admin/pm.gif +0 -0
  211. data/public/images/admin/pn.gif +0 -0
  212. data/public/images/admin/pr.gif +0 -0
  213. data/public/images/admin/ps.gif +0 -0
  214. data/public/images/admin/pt.gif +0 -0
  215. data/public/images/admin/pw.gif +0 -0
  216. data/public/images/admin/py.gif +0 -0
  217. data/public/images/admin/qa.gif +0 -0
  218. data/public/images/admin/re.gif +0 -0
  219. data/public/images/admin/ro.gif +0 -0
  220. data/public/images/admin/rs.gif +0 -0
  221. data/public/images/admin/ru.gif +0 -0
  222. data/public/images/admin/rw.gif +0 -0
  223. data/public/images/admin/sa.gif +0 -0
  224. data/public/images/admin/sb.gif +0 -0
  225. data/public/images/admin/sc.gif +0 -0
  226. data/public/images/admin/scotland.gif +0 -0
  227. data/public/images/admin/sd.gif +0 -0
  228. data/public/images/admin/se.gif +0 -0
  229. data/public/images/admin/sg.gif +0 -0
  230. data/public/images/admin/sh.gif +0 -0
  231. data/public/images/admin/si.gif +0 -0
  232. data/public/images/admin/sj.gif +0 -0
  233. data/public/images/admin/sk.gif +0 -0
  234. data/public/images/admin/sl.gif +0 -0
  235. data/public/images/admin/sm.gif +0 -0
  236. data/public/images/admin/sn.gif +0 -0
  237. data/public/images/admin/so.gif +0 -0
  238. data/public/images/admin/sr.gif +0 -0
  239. data/public/images/admin/st.gif +0 -0
  240. data/public/images/admin/sv.gif +0 -0
  241. data/public/images/admin/sy.gif +0 -0
  242. data/public/images/admin/sz.gif +0 -0
  243. data/public/images/admin/tc.gif +0 -0
  244. data/public/images/admin/td.gif +0 -0
  245. data/public/images/admin/tf.gif +0 -0
  246. data/public/images/admin/tg.gif +0 -0
  247. data/public/images/admin/th.gif +0 -0
  248. data/public/images/admin/tj.gif +0 -0
  249. data/public/images/admin/tk.gif +0 -0
  250. data/public/images/admin/tl.gif +0 -0
  251. data/public/images/admin/tm.gif +0 -0
  252. data/public/images/admin/tn.gif +0 -0
  253. data/public/images/admin/to.gif +0 -0
  254. data/public/images/admin/tr.gif +0 -0
  255. data/public/images/admin/tt.gif +0 -0
  256. data/public/images/admin/tv.gif +0 -0
  257. data/public/images/admin/tw.gif +0 -0
  258. data/public/images/admin/tz.gif +0 -0
  259. data/public/images/admin/ua.gif +0 -0
  260. data/public/images/admin/ug.gif +0 -0
  261. data/public/images/admin/um.gif +0 -0
  262. data/public/images/admin/us.gif +0 -0
  263. data/public/images/admin/uy.gif +0 -0
  264. data/public/images/admin/uz.gif +0 -0
  265. data/public/images/admin/va.gif +0 -0
  266. data/public/images/admin/vc.gif +0 -0
  267. data/public/images/admin/ve.gif +0 -0
  268. data/public/images/admin/vg.gif +0 -0
  269. data/public/images/admin/vi.gif +0 -0
  270. data/public/images/admin/vn.gif +0 -0
  271. data/public/images/admin/vu.gif +0 -0
  272. data/public/images/admin/wales.gif +0 -0
  273. data/public/images/admin/wf.gif +0 -0
  274. data/public/images/admin/ws.gif +0 -0
  275. data/public/images/admin/ye.gif +0 -0
  276. data/public/images/admin/yt.gif +0 -0
  277. data/public/images/admin/za.gif +0 -0
  278. data/public/images/admin/zm.gif +0 -0
  279. data/public/images/admin/zw.gif +0 -0
  280. data/public/stylesheets/sass/admin/globalize2.sass +59 -0
  281. data/readme.md +159 -0
  282. data/spec/controllers/admin/pages_controller_spec.rb +22 -0
  283. data/spec/controllers/site_controller_spec.rb +40 -0
  284. data/spec/factories.rb +39 -0
  285. data/spec/models/globalize_tags_spec.rb +155 -0
  286. data/spec/models/page_spec.rb +91 -0
  287. data/spec/spec.opts +6 -0
  288. data/spec/spec_helper.rb +34 -0
  289. data/vendor/plugins/globalize2/.gitignore +5 -0
  290. data/vendor/plugins/globalize2/LICENSE +21 -0
  291. data/vendor/plugins/globalize2/README.textile +86 -0
  292. data/vendor/plugins/globalize2/Rakefile +39 -0
  293. data/vendor/plugins/globalize2/VERSION +1 -0
  294. data/vendor/plugins/globalize2/generators/db_backend.rb +0 -0
  295. data/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb +25 -0
  296. data/vendor/plugins/globalize2/globalize2.gemspec +81 -0
  297. data/vendor/plugins/globalize2/init.rb +1 -0
  298. data/vendor/plugins/globalize2/lib/globalize.rb +15 -0
  299. data/vendor/plugins/globalize2/lib/globalize/active_record.rb +215 -0
  300. data/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb +80 -0
  301. data/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb +25 -0
  302. data/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb +44 -0
  303. data/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb +41 -0
  304. data/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb +25 -0
  305. data/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb +102 -0
  306. data/vendor/plugins/globalize2/test/active_record/migration_test.rb +118 -0
  307. data/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb +61 -0
  308. data/vendor/plugins/globalize2/test/active_record/translates_test.rb +96 -0
  309. data/vendor/plugins/globalize2/test/active_record/translation_class_test.rb +30 -0
  310. data/vendor/plugins/globalize2/test/active_record/validation_tests.rb +75 -0
  311. data/vendor/plugins/globalize2/test/active_record_test.rb +467 -0
  312. data/vendor/plugins/globalize2/test/all.rb +2 -0
  313. data/vendor/plugins/globalize2/test/data/models.rb +62 -0
  314. data/vendor/plugins/globalize2/test/data/no_globalize_schema.rb +11 -0
  315. data/vendor/plugins/globalize2/test/data/schema.rb +55 -0
  316. data/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb +36 -0
  317. data/vendor/plugins/globalize2/test/test_helper.rb +76 -0
  318. metadata +409 -0
@@ -0,0 +1,2 @@
1
+ files = Dir[File.dirname(__FILE__) + '/**/*_test.rb']
2
+ files.each { |file| require file }
@@ -0,0 +1,62 @@
1
+ #require 'ruby2ruby'
2
+ #require 'parse_tree'
3
+ #require 'parse_tree_extensions'
4
+ #require 'pp'
5
+
6
+ class PostTranslation < ActiveRecord::Base
7
+ def existing_method ; end
8
+ end
9
+
10
+ class Post < ActiveRecord::Base
11
+ translates :subject, :content
12
+ validates_presence_of :subject
13
+ named_scope :foobar, :conditions => { :title => "foobar" }
14
+ end
15
+
16
+ class Blog < ActiveRecord::Base
17
+ has_many :posts, :order => 'id ASC'
18
+ end
19
+
20
+ class Parent < ActiveRecord::Base
21
+ end
22
+
23
+ class EarlyChild < Parent
24
+ end
25
+
26
+ class Parent < ActiveRecord::Base
27
+ translates :content
28
+ end
29
+
30
+ class Child < Parent
31
+ end
32
+
33
+ class Comment < ActiveRecord::Base
34
+ validates_presence_of :content
35
+ belongs_to :post
36
+ end
37
+
38
+ class TranslatedComment < Comment
39
+ translates :content
40
+ end
41
+
42
+ class UltraLongModelNameWithoutProper < ActiveRecord::Base
43
+ translates :subject, :content
44
+ validates_presence_of :subject
45
+ end
46
+
47
+ class Reloader < Parent
48
+ after_create :do_reload
49
+
50
+ def do_reload
51
+ reload
52
+ end
53
+ end
54
+
55
+ class Validatee < ActiveRecord::Base
56
+ translates :string
57
+ end
58
+
59
+ class User < ActiveRecord::Base
60
+ translates :name
61
+ validates_presence_of :name, :email
62
+ end
@@ -0,0 +1,11 @@
1
+ # This schema creates tables without columns for the translated fields
2
+ ActiveRecord::Schema.define do
3
+ create_table :blogs, :force => true do |t|
4
+ t.string :name
5
+ end
6
+
7
+ create_table :posts, :force => true do |t|
8
+ t.references :blog
9
+ end
10
+ end
11
+
@@ -0,0 +1,55 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :blogs, :force => true do |t|
3
+ t.string :description
4
+ end
5
+
6
+ create_table :posts, :force => true do |t|
7
+ t.references :blog
8
+ end
9
+
10
+ create_table :post_translations, :force => true do |t|
11
+ t.string :locale
12
+ t.references :post
13
+ t.string :subject
14
+ t.text :content
15
+ end
16
+
17
+ create_table :parents, :force => true do |t|
18
+ end
19
+
20
+ create_table :parent_translations, :force => true do |t|
21
+ t.string :locale
22
+ t.references :parent
23
+ t.text :content
24
+ t.string :type
25
+ end
26
+
27
+ create_table :comments, :force => true do |t|
28
+ t.references :post
29
+ end
30
+
31
+ create_table :comment_translations, :force => true do |t|
32
+ t.string :locale
33
+ t.references :comment
34
+ t.string :subject
35
+ t.text :content
36
+ end
37
+
38
+ create_table :validatees, :force => true do |t|
39
+ end
40
+
41
+ create_table :validatee_translations, :force => true do |t|
42
+ t.string :locale
43
+ t.references :validatee
44
+ t.string :string
45
+ end
46
+
47
+ create_table :users, :force => true do |t|
48
+ t.string :email
49
+ end
50
+
51
+ create_table :users_translations, :force => true do |t|
52
+ t.references :user
53
+ t.string :name
54
+ end
55
+ end
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'i18n/missing_translations_log_handler'
3
+
4
+ class MissingTranslationsTest < ActiveSupport::TestCase
5
+ test "defines I18n.missing_translations_logger accessor" do
6
+ assert I18n.respond_to?(:missing_translations_logger)
7
+ end
8
+
9
+ test "defines I18n.missing_translations_logger= writer" do
10
+ assert I18n.respond_to?(:missing_translations_logger=)
11
+ end
12
+ end
13
+
14
+ class TestLogger < String
15
+ def warn(msg) self.concat msg; end
16
+ end
17
+
18
+ class LogMissingTranslationsTest < ActiveSupport::TestCase
19
+ def setup
20
+ @locale, @key, @options = :en, :foo, {}
21
+ @exception = I18n::MissingTranslationData.new(@locale, @key, @options)
22
+
23
+ @logger = TestLogger.new
24
+ I18n.missing_translations_logger = @logger
25
+ end
26
+
27
+ test "still returns the exception message for MissingTranslationData exceptions" do
28
+ result = I18n.send(:missing_translations_log_handler, @exception, @locale, @key, @options)
29
+ assert_equal 'translation missing: en, foo', result
30
+ end
31
+
32
+ test "logs the missing translation to I18n.missing_translations_logger" do
33
+ I18n.send(:missing_translations_log_handler, @exception, @locale, @key, @options)
34
+ assert_equal 'translation missing: en, foo', @logger
35
+ end
36
+ end
@@ -0,0 +1,76 @@
1
+ $LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
2
+
3
+ require 'rubygems'
4
+ require 'test/unit'
5
+ require 'active_record'
6
+ require 'active_support'
7
+ require 'active_support/test_case'
8
+ require 'mocha'
9
+ require 'globalize'
10
+ # require 'validation_reflection'
11
+
12
+ config = { :adapter => 'sqlite3', :database => ':memory:' }
13
+ ActiveRecord::Base.establish_connection(config)
14
+
15
+ class ActiveSupport::TestCase
16
+ def reset_db!(schema_path = nil)
17
+ schema_path ||= File.expand_path(File.dirname(__FILE__) + '/data/schema.rb')
18
+ ActiveRecord::Migration.verbose = false
19
+ ActiveRecord::Base.silence { load(schema_path) }
20
+ end
21
+
22
+ def assert_member(item, array)
23
+ assert_block "Item #{item} is not in array #{array}" do
24
+ array.member?(item)
25
+ end
26
+ end
27
+
28
+ def assert_belongs_to(model, associated)
29
+ assert model.reflect_on_all_associations(:belongs_to).detect { |association|
30
+ association.name.to_s == associated.to_s
31
+ }
32
+ end
33
+
34
+ def assert_has_many(model, associated)
35
+ assert model.reflect_on_all_associations(:has_many).detect { |association|
36
+ association.name.to_s == associated.to_s
37
+ }
38
+ end
39
+ end
40
+
41
+ module ActiveRecord
42
+ module ConnectionAdapters
43
+ class AbstractAdapter
44
+ def index_exists?(table_name, column_name)
45
+ indexes(table_name).any? { |index| index.name == index_name(table_name, column_name) }
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ # module ActiveRecord
52
+ # class BaseWithoutTable < Base
53
+ # self.abstract_class = true
54
+ #
55
+ # def create_or_update
56
+ # errors.empty?
57
+ # end
58
+ #
59
+ # class << self
60
+ # def columns()
61
+ # @columns ||= []
62
+ # end
63
+ #
64
+ # def column(name, sql_type = nil, default = nil, null = true)
65
+ # columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
66
+ # reset_column_information
67
+ # end
68
+ #
69
+ # # Do not reset @columns
70
+ # def reset_column_information
71
+ # read_methods.each { |name| undef_method(name) }
72
+ # @column_names = @columns_hash = @content_columns = @dynamic_methods_hash = @read_methods = nil
73
+ # end
74
+ # end
75
+ # end
76
+ # end
metadata ADDED
@@ -0,0 +1,409 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: radiant-globalize2-extension
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
+ platform: ruby
12
+ authors:
13
+ - Cristi Duma
14
+ - Istvan Hoka
15
+ - Edmund Haselwanter
16
+ - Benny Degezelle
17
+ - Jerrod Blavos
18
+ - "Simo Niemel\xC3\xA4"
19
+ - Jan De Poorter
20
+ autorequire:
21
+ bindir: bin
22
+ cert_chain: []
23
+
24
+ date: 2011-03-29 00:00:00 +02:00
25
+ default_executable:
26
+ dependencies:
27
+ - !ruby/object:Gem::Dependency
28
+ name: radiant
29
+ prerelease: false
30
+ requirement: &id001 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ hash: 57
36
+ segments:
37
+ - 0
38
+ - 9
39
+ - 1
40
+ version: 0.9.1
41
+ type: :runtime
42
+ version_requirements: *id001
43
+ description: This extension allows you to translate your Radiant content
44
+ email: benny@gorilla-webdesign.be
45
+ executables: []
46
+
47
+ extensions: []
48
+
49
+ extra_rdoc_files: []
50
+
51
+ files:
52
+ - Rakefile
53
+ - app/views/admin/shared/_change_locale.html.haml
54
+ - app/views/admin/shared/_change_locale_admin.html.haml
55
+ - app/views/admin/shared/_globalize_td.html.haml
56
+ - app/views/admin/shared/_globalize_th.html.haml
57
+ - config/routes.rb
58
+ - cucumber.yml
59
+ - db/migrate/20090728084238_create_translation_tables.rb
60
+ - db/migrate/20090728114627_populate_translations.rb
61
+ - db/migrate/20090729085422_remove_translated_attributes.rb
62
+ - features/globalize_layouts.feature
63
+ - features/globalize_pages.feature
64
+ - features/globalize_snippets.feature
65
+ - features/step_definitions/admin_steps.rb
66
+ - features/step_definitions/webrat_steps.rb
67
+ - features/support/env.rb
68
+ - features/support/paths.rb
69
+ - globalize2_extension.rb
70
+ - lib/globalize2/compatibility/archive/archive_page_extensions.rb
71
+ - lib/globalize2/compatibility/copy_move/copy_move_model_extensions.rb
72
+ - lib/globalize2/compatibility/paginate/globalize_tags.rb
73
+ - lib/globalize2/compatibility/paginate/page_extensions.rb
74
+ - lib/globalize2/compatibility/vhost/page_extensions.rb
75
+ - lib/globalize2/form_builder_extensions.rb
76
+ - lib/globalize2/globalize_tags.rb
77
+ - lib/globalize2/globalized_fields_controller_extension.rb
78
+ - lib/globalize2/page_extensions.rb
79
+ - lib/globalize2/page_part_extensions.rb
80
+ - lib/globalize2/pages_controller_extensions.rb
81
+ - lib/globalize2/site_controller_extensions.rb
82
+ - lib/tasks/globalize2_extension_tasks.rake
83
+ - public/images/admin/ad.gif
84
+ - public/images/admin/ae.gif
85
+ - public/images/admin/af.gif
86
+ - public/images/admin/ag.gif
87
+ - public/images/admin/ai.gif
88
+ - public/images/admin/al.gif
89
+ - public/images/admin/am.gif
90
+ - public/images/admin/an.gif
91
+ - public/images/admin/ao.gif
92
+ - public/images/admin/ar.gif
93
+ - public/images/admin/as.gif
94
+ - public/images/admin/at.gif
95
+ - public/images/admin/au.gif
96
+ - public/images/admin/aw.gif
97
+ - public/images/admin/ax.gif
98
+ - public/images/admin/az.gif
99
+ - public/images/admin/ba.gif
100
+ - public/images/admin/bb.gif
101
+ - public/images/admin/bd.gif
102
+ - public/images/admin/be.gif
103
+ - public/images/admin/bf.gif
104
+ - public/images/admin/bg.gif
105
+ - public/images/admin/bh.gif
106
+ - public/images/admin/bi.gif
107
+ - public/images/admin/bj.gif
108
+ - public/images/admin/bm.gif
109
+ - public/images/admin/bn.gif
110
+ - public/images/admin/bo.gif
111
+ - public/images/admin/br.gif
112
+ - public/images/admin/bs.gif
113
+ - public/images/admin/bt.gif
114
+ - public/images/admin/bv.gif
115
+ - public/images/admin/bw.gif
116
+ - public/images/admin/by.gif
117
+ - public/images/admin/bz.gif
118
+ - public/images/admin/ca.gif
119
+ - public/images/admin/catalonia.gif
120
+ - public/images/admin/cc.gif
121
+ - public/images/admin/cd.gif
122
+ - public/images/admin/cf.gif
123
+ - public/images/admin/cg.gif
124
+ - public/images/admin/ch.gif
125
+ - public/images/admin/ci.gif
126
+ - public/images/admin/ck.gif
127
+ - public/images/admin/cl.gif
128
+ - public/images/admin/cm.gif
129
+ - public/images/admin/cn.gif
130
+ - public/images/admin/co.gif
131
+ - public/images/admin/cr.gif
132
+ - public/images/admin/cs.gif
133
+ - public/images/admin/cu.gif
134
+ - public/images/admin/cv.gif
135
+ - public/images/admin/cx.gif
136
+ - public/images/admin/cy.gif
137
+ - public/images/admin/cz.gif
138
+ - public/images/admin/de.gif
139
+ - public/images/admin/dj.gif
140
+ - public/images/admin/dk.gif
141
+ - public/images/admin/dm.gif
142
+ - public/images/admin/do.gif
143
+ - public/images/admin/dz.gif
144
+ - public/images/admin/ec.gif
145
+ - public/images/admin/ee.gif
146
+ - public/images/admin/eg.gif
147
+ - public/images/admin/eh.gif
148
+ - public/images/admin/en.gif
149
+ - public/images/admin/england.gif
150
+ - public/images/admin/er.gif
151
+ - public/images/admin/es.gif
152
+ - public/images/admin/et.gif
153
+ - public/images/admin/europeanunion.gif
154
+ - public/images/admin/fam.gif
155
+ - public/images/admin/fi.gif
156
+ - public/images/admin/fj.gif
157
+ - public/images/admin/fk.gif
158
+ - public/images/admin/fm.gif
159
+ - public/images/admin/fo.gif
160
+ - public/images/admin/fr.gif
161
+ - public/images/admin/ga.gif
162
+ - public/images/admin/gb.gif
163
+ - public/images/admin/gd.gif
164
+ - public/images/admin/ge.gif
165
+ - public/images/admin/gf.gif
166
+ - public/images/admin/gh.gif
167
+ - public/images/admin/gi.gif
168
+ - public/images/admin/gl.gif
169
+ - public/images/admin/gm.gif
170
+ - public/images/admin/gn.gif
171
+ - public/images/admin/gp.gif
172
+ - public/images/admin/gq.gif
173
+ - public/images/admin/gr.gif
174
+ - public/images/admin/gs.gif
175
+ - public/images/admin/gt.gif
176
+ - public/images/admin/gu.gif
177
+ - public/images/admin/gw.gif
178
+ - public/images/admin/gy.gif
179
+ - public/images/admin/hk.gif
180
+ - public/images/admin/hm.gif
181
+ - public/images/admin/hn.gif
182
+ - public/images/admin/hr.gif
183
+ - public/images/admin/ht.gif
184
+ - public/images/admin/hu.gif
185
+ - public/images/admin/id.gif
186
+ - public/images/admin/ie.gif
187
+ - public/images/admin/il.gif
188
+ - public/images/admin/in.gif
189
+ - public/images/admin/io.gif
190
+ - public/images/admin/iq.gif
191
+ - public/images/admin/ir.gif
192
+ - public/images/admin/is.gif
193
+ - public/images/admin/it.gif
194
+ - public/images/admin/jm.gif
195
+ - public/images/admin/jo.gif
196
+ - public/images/admin/jp.gif
197
+ - public/images/admin/ke.gif
198
+ - public/images/admin/kg.gif
199
+ - public/images/admin/kh.gif
200
+ - public/images/admin/ki.gif
201
+ - public/images/admin/km.gif
202
+ - public/images/admin/kn.gif
203
+ - public/images/admin/kp.gif
204
+ - public/images/admin/kr.gif
205
+ - public/images/admin/kw.gif
206
+ - public/images/admin/ky.gif
207
+ - public/images/admin/kz.gif
208
+ - public/images/admin/la.gif
209
+ - public/images/admin/lb.gif
210
+ - public/images/admin/lc.gif
211
+ - public/images/admin/li.gif
212
+ - public/images/admin/lk.gif
213
+ - public/images/admin/lr.gif
214
+ - public/images/admin/ls.gif
215
+ - public/images/admin/lt.gif
216
+ - public/images/admin/lu.gif
217
+ - public/images/admin/lv.gif
218
+ - public/images/admin/ly.gif
219
+ - public/images/admin/ma.gif
220
+ - public/images/admin/mc.gif
221
+ - public/images/admin/md.gif
222
+ - public/images/admin/me.gif
223
+ - public/images/admin/mg.gif
224
+ - public/images/admin/mh.gif
225
+ - public/images/admin/mk.gif
226
+ - public/images/admin/ml.gif
227
+ - public/images/admin/mm.gif
228
+ - public/images/admin/mn.gif
229
+ - public/images/admin/mo.gif
230
+ - public/images/admin/mp.gif
231
+ - public/images/admin/mq.gif
232
+ - public/images/admin/mr.gif
233
+ - public/images/admin/ms.gif
234
+ - public/images/admin/mt.gif
235
+ - public/images/admin/mu.gif
236
+ - public/images/admin/mv.gif
237
+ - public/images/admin/mw.gif
238
+ - public/images/admin/mx.gif
239
+ - public/images/admin/my.gif
240
+ - public/images/admin/mz.gif
241
+ - public/images/admin/na.gif
242
+ - public/images/admin/nc.gif
243
+ - public/images/admin/ne.gif
244
+ - public/images/admin/nf.gif
245
+ - public/images/admin/ng.gif
246
+ - public/images/admin/ni.gif
247
+ - public/images/admin/nl.gif
248
+ - public/images/admin/no.gif
249
+ - public/images/admin/np.gif
250
+ - public/images/admin/nr.gif
251
+ - public/images/admin/nu.gif
252
+ - public/images/admin/nz.gif
253
+ - public/images/admin/om.gif
254
+ - public/images/admin/pa.gif
255
+ - public/images/admin/pe.gif
256
+ - public/images/admin/pf.gif
257
+ - public/images/admin/pg.gif
258
+ - public/images/admin/ph.gif
259
+ - public/images/admin/pk.gif
260
+ - public/images/admin/pl.gif
261
+ - public/images/admin/pm.gif
262
+ - public/images/admin/pn.gif
263
+ - public/images/admin/pr.gif
264
+ - public/images/admin/ps.gif
265
+ - public/images/admin/pt.gif
266
+ - public/images/admin/pw.gif
267
+ - public/images/admin/py.gif
268
+ - public/images/admin/qa.gif
269
+ - public/images/admin/re.gif
270
+ - public/images/admin/ro.gif
271
+ - public/images/admin/rs.gif
272
+ - public/images/admin/ru.gif
273
+ - public/images/admin/rw.gif
274
+ - public/images/admin/sa.gif
275
+ - public/images/admin/sb.gif
276
+ - public/images/admin/sc.gif
277
+ - public/images/admin/scotland.gif
278
+ - public/images/admin/sd.gif
279
+ - public/images/admin/se.gif
280
+ - public/images/admin/sg.gif
281
+ - public/images/admin/sh.gif
282
+ - public/images/admin/si.gif
283
+ - public/images/admin/sj.gif
284
+ - public/images/admin/sk.gif
285
+ - public/images/admin/sl.gif
286
+ - public/images/admin/sm.gif
287
+ - public/images/admin/sn.gif
288
+ - public/images/admin/so.gif
289
+ - public/images/admin/sr.gif
290
+ - public/images/admin/st.gif
291
+ - public/images/admin/sv.gif
292
+ - public/images/admin/sy.gif
293
+ - public/images/admin/sz.gif
294
+ - public/images/admin/tc.gif
295
+ - public/images/admin/td.gif
296
+ - public/images/admin/tf.gif
297
+ - public/images/admin/tg.gif
298
+ - public/images/admin/th.gif
299
+ - public/images/admin/tj.gif
300
+ - public/images/admin/tk.gif
301
+ - public/images/admin/tl.gif
302
+ - public/images/admin/tm.gif
303
+ - public/images/admin/tn.gif
304
+ - public/images/admin/to.gif
305
+ - public/images/admin/tr.gif
306
+ - public/images/admin/tt.gif
307
+ - public/images/admin/tv.gif
308
+ - public/images/admin/tw.gif
309
+ - public/images/admin/tz.gif
310
+ - public/images/admin/ua.gif
311
+ - public/images/admin/ug.gif
312
+ - public/images/admin/um.gif
313
+ - public/images/admin/us.gif
314
+ - public/images/admin/uy.gif
315
+ - public/images/admin/uz.gif
316
+ - public/images/admin/va.gif
317
+ - public/images/admin/vc.gif
318
+ - public/images/admin/ve.gif
319
+ - public/images/admin/vg.gif
320
+ - public/images/admin/vi.gif
321
+ - public/images/admin/vn.gif
322
+ - public/images/admin/vu.gif
323
+ - public/images/admin/wales.gif
324
+ - public/images/admin/wf.gif
325
+ - public/images/admin/ws.gif
326
+ - public/images/admin/ye.gif
327
+ - public/images/admin/yt.gif
328
+ - public/images/admin/za.gif
329
+ - public/images/admin/zm.gif
330
+ - public/images/admin/zw.gif
331
+ - public/stylesheets/sass/admin/globalize2.sass
332
+ - readme.md
333
+ - spec/controllers/admin/pages_controller_spec.rb
334
+ - spec/controllers/site_controller_spec.rb
335
+ - spec/factories.rb
336
+ - spec/models/globalize_tags_spec.rb
337
+ - spec/models/page_spec.rb
338
+ - spec/spec.opts
339
+ - spec/spec_helper.rb
340
+ - vendor/plugins/globalize2/.gitignore
341
+ - vendor/plugins/globalize2/LICENSE
342
+ - vendor/plugins/globalize2/README.textile
343
+ - vendor/plugins/globalize2/Rakefile
344
+ - vendor/plugins/globalize2/VERSION
345
+ - vendor/plugins/globalize2/generators/db_backend.rb
346
+ - vendor/plugins/globalize2/generators/templates/db_backend_migration.rb
347
+ - vendor/plugins/globalize2/globalize2.gemspec
348
+ - vendor/plugins/globalize2/init.rb
349
+ - vendor/plugins/globalize2/lib/globalize.rb
350
+ - vendor/plugins/globalize2/lib/globalize/active_record.rb
351
+ - vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb
352
+ - vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb
353
+ - vendor/plugins/globalize2/lib/globalize/active_record/migration.rb
354
+ - vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb
355
+ - vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb
356
+ - vendor/plugins/globalize2/test/active_record/fallbacks_test.rb
357
+ - vendor/plugins/globalize2/test/active_record/migration_test.rb
358
+ - vendor/plugins/globalize2/test/active_record/sti_translated_test.rb
359
+ - vendor/plugins/globalize2/test/active_record/translates_test.rb
360
+ - vendor/plugins/globalize2/test/active_record/translation_class_test.rb
361
+ - vendor/plugins/globalize2/test/active_record/validation_tests.rb
362
+ - vendor/plugins/globalize2/test/active_record_test.rb
363
+ - vendor/plugins/globalize2/test/all.rb
364
+ - vendor/plugins/globalize2/test/data/models.rb
365
+ - vendor/plugins/globalize2/test/data/no_globalize_schema.rb
366
+ - vendor/plugins/globalize2/test/data/schema.rb
367
+ - vendor/plugins/globalize2/test/i18n/missing_translations_test.rb
368
+ - vendor/plugins/globalize2/test/test_helper.rb
369
+ has_rdoc: true
370
+ homepage: https://github.com/jomz/radiant-globalize2-extension
371
+ licenses: []
372
+
373
+ post_install_message:
374
+ rdoc_options: []
375
+
376
+ require_paths:
377
+ - lib
378
+ required_ruby_version: !ruby/object:Gem::Requirement
379
+ none: false
380
+ requirements:
381
+ - - ">="
382
+ - !ruby/object:Gem::Version
383
+ hash: 3
384
+ segments:
385
+ - 0
386
+ version: "0"
387
+ required_rubygems_version: !ruby/object:Gem::Requirement
388
+ none: false
389
+ requirements:
390
+ - - ">="
391
+ - !ruby/object:Gem::Version
392
+ hash: 3
393
+ segments:
394
+ - 0
395
+ version: "0"
396
+ requirements: []
397
+
398
+ rubyforge_project:
399
+ rubygems_version: 1.3.7
400
+ signing_key:
401
+ specification_version: 3
402
+ summary: Globalize2 extension for Radiant CMS
403
+ test_files:
404
+ - spec/controllers/admin/pages_controller_spec.rb
405
+ - spec/controllers/site_controller_spec.rb
406
+ - spec/factories.rb
407
+ - spec/models/globalize_tags_spec.rb
408
+ - spec/models/page_spec.rb
409
+ - spec/spec_helper.rb