ember-i18n-rails 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.
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ doc
2
+ coverage
3
+ pkg
4
+ idea
5
+ spec/tmp
6
+ .DS_Store
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color --format documentation
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,47 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ember-i18n-rails (0.1.0)
5
+ i18n
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activesupport (3.1.1)
11
+ multi_json (~> 1.0)
12
+ coderay (0.9.8)
13
+ diff-lcs (1.1.3)
14
+ fakeweb (1.3.0)
15
+ i18n (0.6.1)
16
+ method_source (0.6.7)
17
+ ruby_parser (>= 2.3.1)
18
+ multi_json (1.0.3)
19
+ pry (0.9.7.4)
20
+ coderay (~> 0.9.8)
21
+ method_source (~> 0.6.7)
22
+ ruby_parser (>= 2.3.1)
23
+ slop (~> 2.1.0)
24
+ rake (0.9.2.2)
25
+ rspec (2.7.0)
26
+ rspec-core (~> 2.7.0)
27
+ rspec-expectations (~> 2.7.0)
28
+ rspec-mocks (~> 2.7.0)
29
+ rspec-core (2.7.1)
30
+ rspec-expectations (2.7.0)
31
+ diff-lcs (~> 1.1.2)
32
+ rspec-mocks (2.7.0)
33
+ ruby_parser (2.3.1)
34
+ sexp_processor (~> 3.0)
35
+ sexp_processor (3.0.8)
36
+ slop (2.1.0)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ activesupport (>= 3.0.0)
43
+ ember-i18n-rails!
44
+ fakeweb
45
+ pry
46
+ rake
47
+ rspec (~> 2.6)
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ #ember-i18n-rails#
2
+
3
+ Loosely Based on https://github.com/fnando/i18n-js of Nando Vieira
4
+
5
+ __Version:__ 0.1
6
+
7
+ ## Instalation:
8
+
9
+ ### in Gemfile:
10
+
11
+ gem "ember-i18n-rails"
12
+
13
+ ### then call:
14
+
15
+ rake ember:i18n:setup
16
+
17
+ ### in app/assets/javascript/application.js
18
+ //= require i18n/ember-i18n
19
+ //= require i18n/translations
20
+
21
+ ## Exporting locales:
22
+
23
+ rake ember:i18n:export
24
+
25
+ ## Updating ember-i18n
26
+
27
+ rake ember:i18n:update
28
+
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+
@@ -0,0 +1,22 @@
1
+ # Split context in several files.
2
+ # By default only one file with all translations is exported and
3
+ # no configuration is required. Your settings for asset pipeline
4
+ # are automatically recognized.
5
+ #
6
+ # If you want to split translations into several files or specify
7
+ # locale contexts that will be exported, just use this file to do
8
+ # so.
9
+ #
10
+ # If you're going to use the Rails 3.1 asset pipeline, change
11
+ # the following configuration to something like this:
12
+ #
13
+ # translations:
14
+ # - file: "app/assets/javascripts/i18n/translations.js"
15
+ #
16
+ # If you're running an old version, you can use something
17
+ # like this:
18
+ #
19
+ # translations:
20
+ # - file: "public/javascripts/translations.js"
21
+ # only: "*"
22
+ #
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "ember/i18n/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "ember-i18n-rails"
7
+ s.version = Ember::I18n::Version::STRING
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Nando Vieira", "Andrzej Sliwa"]
10
+ s.email = ["andrzej.sliwa@i-tool.eu"]
11
+ s.homepage = "http://rubygems.org/gems/ember-i18n-rails"
12
+ s.summary = ""
13
+ s.description = s.summary
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ s.add_dependency "i18n"
21
+ s.add_development_dependency "fakeweb"
22
+ s.add_development_dependency "activesupport", ">= 3.0.0"
23
+ s.add_development_dependency "rspec", "~> 2.6"
24
+ s.add_development_dependency "rake"
25
+ s.add_development_dependency "pry"
26
+ end
@@ -0,0 +1,119 @@
1
+ require "FileUtils" unless defined?(FileUtils)
2
+
3
+ module Ember
4
+ module I18n
5
+ extend self
6
+
7
+ require "ember/i18n/railtie" if Rails.version >= "3.0"
8
+ require "ember/i18n/engine" if Rails.version >= "3.1"
9
+
10
+ # deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
11
+ MERGER = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &MERGER) : v2 }
12
+
13
+ # Under rails 3.1.1 and higher, perform a check to ensure that the
14
+ # full environment will be available during asset compilation.
15
+ # This is required to ensure I18n is loaded.
16
+ def assert_usable_configuration!
17
+ @usable_configuration ||= Rails.version >= "3.1.1" &&
18
+ Rails.configuration.assets.initialize_on_precompile ||
19
+ raise("Cannot precompile ember-i18n translations unless environment is initialized. Please set config.assets.initialize_on_precompile to true.")
20
+ end
21
+
22
+ def has_asset_pipeline?
23
+ Rails.configuration.respond_to?(:assets) && Rails.configuration.assets.enabled
24
+ end
25
+
26
+ def config_file
27
+ Rails.root.join("config/ember-i18n.yml")
28
+ end
29
+
30
+ def export_dir
31
+ if has_asset_pipeline?
32
+ "app/assets/javascripts/i18n"
33
+ else
34
+ "public/javascripts"
35
+ end
36
+ end
37
+
38
+ def javascript_file
39
+ Rails.root.join(export_dir, "ember-i18n.js")
40
+ end
41
+
42
+ # Export translations to JavaScript, considering settings
43
+ # from configuration file
44
+ def export!
45
+ save(flat_hash(translations), File.join(export_dir, "translations.js"))
46
+ end
47
+
48
+ def flat_hash(data, prefix = '', result = {})
49
+ data.each do |key, value|
50
+ current_prefix = prefix.present? ? "#{prefix}.#{key}" : key
51
+
52
+ if !value.is_a?(Hash)
53
+ result[current_prefix] = value.respond_to?(:stringify_keys) ? value.stringify_keys : value
54
+ else
55
+ flat_hash(value, current_prefix, result)
56
+ end
57
+ end
58
+
59
+ result.stringify_keys
60
+ end
61
+
62
+ # Load configuration file for partial exporting and
63
+ # custom output directory
64
+ def config
65
+ if config?
66
+ (YAML.load_file(config_file) || {}).with_indifferent_access
67
+ else
68
+ {}
69
+ end
70
+ end
71
+
72
+ # Check if configuration file exist
73
+ def config?
74
+ File.file? config_file
75
+ end
76
+
77
+ # Copy configuration and JavaScript library files to
78
+ # <tt>config/ember-i18n.yml</tt> and <tt>public/javascripts/i18n.js</tt>.
79
+ def setup!
80
+ FileUtils.mkdir_p(export_dir)
81
+ FileUtils.cp(File.dirname(__FILE__) + "/../vendor/assets/javascripts/ember-i18n.js", javascript_file)
82
+ FileUtils.cp(File.dirname(__FILE__) + "/../config/ember-i18n.yml", config_file) unless config?
83
+ end
84
+
85
+ # Retrieve an updated JavaScript library from Github.
86
+ def update!
87
+ FileUtils.mkdir_p(export_dir)
88
+ require "open-uri"
89
+ contents = open("https://raw.github.com/jamesarosen/ember-i18n/master/lib/i18n.js").read
90
+ File.open(javascript_file, "w+") {|f| f << contents}
91
+ end
92
+
93
+ # Convert translations to JSON string and save file.
94
+ def save(translations, file)
95
+ file = Rails.root.join(file)
96
+ FileUtils.mkdir_p File.dirname(file)
97
+
98
+ File.open(file, "w+") do |f|
99
+ f << 'Em.I18n.translations = '
100
+ f << JSON.pretty_generate(translations).html_safe
101
+ f << ';'
102
+ end
103
+ end
104
+
105
+ # Initialize and return translations
106
+ def translations
107
+ ::I18n.load_path = default_locales_path
108
+ ::I18n.backend.instance_eval do
109
+ init_translations unless initialized?
110
+ translations
111
+ end
112
+ end
113
+
114
+ def default_locales_path
115
+ Dir[Rails.root.join('config', 'locales', '*.yml').to_s]
116
+ end
117
+ end
118
+ end
119
+
@@ -0,0 +1,63 @@
1
+ module Ember
2
+ module I18n
3
+ class Engine < ::Rails::Engine
4
+ I18N_TRANSLATIONS_ASSET = "i18n/translations"
5
+
6
+ initializer "ember-i18n-rails.asset_dependencies", :after => "sprockets.environment",
7
+ :before => "ember-i18n-rails.initialize" do
8
+ next unless Ember::I18n.has_asset_pipeline?
9
+
10
+ config = I18n.config_file
11
+ cache_file = I18n::Engine.load_path_hash_cache
12
+
13
+ Rails.application.assets.register_preprocessor "application/javascript", :"ember-i18n-rails_dependencies" do |context, data|
14
+ if context.logical_path == I18N_TRANSLATIONS_ASSET
15
+ context.depend_on(config) if I18n.config?
16
+ # also set up dependencies on every locale file
17
+ ::I18n.load_path.each {|path| context.depend_on(path)}
18
+
19
+ # Set up a dependency on the contents of the load path
20
+ # itself. In some situations it is possible to get here
21
+ # before the path hash cache file has been written; in
22
+ # this situation, write it now.
23
+ I18n::Engine.write_hash! unless File.exists?(cache_file)
24
+ context.depend_on(cache_file)
25
+ end
26
+
27
+ data
28
+ end
29
+ end
30
+
31
+ # rewrite path cache hash at startup and before each request in development
32
+ config.to_prepare do
33
+ next unless Ember::I18n.has_asset_pipeline?
34
+ Ember::I18n::Engine.write_hash_if_changed unless Rails.env.production?
35
+ end
36
+
37
+ def self.load_path_hash_cache
38
+ @load_path_hash_cache ||= Rails.root.join("tmp/ember-i18n.cache")
39
+ end
40
+
41
+ def self.write_hash_if_changed
42
+ load_path_hash = ::I18n.load_path.hash
43
+
44
+ if load_path_hash != cached_load_path_hash
45
+ self.cached_load_path_hash = load_path_hash
46
+ write_hash!
47
+ end
48
+ end
49
+
50
+ def self.write_hash!
51
+ FileUtils.mkdir_p Rails.root.join("tmp")
52
+
53
+ File.open(load_path_hash_cache, "w+") do |f|
54
+ f.write(cached_load_path_hash)
55
+ end
56
+ end
57
+
58
+ class << self
59
+ attr_accessor :cached_load_path_hash
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,13 @@
1
+ module Ember
2
+ module I18n
3
+ class Railtie < Rails::Railtie
4
+ rake_tasks do
5
+ require "ember/i18n/rake"
6
+ end
7
+
8
+ initializer "ember-i18n-rails.initialize" do |app|
9
+ app.config.middleware.use(Middleware) if Rails.env.development? && !Ember::I18n.has_asset_pipeline?
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ namespace :ember do
2
+ namespace :i18n do
3
+ desc "install ember-i18n.js"
4
+ task :setup => :environment do
5
+ Ember::I18n.setup!
6
+ end
7
+
8
+ desc "Export the messages files"
9
+ task :export => :environment do
10
+ Ember::I18n.export!
11
+ end
12
+
13
+ desc "install ember-i18n.js"
14
+ task :update => :environment do
15
+ Ember::I18n.update!
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,10 @@
1
+ module Ember
2
+ module I18n
3
+ module Version
4
+ MAJOR = 0
5
+ MINOR = 1
6
+ PATCH = 0
7
+ STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,80 @@
1
+ require "spec_helper"
2
+
3
+ if File.basename(Rails.root) != "tmp"
4
+ abort <<-TXT
5
+ \e[31;5m
6
+ WARNING: That will remove your project!
7
+ Please go to #{File.expand_path(File.dirname(__FILE__) + "/..")} and run `rake spec`\e[0m
8
+ TXT
9
+ end
10
+
11
+ describe Ember::I18n do
12
+ before do
13
+ # Remove temporary directory if already present
14
+ FileUtils.rm_r(Rails.root) if File.exist?(Rails.root)
15
+
16
+ # Create temporary directory to test the files generation
17
+ %w( config public/javascripts ).each do |path|
18
+ FileUtils.mkdir_p Rails.root.join(path)
19
+ end
20
+ end
21
+
22
+ after do
23
+ # Remove temporary directory
24
+ FileUtils.rm_r(Rails.root)
25
+ end
26
+
27
+ it "copies JavaScript library" do
28
+ path = Rails.root.join("public/javascripts/ember-i18n.js")
29
+
30
+ File.should_not be_file(path)
31
+ Ember::I18n.setup!
32
+ File.should be_file(path)
33
+ end
34
+
35
+ it "exports messages" do
36
+ default_locales_path = Dir[File.join('spec', 'resources', '*.yml').to_s]
37
+ Ember::I18n.should_receive(:default_locales_path).at_least(:once).and_return(default_locales_path)
38
+ Ember::I18n.export!
39
+ Rails.root.join(Ember::I18n.export_dir, "translations.js").should be_file
40
+ end
41
+
42
+ it "updates the javascript library" do
43
+ FakeWeb.register_uri(:get, "https://raw.github.com/jamesarosen/ember-i18n/master/lib/i18n.js", :body => "UPDATED")
44
+
45
+ Ember::I18n.setup!
46
+ Ember::I18n.update!
47
+ File.read(Ember::I18n.javascript_file).should == "UPDATED"
48
+ end
49
+
50
+ describe "#export_dir" do
51
+ it "detects asset pipeline support" do
52
+ Ember::I18n.stub :has_asset_pipeline? => true
53
+ Ember::I18n.export_dir == "vendor/assets/javascripts"
54
+ end
55
+
56
+ it "detects older Rails" do
57
+ Ember::I18n.stub :has_asset_pipeline? => false
58
+ Ember::I18n.export_dir.to_s.should == "public/javascripts"
59
+ end
60
+ end
61
+
62
+ describe "#has_asset_pipeline?" do
63
+ it "detects support" do
64
+ Rails.stub_chain(:configuration, :assets, :enabled => true)
65
+ Ember::I18n.should have_asset_pipeline
66
+ end
67
+
68
+ it "skips support" do
69
+ Ember::I18n.should_not have_asset_pipeline
70
+ end
71
+ end
72
+
73
+ private
74
+
75
+ # Shortcut to SimplesIdeias::I18n.translations
76
+ def translations
77
+ Ember::I18n.translations
78
+ end
79
+ end
80
+
@@ -0,0 +1,7 @@
1
+ en:
2
+ admin:
3
+ show:
4
+ title: "Visualiser"
5
+ note: "plus de détails"
6
+ edit:
7
+ title: "Editer"
@@ -0,0 +1,19 @@
1
+ require "active_support/all"
2
+ require "active_support/version"
3
+ require "active_support/test_case"
4
+ require "ostruct"
5
+ require "pathname"
6
+ require "i18n"
7
+ require "json"
8
+ require "fakeweb"
9
+
10
+ FakeWeb.allow_net_connect = false
11
+
12
+ # Stub Rails.root, so we don"t need to load the whole Rails environment.
13
+ # Be careful! The specified folder will be removed!
14
+ Rails = OpenStruct.new({
15
+ :root => Pathname.new(File.dirname(__FILE__) + "/tmp"),
16
+ :version => "0"
17
+ })
18
+
19
+ require "ember-i18n-rails"
@@ -0,0 +1,155 @@
1
+ (function(window) {
2
+ var I18n, assert, findTemplate, get, isBinding, isTranslatedAttribute, lookupKey, pluralForm;
3
+
4
+ isTranslatedAttribute = /(.+)Translation$/;
5
+
6
+ get = Ember.Handlebars.get || Ember.Handlebars.getPath || Ember.getPath;
7
+
8
+ if (typeof CLDR !== "undefined" && CLDR !== null) pluralForm = CLDR.pluralForm;
9
+
10
+ if (pluralForm == null) {
11
+ Ember.Logger.warn("CLDR.pluralForm not found. Em.I18n will not support count-based inflection.");
12
+ }
13
+
14
+ lookupKey = function(key, hash) {
15
+ var firstKey, idx, remainingKeys, result;
16
+ result = hash[key];
17
+ idx = key.indexOf('.');
18
+
19
+ if (!result && idx !== -1) {
20
+ firstKey = key.substr(0, idx);
21
+ remainingKeys = key.substr(idx + 1);
22
+ hash = hash[firstKey];
23
+ if (hash) result = lookupKey(remainingKeys, hash);
24
+ }
25
+
26
+ return result;
27
+ };
28
+
29
+ assert = Ember.assert != null ? Ember.assert : window.ember_assert;
30
+
31
+ findTemplate = function(key, setOnMissing) {
32
+ assert("You must provide a translation key string, not %@".fmt(key), typeof key === 'string');
33
+ var result = lookupKey(key, I18n.translations);
34
+
35
+ if (setOnMissing) {
36
+ if (result == null) {
37
+ result = I18n.translations[key] = I18n.compile("Missing translation: " + key);
38
+ }
39
+ }
40
+
41
+ if ((result != null) && !jQuery.isFunction(result)) {
42
+ result = I18n.translations[key] = I18n.compile(result);
43
+ }
44
+
45
+ return result;
46
+ };
47
+
48
+ I18n = {
49
+ compile: Handlebars.compile,
50
+
51
+ translations: {},
52
+
53
+ template: function(key, count) {
54
+ var interpolatedKey, result, suffix;
55
+ if ((count != null) && (pluralForm != null)) {
56
+ suffix = pluralForm(count);
57
+ interpolatedKey = "%@.%@".fmt(key, suffix);
58
+ result = findTemplate(interpolatedKey, false);
59
+ }
60
+ return result != null ? result : result = findTemplate(key, true);
61
+ },
62
+
63
+ t: function(key, context) {
64
+ var template;
65
+ if (context == null) context = {};
66
+ template = I18n.template(key, context.count);
67
+ return template(context);
68
+ },
69
+
70
+ TranslateableAttributes: Em.Mixin.create({
71
+ didInsertElement: function() {
72
+ var attribute, isTranslatedAttributeMatch, key, path, result, translatedValue;
73
+ result = this._super.apply(this, arguments);
74
+
75
+ for (key in this) {
76
+ path = this[key];
77
+ isTranslatedAttributeMatch = key.match(isTranslatedAttribute);
78
+ if (isTranslatedAttributeMatch) {
79
+ attribute = isTranslatedAttributeMatch[1];
80
+ translatedValue = I18n.t(path);
81
+ this.$().attr(attribute, translatedValue);
82
+ }
83
+ }
84
+
85
+ return result;
86
+ }
87
+ })
88
+ };
89
+
90
+ Ember.I18n = I18n;
91
+
92
+ isBinding = /(.+)Binding$/;
93
+
94
+ Handlebars.registerHelper('t', function(key, options) {
95
+ var attrs, context, data, elementID, result, tagName, view;
96
+ context = this;
97
+ attrs = options.hash;
98
+ data = options.data;
99
+ view = data.view;
100
+ tagName = attrs.tagName || 'span';
101
+ delete attrs.tagName;
102
+ elementID = "i18n-" + (Ember.uuid++);
103
+
104
+ Em.keys(attrs).forEach(function(property) {
105
+ var bindPath, currentValue, invoker, isBindingMatch, normalized, normalizedPath, observer, propertyName, root, _ref;
106
+ isBindingMatch = property.match(isBinding);
107
+
108
+ if (isBindingMatch) {
109
+ propertyName = isBindingMatch[1];
110
+ bindPath = attrs[property];
111
+ currentValue = get(context, bindPath, options);
112
+ attrs[propertyName] = currentValue;
113
+ invoker = null;
114
+ normalized = Ember.Handlebars.normalizePath(context, bindPath, data);
115
+ _ref = [normalized.root, normalized.path], root = _ref[0], normalizedPath = _ref[1];
116
+
117
+ observer = function() {
118
+ var elem, newValue;
119
+ if (view.get('state') !== 'inDOM') {
120
+ Em.removeObserver(root, normalizedPath, invoker);
121
+ return;
122
+ }
123
+ newValue = get(context, bindPath, options);
124
+ elem = view.$("#" + elementID);
125
+ attrs[propertyName] = newValue;
126
+ return elem.html(I18n.t(key, attrs));
127
+ };
128
+
129
+ invoker = function() {
130
+ return Em.run.once(observer);
131
+ };
132
+
133
+ return Em.addObserver(root, normalizedPath, invoker);
134
+ }
135
+ });
136
+
137
+ result = '<%@ id="%@">%@</%@>'.fmt(tagName, elementID, I18n.t(key, attrs), tagName);
138
+ return new Handlebars.SafeString(result);
139
+ });
140
+
141
+ Handlebars.registerHelper('translateAttr', function(options) {
142
+ var attrs, result;
143
+ attrs = options.hash;
144
+ result = [];
145
+
146
+ Em.keys(attrs).forEach(function(property) {
147
+ var translatedValue;
148
+ translatedValue = I18n.t(attrs[property]);
149
+ return result.push('%@="%@"'.fmt(property, translatedValue));
150
+ });
151
+
152
+ return new Handlebars.SafeString(result.join(' '));
153
+ });
154
+
155
+ }).call(undefined, this);
@@ -0,0 +1,9 @@
1
+ <%# encoding: utf-8%>
2
+
3
+ <% Ember::I18n.assert_usable_configuration! %>
4
+ var I18n = I18n || {};
5
+ I18n.translations = <%=
6
+ Ember::I18n.translation_segments.each_with_object({}) do |(name, segment),translations|
7
+ translations.merge!(segment)
8
+ end.to_json
9
+ %>;
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ember-i18n-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nando Vieira
9
+ - Andrzej Sliwa
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-02-22 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: i18n
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: fakeweb
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 3.0.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: '2.6'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '2.6'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rake
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: pry
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: ''
112
+ email:
113
+ - andrzej.sliwa@i-tool.eu
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - .gitignore
119
+ - .rspec
120
+ - Gemfile
121
+ - Gemfile.lock
122
+ - README.md
123
+ - Rakefile
124
+ - config/ember-i18n.yml
125
+ - ember-i18n-rails.gemspec
126
+ - lib/ember-i18n-rails.rb
127
+ - lib/ember/i18n/engine.rb
128
+ - lib/ember/i18n/railtie.rb
129
+ - lib/ember/i18n/rake.rb
130
+ - lib/ember/i18n/version.rb
131
+ - spec/ember_i18n_rails_spec.rb
132
+ - spec/resources/en.yml
133
+ - spec/spec_helper.rb
134
+ - vendor/assets/javascripts/ember-i18n.js
135
+ - vendor/assets/javascripts/i18n/translations.js.erb
136
+ homepage: http://rubygems.org/gems/ember-i18n-rails
137
+ licenses: []
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ! '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ segments:
149
+ - 0
150
+ hash: -3474424650723491457
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ segments:
158
+ - 0
159
+ hash: -3474424650723491457
160
+ requirements: []
161
+ rubyforge_project:
162
+ rubygems_version: 1.8.23
163
+ signing_key:
164
+ specification_version: 3
165
+ summary: ''
166
+ test_files:
167
+ - spec/ember_i18n_rails_spec.rb
168
+ - spec/resources/en.yml
169
+ - spec/spec_helper.rb