kete_translatable_content 0.1.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.
Files changed (74) hide show
  1. data/.document +5 -0
  2. data/.gitignore +23 -0
  3. data/LICENSE +295 -0
  4. data/README.rdoc +80 -0
  5. data/README.rdoc.orig +72 -0
  6. data/Rakefile +53 -0
  7. data/VERSION +1 -0
  8. data/app/views/active_scaffold_overrides/_show.html.erb +8 -0
  9. data/app/views/active_scaffold_overrides/_update_form.html.erb +8 -0
  10. data/app/views/active_scaffold_overrides/list.html.erb +5 -0
  11. data/app/views/baskets/_additional_footer_content_fields.html.erb +33 -0
  12. data/app/views/baskets/_rss_feed.html.erb +42 -0
  13. data/app/views/baskets/_side_bar_html.html.erb +19 -0
  14. data/app/views/configure/section.rhtml +36 -0
  15. data/app/views/layouts/translations.html.erb +1 -0
  16. data/app/views/topics/_content_wrapper_start.rhtml +26 -0
  17. data/app/views/translations/_form.html.erb +54 -0
  18. data/app/views/translations/_translatable_value.html.erb +36 -0
  19. data/app/views/translations/_translation_field_input.html.erb +61 -0
  20. data/app/views/translations/show.html.erb +12 -0
  21. data/app/views/translations/versioned_edit.html.erb +9 -0
  22. data/config/locales/en.yml +51 -0
  23. data/config/routes.rb +11 -0
  24. data/config/translatables.yml +65 -0
  25. data/generators/kete_translatable_content_migration/USAGE +2 -0
  26. data/generators/kete_translatable_content_migration/kete_translatable_content_migration_generator.rb +7 -0
  27. data/generators/kete_translatable_content_migration/templates/migration.rb +82 -0
  28. data/generators/kete_translatable_content_tests/USAGE +2 -0
  29. data/generators/kete_translatable_content_tests/kete_translatable_content_tests_generator.rb +38 -0
  30. data/generators/kete_translatable_content_tests/templates/configure_kete_content_translation_controller_and_routes_test.rb +48 -0
  31. data/generators/kete_translatable_content_tests/templates/configure_kete_content_translation_test.rb +47 -0
  32. data/generators/kete_translatable_content_tests/templates/kete_translatable_content_helper_test.rb +19 -0
  33. data/generators/kete_translatable_content_tests/templates/kete_translatable_content_migration_test.rb +45 -0
  34. data/generators/kete_translatable_content_tests/templates/kete_translatable_content_oai_dc_helpers_test.rb +66 -0
  35. data/generators/kete_translatable_content_tests/templates/kete_translatable_content_translations_test.rb +23 -0
  36. data/generators/kete_translatable_content_tests/templates/kete_translations_test.rb +57 -0
  37. data/generators/kete_translatable_content_tests/templates/mongo_factories.rb +6 -0
  38. data/generators/kete_translatable_content_tests/templates/mongo_test_helper.rb +37 -0
  39. data/generators/kete_translatable_content_tests/templates/mongo_translatable_test.rb +262 -0
  40. data/lib/kete_translatable_content.rb +54 -0
  41. data/lib/kete_translatable_content/extensions/controllers/application_controller.rb +202 -0
  42. data/lib/kete_translatable_content/extensions/controllers/audio_controller.rb +7 -0
  43. data/lib/kete_translatable_content/extensions/controllers/baskets_controller.rb +3 -0
  44. data/lib/kete_translatable_content/extensions/controllers/documents_controller.rb +7 -0
  45. data/lib/kete_translatable_content/extensions/controllers/images_controller.rb +7 -0
  46. data/lib/kete_translatable_content/extensions/controllers/topics_controller.rb +7 -0
  47. data/lib/kete_translatable_content/extensions/controllers/translations_controller.rb +209 -0
  48. data/lib/kete_translatable_content/extensions/controllers/video_controller.rb +7 -0
  49. data/lib/kete_translatable_content/extensions/controllers/web_links_controller.rb +7 -0
  50. data/lib/kete_translatable_content/extensions/extended_content_translation.rb +54 -0
  51. data/lib/kete_translatable_content/extensions/helpers/application_helper.rb +156 -0
  52. data/lib/kete_translatable_content/extensions/helpers/extended_fields_helper.rb +17 -0
  53. data/lib/kete_translatable_content/extensions/helpers/search_helper.rb +5 -0
  54. data/lib/kete_translatable_content/extensions/helpers/translations_helper.rb +72 -0
  55. data/lib/kete_translatable_content/extensions/models/audio_recording.rb +12 -0
  56. data/lib/kete_translatable_content/extensions/models/basket.rb +34 -0
  57. data/lib/kete_translatable_content/extensions/models/comment.rb +12 -0
  58. data/lib/kete_translatable_content/extensions/models/document.rb +12 -0
  59. data/lib/kete_translatable_content/extensions/models/still_image.rb +12 -0
  60. data/lib/kete_translatable_content/extensions/models/system_setting.rb +13 -0
  61. data/lib/kete_translatable_content/extensions/models/tag.rb +37 -0
  62. data/lib/kete_translatable_content/extensions/models/topic.rb +12 -0
  63. data/lib/kete_translatable_content/extensions/models/user.rb +36 -0
  64. data/lib/kete_translatable_content/extensions/models/video.rb +12 -0
  65. data/lib/kete_translatable_content/extensions/models/web_link.rb +12 -0
  66. data/lib/kete_translatable_content/extensions/oai_dc_helpers_overrides.rb +99 -0
  67. data/lib/kete_translatable_content/extensions/tagging_controller_overrides.rb +21 -0
  68. data/lib/kete_translatable_content/extensions/tagging_overrides.rb +27 -0
  69. data/lib/kete_translatable_content/extensions/tinymce_controller_valid_action_override.rb +16 -0
  70. data/lib/kete_translatable_content/extensions/translation_from_version.rb +105 -0
  71. data/lib/kete_translatable_content/kete.rb +25 -0
  72. data/lib/kete_translatable_content/overwrites/oai_dc_helpers_test.rb +6 -0
  73. data/rails/init.rb +110 -0
  74. metadata +156 -0
@@ -0,0 +1,27 @@
1
+ # Redefines public_tags and private_tags to translate the returned tag objects
2
+ # Make sure these are only done when the class they are being included into already responds
3
+ # to public_tags, otherwise it'll end up trying to alias a method that doesn't exist
4
+
5
+ module TaggingOverrides
6
+ unless included_modules.include? TaggingOverrides
7
+ def self.included(klass)
8
+ klass.class_eval do
9
+
10
+ if self.new.respond_to?(:public_tags)
11
+ alias_method(:public_tags_orig, :public_tags) unless self.new.respond_to?(:public_tags_orig)
12
+ def public_tags
13
+ Tag.swap_in_translation_for_multiple(public_tags_orig)
14
+ end
15
+ end
16
+
17
+ if self.new.respond_to?(:private_tags)
18
+ alias_method(:private_tags_orig, :private_tags) unless self.new.respond_to?(:private_tags_orig)
19
+ def private_tags
20
+ Tag.swap_in_translation_for_multiple(private_tags_orig)
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ # this is necessary for translate ajax lighbox to be able to use tinymce
2
+ # for description attribute
3
+ # for ITEM_CLASSES
4
+ module TinymceControllerValidActionOverride
5
+ unless included_modules.include? TinymceControllerValidActionOverride
6
+ def self.included(klass)
7
+ def add_show_as_uses_tiny_mce
8
+ instance_variable_set(:@uses_tiny_mce, true)
9
+ end
10
+
11
+ private :add_show_as_uses_tiny_mce
12
+
13
+ klass.send :before_filter, :add_show_as_uses_tiny_mce, :only => [:show]
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,105 @@
1
+ # For classes where their ::Version subclass
2
+ # is what has mongo_translatable declaration is on
3
+ module TranslationFromVersion
4
+ unless included_modules.include? TranslationFromVersion
5
+ def locales_of_versions
6
+ @locales_of_versions ||= versions.find(:all,
7
+ :select => 'distinct locale').collect(&:locale)
8
+ end
9
+
10
+ # because of versioning, we may have an old version that is the same locale
11
+ # as original, modified to handle this case
12
+ def available_in_these_locales
13
+ locales = translations_locales.collect(&:locale) +
14
+ locales_of_versions
15
+
16
+ # we only need one mention of the locale
17
+ locales.uniq!
18
+
19
+ # get rid of any extra original_locale mentions
20
+ locales.delete(original_locale)
21
+
22
+ [original_locale] + locales
23
+ end
24
+
25
+ # sometimes all you need is only the locales of translations
26
+ # because of versioning we need to split out duplicates
27
+ def translations_locales
28
+ translations = self.class::Translation.all(self.class.as_foreign_key_sym => id,
29
+ :select => 'locale')
30
+ uniq_translations = []
31
+ translations.each do |trans|
32
+ uniq_translations << trans unless uniq_translations.collect(&:locale).include?(trans.locale)
33
+ end
34
+ uniq_translations
35
+ end
36
+
37
+ # Get the current translation or the latest
38
+ def translation_for(locale)
39
+ translation = self.class::Translation.first(self.class.as_foreign_key_sym => id,
40
+ :locale => locale,
41
+ :version => self.version.to_s)
42
+
43
+ # none available for the specified version, get latest
44
+ translation ||= self.class::Translation.first(self.class.as_foreign_key_sym => id,
45
+ :locale => locale)
46
+
47
+ # none available for locale at all
48
+ # see if there is an earlier version of the item
49
+ # in the locale specified
50
+ # find version with original_locale that matches
51
+ # revert_to version and return that
52
+ unless translation
53
+ version = versions.find_by_locale(locale)
54
+ if version.present?
55
+ # if attribute is an extended field
56
+ # doing a direct call on the version won't work
57
+ # so instantiating a tempory dummy item
58
+ dummy_attributes = version.attributes
59
+ dummy_attributes.delete(self.class.as_foreign_key_sym.to_s)
60
+ dummy_attributes.delete('id')
61
+ dummy = self.class.new(dummy_attributes)
62
+
63
+ translatable_attributes_from_version = Hash.new
64
+ translatable_attributes.each do |attr|
65
+ translatable_attributes_from_version[attr] = dummy.send(attr)
66
+ end
67
+
68
+ dummy = nil
69
+
70
+ translatable_attributes_from_version[:locale] = locale
71
+
72
+ translation = self.class::Translation.new(translatable_attributes_from_version)
73
+ end
74
+ end
75
+
76
+ translation
77
+ end
78
+
79
+ def translate(options = {})
80
+ translation_locale = options[:locale] || I18n.locale
81
+
82
+ @translation = self.class::Translation.new({
83
+ :locale => translation_locale,
84
+ :translatable_locale => self.locale, # save original locale
85
+ self.class.as_foreign_key_sym => id,
86
+ :version => self.version
87
+ })
88
+
89
+ if translation_locale.to_s == original_locale.to_s
90
+ # prevent a translation to be added for original_locale
91
+ @translation.errors.replace(:locale,
92
+ "Cannot add translation the same as the original locale.")
93
+ else
94
+ # work through self and replace attributes
95
+ # with the passed in translations for defined translatable_attributes
96
+ translatable_attributes.each do |translated_attribute|
97
+ translated_value = options[translated_attribute]
98
+ @translation.send("#{translated_attribute.to_sym}=", translated_value) if translated_value.present?
99
+ end
100
+ end
101
+
102
+ @translation
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,25 @@
1
+ # overriding the system setting methods so we can pull translated versions out
2
+ # for translatable ones
3
+ class Kete
4
+ class << self
5
+ def localized_value_from(setting_id)
6
+ return nil unless I18n.default_locale != I18n.locale
7
+
8
+ SystemSetting.find(setting_id).constant_value
9
+ end
10
+
11
+ def reader_proc_for(setting)
12
+ method_name = setting.constant_name.downcase
13
+
14
+ Proc.new {
15
+ if setting.respond_to?(:takes_translations?) && setting.takes_translations?
16
+ localized_value = localized_value_from(setting.id)
17
+ return localized_value if localized_value
18
+ end
19
+
20
+ method_name = method_name.sub('?', '') if method_name.include?('?')
21
+ class_variable_get('@@' + method_name)
22
+ }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,6 @@
1
+ # overwrites for test/unit/oai_dc_helpers_test.rb
2
+ HasValue.oai_dc_helpers_title_xml = "\"\#\{if zoom_class == 'Comment' then '<dc:title>Item</dc:title>' else '<dc:title xml:lang=\"' + I18n.default_locale.to_s + '\"' + '>Item</dc:title>' end\}\""
3
+ HasValue.oai_dc_helpers_description_xml_when_only_xml = "\"\#\{if zoom_class == 'Comment' then '<dc:description><![CDATA[Description]]></dc:description>' else '<dc:description xml:lang=\"' + I18n.default_locale.to_s + '\"' + '><![CDATA[Description]]></dc:description>' end\}\""
4
+ HasValue.oai_dc_helpers_short_summary_xml_when_only_xml = "\"<dc:description xml:lang=\"\#\{I18n.default_locale\}\"><![CDATA[Short Summary]]></dc:description>\""
5
+ HasValue.oai_dc_helpers_tags_xml = "\"<dc:subject xml:lang=\"\#\{I18n.default_locale\}\"><![CDATA[tag]]></dc:subject>\""
6
+
data/rails/init.rb ADDED
@@ -0,0 +1,110 @@
1
+ require 'mongo_translatable'
2
+ require 'kete_translatable_content'
3
+ require 'kete_translatable_content/extensions/extended_content_translation'
4
+ require 'kete_translatable_content/extensions/translation_from_version'
5
+ require "#{Rails.root}/test/has_value.rb"
6
+
7
+ config.to_prepare do
8
+
9
+ # In development/production, we want to only setup stuff if IS_CONFIGURED is true
10
+ # In test mode however, we always want to have it, since IS_CONFIGURED won't be true
11
+ # at this stage, but it will be changed to true after Rails initializes.
12
+ if (IS_CONFIGURED || Rails.env.test?) && kete_translatable_content_ready?
13
+
14
+ Kete.translatables.each do |name, options|
15
+ args = [:mongo_translate, *options['translatable_attributes']]
16
+ args << { :redefine_find => options['redefine_find'],
17
+ :through_version => options["through_version"]}
18
+
19
+ class_name = name.camelize
20
+ klass = class_name.constantize
21
+ klass.send(*args)
22
+
23
+ trans_class_name = class_name + "::Translation"
24
+ trans_klass = trans_class_name.constantize
25
+
26
+ if options["through_version"]
27
+ klass.send :include, TranslationFromVersion
28
+ trans_klass.send :update_keys_if_necessary_with, [:version]
29
+
30
+ trans_klass.ensure_index([[trans_klass.translatable_class.as_foreign_key_sym,
31
+ Mongo::ASCENDING],
32
+ [:version, Mongo::ASCENDING],
33
+ [:locale, Mongo::ASCENDING]],
34
+ :background => true,
35
+ :unique => true)
36
+ else
37
+
38
+ trans_klass.ensure_index([[trans_klass.translatable_class.as_foreign_key_sym,
39
+ Mongo::ASCENDING],
40
+ [:locale, Mongo::ASCENDING]],
41
+ :background => true,
42
+ :unique => true)
43
+
44
+ end
45
+ end
46
+
47
+ # precedence over a plugin or gem's (i.e. an engine's) app/views
48
+ # this is the way to go in most cases,
49
+ # but in our case we want to override the app's view.
50
+ # so we pop off our gem's app/views directory and put it at the front
51
+ kete_translatable_content_views_dir = File.join(directory, 'app/views')
52
+ # drop it from it's existing location if it exists
53
+ ActionController::Base.view_paths.delete kete_translatable_content_views_dir
54
+ # add it to the front of array
55
+ ActionController::Base.view_paths.unshift kete_translatable_content_views_dir
56
+
57
+ # load our locales
58
+ I18n.load_path += Dir[ File.join(File.dirname(__FILE__), '../config/locales/*.{rb,yml}') ]
59
+
60
+ # override some controllers and helpers to be kete translatable aware
61
+ exts = File.join(File.dirname(__FILE__), '../lib/kete_translatable_content/extensions/{controllers,helpers}/*')
62
+ # use Kernel.load here so that changes to the extensions are reloaded on each request in development
63
+ Dir[exts].each { |ext_path| Kernel.load(ext_path) }
64
+
65
+ # models we extend
66
+ Kete.extensions[:blocks] ||= Hash.new
67
+ Dir[ File.join(File.dirname(__FILE__), '../lib/kete_translatable_content/extensions/models/*') ].each do |ext_path|
68
+ key = File.basename(ext_path, '.rb').to_sym
69
+ Kete.extensions[:blocks][key] ||= Array.new
70
+ Kete.extensions[:blocks][key] << Proc.new { Kernel.load(ext_path) }
71
+ end
72
+
73
+ if Rails.env.test?
74
+ # tests we update with values that reflect this add-on's features
75
+ HasValue.overwrites[:blocks] ||= Hash.new
76
+ Dir[ File.join(File.dirname(__FILE__), '../lib/kete_translatable_content/overwrites/*') ].each do |ext_path|
77
+ key = File.basename(ext_path, '.rb').to_sym
78
+ HasValue.overwrites[:blocks][key] ||= Array.new
79
+ HasValue.overwrites[:blocks][key] << Proc.new { Kernel.load(ext_path) }
80
+ end
81
+ end
82
+
83
+ # extend the Generic Muted Worker to have the expire_locale method
84
+ MethodsForGenericMutedWorker.module_eval do
85
+ def clear_locale_cache(options = {})
86
+ locale_to_clear = options[:locale_to_clear]
87
+ raise unless locale_to_clear
88
+
89
+ # WARNING: this relies on the fact that Kete's current caching scheme is file system based
90
+ # if an option for Memcache or other caching mechanism is used in the future
91
+ # this will need to be updated with logic to figure out correct clearing mechanism
92
+ file_path = "#{Rails.root}/tmp/cache/views/#{Kete.site_name}/#{locale_to_clear}"
93
+ FileUtils.rm_r(file_path, :force => true) if File.exist?(file_path) && File.directory?(file_path)
94
+ end
95
+
96
+ def rebuild_zoom_record_for(options = {})
97
+ item = options[:item]
98
+ raise unless item
99
+
100
+ item.prepare_and_save_to_zoom
101
+ end
102
+ end
103
+ end
104
+ if (IS_CONFIGURED || Rails.env.test?) && kete_translatable_content_ready?
105
+ Kete.translatables.each do |name, options|
106
+ class_name = name.camelize
107
+ class_name.constantize.send :include, ExtendedContentTranslation
108
+ end
109
+ end
110
+ end
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kete_translatable_content
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Walter McGinnis
14
+ - Kieran Pilkington
15
+ - Breccan McLeod-Lundy
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-03-11 00:00:00 +13:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: mongo_translatable
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ hash: 3
32
+ segments:
33
+ - 0
34
+ version: "0"
35
+ type: :development
36
+ version_requirements: *id001
37
+ description: Kete Translatable Content is a gem that is an add-on for Kete web applications that takes advantage of the mongo_translatable gem functionality. As you would expect, you use it to add the ability to translate content in your Kete web site.
38
+ email: walter@katipo.co.nz
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files:
44
+ - LICENSE
45
+ - README.rdoc
46
+ - README.rdoc.orig
47
+ files:
48
+ - .document
49
+ - .gitignore
50
+ - LICENSE
51
+ - README.rdoc
52
+ - Rakefile
53
+ - VERSION
54
+ - app/views/active_scaffold_overrides/_show.html.erb
55
+ - app/views/active_scaffold_overrides/_update_form.html.erb
56
+ - app/views/active_scaffold_overrides/list.html.erb
57
+ - app/views/baskets/_additional_footer_content_fields.html.erb
58
+ - app/views/baskets/_rss_feed.html.erb
59
+ - app/views/baskets/_side_bar_html.html.erb
60
+ - app/views/configure/section.rhtml
61
+ - app/views/layouts/translations.html.erb
62
+ - app/views/topics/_content_wrapper_start.rhtml
63
+ - app/views/translations/_form.html.erb
64
+ - app/views/translations/_translatable_value.html.erb
65
+ - app/views/translations/_translation_field_input.html.erb
66
+ - app/views/translations/show.html.erb
67
+ - app/views/translations/versioned_edit.html.erb
68
+ - config/locales/en.yml
69
+ - config/routes.rb
70
+ - config/translatables.yml
71
+ - generators/kete_translatable_content_migration/USAGE
72
+ - generators/kete_translatable_content_migration/kete_translatable_content_migration_generator.rb
73
+ - generators/kete_translatable_content_migration/templates/migration.rb
74
+ - generators/kete_translatable_content_tests/USAGE
75
+ - generators/kete_translatable_content_tests/kete_translatable_content_tests_generator.rb
76
+ - generators/kete_translatable_content_tests/templates/configure_kete_content_translation_controller_and_routes_test.rb
77
+ - generators/kete_translatable_content_tests/templates/configure_kete_content_translation_test.rb
78
+ - generators/kete_translatable_content_tests/templates/kete_translatable_content_helper_test.rb
79
+ - generators/kete_translatable_content_tests/templates/kete_translatable_content_migration_test.rb
80
+ - generators/kete_translatable_content_tests/templates/kete_translatable_content_oai_dc_helpers_test.rb
81
+ - generators/kete_translatable_content_tests/templates/kete_translatable_content_translations_test.rb
82
+ - generators/kete_translatable_content_tests/templates/kete_translations_test.rb
83
+ - generators/kete_translatable_content_tests/templates/mongo_factories.rb
84
+ - generators/kete_translatable_content_tests/templates/mongo_test_helper.rb
85
+ - generators/kete_translatable_content_tests/templates/mongo_translatable_test.rb
86
+ - lib/kete_translatable_content.rb
87
+ - lib/kete_translatable_content/extensions/controllers/application_controller.rb
88
+ - lib/kete_translatable_content/extensions/controllers/audio_controller.rb
89
+ - lib/kete_translatable_content/extensions/controllers/baskets_controller.rb
90
+ - lib/kete_translatable_content/extensions/controllers/documents_controller.rb
91
+ - lib/kete_translatable_content/extensions/controllers/images_controller.rb
92
+ - lib/kete_translatable_content/extensions/controllers/topics_controller.rb
93
+ - lib/kete_translatable_content/extensions/controllers/translations_controller.rb
94
+ - lib/kete_translatable_content/extensions/controllers/video_controller.rb
95
+ - lib/kete_translatable_content/extensions/controllers/web_links_controller.rb
96
+ - lib/kete_translatable_content/extensions/extended_content_translation.rb
97
+ - lib/kete_translatable_content/extensions/helpers/application_helper.rb
98
+ - lib/kete_translatable_content/extensions/helpers/extended_fields_helper.rb
99
+ - lib/kete_translatable_content/extensions/helpers/search_helper.rb
100
+ - lib/kete_translatable_content/extensions/helpers/translations_helper.rb
101
+ - lib/kete_translatable_content/extensions/models/audio_recording.rb
102
+ - lib/kete_translatable_content/extensions/models/basket.rb
103
+ - lib/kete_translatable_content/extensions/models/comment.rb
104
+ - lib/kete_translatable_content/extensions/models/document.rb
105
+ - lib/kete_translatable_content/extensions/models/still_image.rb
106
+ - lib/kete_translatable_content/extensions/models/system_setting.rb
107
+ - lib/kete_translatable_content/extensions/models/tag.rb
108
+ - lib/kete_translatable_content/extensions/models/topic.rb
109
+ - lib/kete_translatable_content/extensions/models/user.rb
110
+ - lib/kete_translatable_content/extensions/models/video.rb
111
+ - lib/kete_translatable_content/extensions/models/web_link.rb
112
+ - lib/kete_translatable_content/extensions/oai_dc_helpers_overrides.rb
113
+ - lib/kete_translatable_content/extensions/tagging_controller_overrides.rb
114
+ - lib/kete_translatable_content/extensions/tagging_overrides.rb
115
+ - lib/kete_translatable_content/extensions/tinymce_controller_valid_action_override.rb
116
+ - lib/kete_translatable_content/extensions/translation_from_version.rb
117
+ - lib/kete_translatable_content/kete.rb
118
+ - lib/kete_translatable_content/overwrites/oai_dc_helpers_test.rb
119
+ - rails/init.rb
120
+ - README.rdoc.orig
121
+ has_rdoc: true
122
+ homepage: http://github.com/kete/kete_translatable_content
123
+ licenses: []
124
+
125
+ post_install_message:
126
+ rdoc_options:
127
+ - --charset=UTF-8
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ hash: 3
136
+ segments:
137
+ - 0
138
+ version: "0"
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ hash: 3
145
+ segments:
146
+ - 0
147
+ version: "0"
148
+ requirements: []
149
+
150
+ rubyforge_project:
151
+ rubygems_version: 1.3.7
152
+ signing_key:
153
+ specification_version: 3
154
+ summary: An add-on to the Kete application to provide content translations.
155
+ test_files: []
156
+