refinerycms-i18n 0.9.9.14 → 0.9.9.15
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.
- data/lib/gemspec.rb +2 -2
- data/lib/refinery/i18n-js.rb +24 -28
- data/lib/refinery/i18n-js.yml +1 -1
- data/lib/refinery/i18n-js/railtie.rb +9 -0
- data/lib/refinery/i18n-js/version.rb +10 -0
- data/lib/refinery/i18n.rb +4 -0
- data/lib/tasks/i18n-js_tasks.rake +1 -1
- metadata +5 -3
data/lib/gemspec.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
version = '0.9.9.
|
|
2
|
+
version = '0.9.9.15'
|
|
3
3
|
raise "Could not get version so gemspec can not be built" if version.nil?
|
|
4
4
|
files = Dir.glob("**/*").flatten.reject do |file|
|
|
5
5
|
file =~ /\.gem(spec)?$/
|
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
|
17
17
|
s.authors = %w(Resolve\\ Digital)
|
|
18
18
|
s.require_paths = %w(lib)
|
|
19
19
|
|
|
20
|
-
s.add_dependency 'refinerycms-core', '>= 0.9.9.
|
|
20
|
+
s.add_dependency 'refinerycms-core', '>= 0.9.9.10'
|
|
21
21
|
s.add_dependency 'routing-filter', '>= 0.2.3'
|
|
22
22
|
|
|
23
23
|
s.files = [
|
data/lib/refinery/i18n-js.rb
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
require "FileUtils" unless defined?(FileUtils)
|
|
2
|
+
|
|
1
3
|
module SimplesIdeias
|
|
2
4
|
module I18n
|
|
3
5
|
extend self
|
|
4
6
|
|
|
7
|
+
require File.expand_path("../i18n-js/railtie", __FILE__) if Rails.version >= "3.0"
|
|
8
|
+
|
|
5
9
|
# deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
|
|
6
10
|
MERGER = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &MERGER) : v2 }
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
def config_file
|
|
13
|
+
Rails.root.join('config', 'i18n-js.yml')
|
|
14
|
+
end
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
def javascript_file
|
|
17
|
+
Rails.root.join('public', 'javascripts', 'i18n.js')
|
|
18
|
+
end
|
|
13
19
|
|
|
14
20
|
# Export translations to JavaScript, considering settings
|
|
15
21
|
# from configuration file
|
|
@@ -33,26 +39,32 @@ module SimplesIdeias
|
|
|
33
39
|
# Load configuration file for partial exporting and
|
|
34
40
|
# custom output directory
|
|
35
41
|
def config
|
|
36
|
-
HashWithIndifferentAccess.new
|
|
42
|
+
yaml = HashWithIndifferentAccess.new
|
|
43
|
+
|
|
44
|
+
[config_file].flatten.each do |config|
|
|
45
|
+
yaml.deep_merge!(YAML.load_file(config))
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
yaml
|
|
37
49
|
end
|
|
38
50
|
|
|
39
51
|
# Check if configuration file exist
|
|
40
52
|
def config?
|
|
41
|
-
File.file?
|
|
53
|
+
[config_file].flatten.any?{|f| File.file?(f.to_s) }
|
|
42
54
|
end
|
|
43
55
|
|
|
44
56
|
# Copy configuration and JavaScript library files to
|
|
45
|
-
# <tt>
|
|
57
|
+
# <tt>config/i18n-js.yml</tt> and <tt>public/javascripts/i18n.js</tt>.
|
|
46
58
|
def setup!
|
|
47
|
-
FileUtils.cp File.dirname(__FILE__) + "/i18n.js",
|
|
48
|
-
FileUtils.cp(File.dirname(__FILE__) + "/i18n-js.yml",
|
|
59
|
+
FileUtils.cp File.dirname(__FILE__) + "/../source/i18n.js", javascript_file
|
|
60
|
+
FileUtils.cp(File.dirname(__FILE__) + "/../source/i18n-js.yml", config_file) unless config?
|
|
49
61
|
end
|
|
50
62
|
|
|
51
63
|
# Retrieve an updated JavaScript library from Github.
|
|
52
64
|
def update!
|
|
53
65
|
require "open-uri"
|
|
54
66
|
contents = open("http://github.com/fnando/i18n-js/raw/master/lib/i18n.js").read
|
|
55
|
-
File.open(
|
|
67
|
+
File.open(javascript_file, "w+") {|f| f << contents}
|
|
56
68
|
end
|
|
57
69
|
|
|
58
70
|
# Convert translations to JSON string and save file.
|
|
@@ -63,7 +75,7 @@ module SimplesIdeias
|
|
|
63
75
|
File.open(file, "w+") do |f|
|
|
64
76
|
f << %(var I18n = I18n || {};\n)
|
|
65
77
|
f << %(I18n.translations = );
|
|
66
|
-
f <<
|
|
78
|
+
f << translations.to_json
|
|
67
79
|
f << %(;)
|
|
68
80
|
end
|
|
69
81
|
end
|
|
@@ -112,21 +124,5 @@ module SimplesIdeias
|
|
|
112
124
|
def deep_merge!(target, hash) # :nodoc:
|
|
113
125
|
target.merge!(hash, &MERGER)
|
|
114
126
|
end
|
|
115
|
-
|
|
116
|
-
# Taken from http://seb.box.re/2010/1/15/deep-hash-ordering-with-ruby-1-8/
|
|
117
|
-
def sorted_hash(object, deep = false) # :nodoc:
|
|
118
|
-
if object.is_a?(Hash)
|
|
119
|
-
res = returning(ActiveSupport::OrderedHash.new) do |map|
|
|
120
|
-
object.each {|k, v| map[k] = deep ? sorted_hash(v, deep) : v }
|
|
121
|
-
end
|
|
122
|
-
return res.class[res.sort {|a, b| a[0].to_s <=> b[0].to_s } ]
|
|
123
|
-
elsif deep && object.is_a?(Array)
|
|
124
|
-
array = Array.new
|
|
125
|
-
object.each_with_index {|v, i| array[i] = sorted_hash(v, deep) }
|
|
126
|
-
return array
|
|
127
|
-
else
|
|
128
|
-
return object
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
127
|
end
|
|
132
|
-
end
|
|
128
|
+
end
|
data/lib/refinery/i18n-js.yml
CHANGED
data/lib/refinery/i18n.rb
CHANGED
|
@@ -21,6 +21,10 @@ module Refinery
|
|
|
21
21
|
|
|
22
22
|
config.to_prepare do
|
|
23
23
|
::ApplicationController.class_eval do
|
|
24
|
+
before_filter lambda {|c|
|
|
25
|
+
::SimplesIdeias::I18n.export! if Rails.env.development?
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
def default_url_options(options={})
|
|
25
29
|
::Refinery::I18n.enabled? ? { :locale => ::I18n.locale } : {}
|
|
26
30
|
end
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: refinerycms-i18n
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 0.9.9.
|
|
5
|
+
version: 0.9.9.15
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Resolve Digital
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2011-03-
|
|
13
|
+
date: 2011-03-24 00:00:00 +13:00
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
@@ -21,7 +21,7 @@ dependencies:
|
|
|
21
21
|
requirements:
|
|
22
22
|
- - ">="
|
|
23
23
|
- !ruby/object:Gem::Version
|
|
24
|
-
version: 0.9.9.
|
|
24
|
+
version: 0.9.9.10
|
|
25
25
|
type: :runtime
|
|
26
26
|
version_requirements: *id001
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
@@ -119,6 +119,8 @@ files:
|
|
|
119
119
|
- i18n-js-readme.rdoc
|
|
120
120
|
- lib/gemspec.rb
|
|
121
121
|
- lib/refinery/i18n-filter.rb
|
|
122
|
+
- lib/refinery/i18n-js/railtie.rb
|
|
123
|
+
- lib/refinery/i18n-js/version.rb
|
|
122
124
|
- lib/refinery/i18n-js.rb
|
|
123
125
|
- lib/refinery/i18n-js.yml
|
|
124
126
|
- lib/refinery/i18n.js
|