rake-pipeline-i18n-filters 0.0.1

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,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ -cfs -r spec_helper.rb
data/.yardopts ADDED
@@ -0,0 +1,2 @@
1
+ --readme README.yard
2
+
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in rake-pipeline-web-filters.gemspec
4
+ gemspec
5
+
6
+ gem "rake-pipeline", :git => "git://github.com/livingsocial/rake-pipeline.git"
7
+ gem "pry"
data/README.markdown ADDED
@@ -0,0 +1,4 @@
1
+ # Rake::Pipeline::Web::Filters
2
+
3
+ Documentation for Rake::Pipeline::Web::Filters is hosted at
4
+ <a href="http://rubydoc.info/github/wycats/rake-pipeline-web-filters/master/file/README.yard">rubydoc.info</a>
data/README.yard ADDED
@@ -0,0 +1,38 @@
1
+ = Rake::Pipeline::I18n::Filters
2
+
3
+ Rake::Pipeline::I18n::Filters is a collection of filters for Rake::Pipeline
4
+ for creating pipelines to generate i18n-js and Ember.STRINGS
5
+ localization files from I18n yaml.
6
+
7
+ = Usage
8
+
9
+ In your +Assetfile+:
10
+
11
+ !!!ruby
12
+ require "rake-pipeline-i18n-filters"
13
+
14
+ input "assets"
15
+ output "public"
16
+
17
+ # Take all YAML inputs and generates JS suitable for
18
+ # use with i18n-js
19
+ output 'public/scripts'
20
+ input 'locales' do
21
+ match '**/*.yml' do
22
+ i18n_js { 'locales.js' }
23
+ end
24
+ end
25
+
26
+ # Take all YAML inputs and generate JS suitable for
27
+ # use with Ember.STRINGS
28
+ output 'assets/scripts/config'
29
+ input 'locales' do
30
+ match '**/*.yml' do
31
+ ember_strings { 'locales.js' }
32
+ end
33
+ end
34
+
35
+ = Available Filters
36
+
37
+ * {Rake::Pipeline::I18n::Filters::I18nJsFilter}: Compile yaml files to JS suitable for use by i18n-js
38
+ * {Rake::Pipeline::I18n::Filters::EmberStringFilter}: Compile YAML to JS * suitable for EmberJS.STRINGS
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+ require "bundler/setup"
4
+
5
+ desc "run the specs"
6
+ task :spec do
7
+ sh "rspec -cfs spec"
8
+ end
9
+
10
+ task :default => :spec
11
+
12
+ desc "build the gem"
13
+ task :build do
14
+ system "gem build rake-pipeline-i18n-filters.gemspec"
15
+ end
16
+ desc "build and release the gem"
17
+ task :release => :build do
18
+ system "gem push activeadmin-axlsx-#{Rake::Pipeline::I18n::Filters::VERSION}.gem"
19
+ end
data/lib/ext/hash.rb ADDED
@@ -0,0 +1,23 @@
1
+ # Shamelessly borrowed from active_support. Simply because I dont want
2
+ # to force the dependency.
3
+ class Hash
4
+ # Returns a new hash with +self+ and +other_hash+ merged recursively.
5
+ #
6
+ # h1 = {:x => {:y => [4,5,6]}, :z => [7,8,9]}
7
+ # h2 = {:x => {:y => [7,8,9]}, :z => "xyz"}
8
+ #
9
+ # h1.deep_merge(h2) #=> { :x => {:y => [7, 8, 9]}, :z => "xyz" }
10
+ # h2.deep_merge(h1) #=> { :x => {:y => [4, 5, 6]}, :z => [7, 8, 9] }
11
+ def deep_merge(other_hash)
12
+ dup.deep_merge!(other_hash)
13
+ end
14
+
15
+ # Same as +deep_merge+, but modifies +self+.
16
+ def deep_merge!(other_hash)
17
+ other_hash.each_pair do |k,v|
18
+ tv = self[k]
19
+ self[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
20
+ end
21
+ self
22
+ end
23
+ end
@@ -0,0 +1,91 @@
1
+ require 'rake-pipeline-i18n-filters/filter_with_dependencies'
2
+
3
+ module Rake::Pipeline::I18n::Filters
4
+ # A filter that compiles locale yml files into javascript
5
+ # appropriate for use by Ember#String#loc
6
+ #
7
+ # @example
8
+ # !!!ruby
9
+ # Rake::Pipeline.build do
10
+ # input "config/locales", "**/*.yml"
11
+ # output "public"
12
+ #
13
+ # # Compile each .yml file under the config/locales
14
+ # # directory.
15
+ # filter Rake::Pipeline::Web::Filters::EmberI18nFilter
16
+ # end
17
+ #
18
+ class EmberStringsFilter < Rake::Pipeline::Filter
19
+
20
+ include FilterWithDependencies
21
+
22
+ # @param [Hash] options
23
+ # A hash of options for this filter
24
+ # @option [String] :use_i18n_js
25
+ # When true, localization information will be output in a format
26
+ # suitable for i18n-js. If this option is missing data will be
27
+ # output in the format that Ember.String.loc expects.
28
+ # @note If you are using Ember.String.loc be sure to set
29
+ # Ember.STRINGS = EmberI18n['locale'];
30
+ # where 'locale' is the locale you have parsed and want to render.
31
+ # @see https://github.com/fnando/i18n-js
32
+ # @see http://docs.emberjs.com/symbols/Ember.String.html#method=.loc
33
+ # @param [Proc] block a block to use as the Filter's
34
+ # {#output_name_generator}.
35
+ def initialize(&block)
36
+ block ||= proc { |input| input.sub(/\.(yml)$/, '.js') }
37
+ super(&block)
38
+ end
39
+
40
+ # Implement the {#generate_output} method required by
41
+ # the {Filter} API. Generates javascript from i18n yaml files
42
+ # appropriate for Ember#String#loc or i18n-js
43
+ # @param [Array<FileWrapper>] inputs an Array of
44
+ # {FileWrapper} objects representing the inputs to
45
+ # this filter.
46
+ # @param [FileWrapper] output a single {FileWrapper}
47
+ # object representing the output.
48
+ def generate_output(inputs, output)
49
+ output.write ember_i18n_output(inputs)
50
+ end
51
+
52
+ private
53
+
54
+ def external_dependencies
55
+ [ 'yaml', 'json' ]
56
+ end
57
+
58
+ def ember_i18n_output(inputs)
59
+ "EmberI18n = EmberI18n || {};#{compile_locales_for_ember_i18n(inputs)}"
60
+ end
61
+
62
+ def compile_locales_for_ember_i18n(inputs)
63
+ output_hash = {}
64
+ inputs.map do |input|
65
+ output_hash.deep_merge! YAML.load(input.read)
66
+ end
67
+ parse_ember_i18n_locales(output_hash)
68
+ end
69
+
70
+ def parse_ember_i18n_locales(output_hash)
71
+ dotified = dotify(output_hash)
72
+ dotified.map do |locale_key, locale_value|
73
+ locale_strings = locale_value.map do |entry_key, entry_value|
74
+ "'#{entry_key}' : '#{entry_value}'"
75
+ end.join(',')
76
+ "EmberI18n['#{locale_key}'] = { #{locale_strings} };"
77
+ end.join('')
78
+ end
79
+
80
+ def dotify(source, target={}, path=nil)
81
+ prefix = "#{path}." if path
82
+ if source.is_a?(Hash)
83
+ source.each do |key, value|
84
+ dotify(value, target, "#{prefix}#{key}")
85
+ end
86
+ else
87
+ target[path.split('.')[1..-1].join('.')] = source
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,27 @@
1
+ module Rake::Pipeline::I18n::Filters
2
+ # A mixin for filters that have dependencies on external
3
+ # libraries. Include this module in the filter class and
4
+ # declare a private `external_dependencies` method that
5
+ # returns an array of strings. Each one will be passed
6
+ # to `Kernel#require` when an instance of the filter
7
+ # is created.
8
+ module FilterWithDependencies
9
+
10
+ def initialize(*args, &block)
11
+ require_dependencies!
12
+ super(*args, &block)
13
+ end
14
+
15
+ private
16
+
17
+ def require_dependencies!
18
+ external_dependencies.each do |d|
19
+ begin
20
+ require d
21
+ rescue LoadError => error
22
+ raise error, "#{self.class} requires #{d}, but it is not available."
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,19 @@
1
+ module Rake::Pipeline::I18n::Filters
2
+ # Extends the Rake::Pipeline DSL to include shortcuts
3
+ # for adding filters to the pipeline.
4
+ module PipelineHelpers
5
+ # Add a new {I18nJsFilter} to the pipeline
6
+ # @see I18nJsFilter#initialize
7
+ def i18n_js(*args, &block)
8
+ filter(Rake::Pipeline::I18n::Filters::I18nJsFilter, *args, &block)
9
+ end
10
+ # Add a new {EmberStringsFilter} to the pipeline
11
+ # @see EmberStringsFilter#initialize
12
+ def ember_strings(*args, &block)
13
+ filter(Rake::Pipeline::I18n::Filters::EmberStringsFilter, *args, &block)
14
+ end
15
+ end
16
+ end
17
+
18
+ require "rake-pipeline/dsl"
19
+ Rake::Pipeline::DSL::PipelineDSL.send(:include, Rake::Pipeline::I18n::Filters::PipelineHelpers)
@@ -0,0 +1,54 @@
1
+ require 'rake-pipeline-i18n-filters/filter_with_dependencies'
2
+
3
+ module Rake::Pipeline::I18n::Filters
4
+ # A filter that compiles locale yml files into javascript
5
+ # appropriate for use by Ember#String#loc
6
+ #
7
+ # @example
8
+ # !!!ruby
9
+ # Rake::Pipeline.build do
10
+ # input "config/locales", "**/*.yml"
11
+ # output "public"
12
+ #
13
+ # # Compile each .yml file under the config/locales
14
+ # # directory.
15
+ # filter Rake::Pipeline::I18n::Filters::I18nJSFilter
16
+ # end
17
+ #
18
+ class I18nJsFilter < Rake::Pipeline::Filter
19
+
20
+ include FilterWithDependencies
21
+
22
+ # @see https://github.com/fnando/i18n-js
23
+ # @param [Proc] block a block to use as the Filter's
24
+ # {#output_name_generator}.
25
+ def initialize(&block)
26
+ block ||= proc { |input| input.sub(/\.(yml)$/, '.js') }
27
+ super(&block)
28
+ end
29
+
30
+ # Implement the {#generate_output} method required by
31
+ # the {Filter} API. Generates javascript from i18n yaml files
32
+ # appropriate for i18n-js
33
+ # @param [Array<FileWrapper>] inputs an Array of
34
+ # {FileWrapper} objects representing the inputs to
35
+ # this filter.
36
+ # @param [FileWrapper] output a single {FileWrapper}
37
+ # object representing the output.
38
+ def generate_output(inputs, output)
39
+ js_dec = 'I18n.translations = I18n.translations || {};'
40
+ output_hash = {}
41
+ inputs.each do |input|
42
+ output_hash.deep_merge! YAML.load(input.read)
43
+ end
44
+ output.write "#{js_dec}\nI18n.translations = #{output_hash.to_json};"
45
+ end
46
+
47
+ private
48
+
49
+ def external_dependencies
50
+ [ 'yaml', 'json' ]
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,9 @@
1
+ module Rake
2
+ class Pipeline
3
+ module I18n
4
+ module Filters
5
+ VERSION = "0.0.1"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ require "rake-pipeline"
2
+
3
+ module Rake
4
+ class Pipeline
5
+ module I18n
6
+ module Filters
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ require "ext/hash"
13
+ require "rake-pipeline-i18n-filters/version"
14
+ require "rake-pipeline-i18n-filters/filter_with_dependencies"
15
+ require "rake-pipeline-i18n-filters/i18n_js_filter"
16
+ require "rake-pipeline-i18n-filters/ember_strings_filter"
17
+ require "rake-pipeline-i18n-filters/helpers"
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/rake-pipeline-i18n-filters/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Randy Morgan"]
6
+ gem.email = ["digital.ipseity@gmail.com"]
7
+ gem.description = %q{A collection of i18n filters for rake-pipeline}
8
+ gem.summary = %q{Adds filters for generating i18n-js and Ember.STRINGS localization data from i18n YAML}
9
+ gem.homepage = "http://github.com/randym/rake-pipeline-i18n-filters"
10
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
11
+ gem.files = `git ls-files`.split("\n")
12
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
+ gem.name = "rake-pipeline-i18n-filters"
14
+ gem.require_paths = ["lib"]
15
+ gem.version = Rake::Pipeline::I18n::Filters::VERSION
16
+
17
+ gem.add_dependency "rake-pipeline", "~> 0.6"
18
+ gem.add_development_dependency "rspec"
19
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: UTF-8
2
+
3
+ describe "EmberStringsFilter" do
4
+ EmberStringsFilter ||= Rake::Pipeline::I18n::Filters::EmberStringsFilter
5
+ MemoryFileWrapper ||= Rake::Pipeline::SpecHelpers::MemoryFileWrapper
6
+
7
+ # Seems like YAML is expecting this method.
8
+ MemoryFileWrapper.class_eval( 'def external_encoding; Encoding.default_external; end')
9
+
10
+ let(:input) { yaml = <<EOF
11
+ # encoding: UTF-8
12
+ en:
13
+ foo: bar
14
+ hoge: hoge
15
+ ja:
16
+ foo: バー
17
+ hoge: ホゲ
18
+ EOF
19
+ }
20
+
21
+ # not using heredoc as it adds an extra \n to the end
22
+ let(:expected_ember_strings) {
23
+ "EmberI18n = EmberI18n || {};EmberI18n['en'] = { 'foo' : 'bar','hoge' : 'hoge' };EmberI18n['ja'] = { 'foo' : 'バー','hoge' : 'ホゲ' };"
24
+ }
25
+ def input_file(name, content)
26
+ MemoryFileWrapper.new('/path/to/input', name, 'UTF-8', content)
27
+ end
28
+
29
+ def output_file(name)
30
+ MemoryFileWrapper.new('/path/to/output', name, 'UTF-8')
31
+ end
32
+
33
+ def setup_filter(filter)
34
+ filter.file_wrapper_class = MemoryFileWrapper
35
+ filter.input_files = [input_file('localizations.yml', input)]
36
+ filter.output_root = '/path/to/output'
37
+ filter.rake_application = Rake::Application.new
38
+ filter
39
+ end
40
+
41
+ it "generates ember_strings" do
42
+ filter = setup_filter EmberStringsFilter.new
43
+ filter.output_files.should == [output_file('localizations.js')]
44
+ tasks = filter.generate_rake_tasks
45
+ tasks.each(&:invoke)
46
+ file = MemoryFileWrapper.files['/path/to/output/localizations.js']
47
+ file.body.should == expected_ember_strings
48
+ end
49
+
50
+ end
51
+
@@ -0,0 +1,25 @@
1
+ describe "Helpers" do
2
+ let(:pipeline) { Rake::Pipeline.new }
3
+ let(:dsl) { Rake::Pipeline::DSL::PipelineDSL.new(pipeline) }
4
+
5
+ before do
6
+ pipeline.add_input '.'
7
+ end
8
+
9
+ def filter
10
+ pipeline.filters.last
11
+ end
12
+
13
+ describe '#i18n_js' do
14
+ it "creates an I18nJsFilter" do
15
+ dsl.i18n_js
16
+ filter.should be_kind_of(Rake::Pipeline::I18n::Filters::I18nJsFilter)
17
+ end
18
+ end
19
+ describe '#ember_strings' do
20
+ it "creates an EmberStringsFilter" do
21
+ dsl.ember_strings
22
+ filter.should be_kind_of(Rake::Pipeline::I18n::Filters::EmberStringsFilter)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,50 @@
1
+ # encoding: UTF-8
2
+
3
+ describe "I18nJsFilter" do
4
+ I18nJsFilter ||= Rake::Pipeline::I18n::Filters::I18nJsFilter
5
+ MemoryFileWrapper ||= Rake::Pipeline::SpecHelpers::MemoryFileWrapper
6
+
7
+ # Seems like YAML is expecting this method.
8
+ MemoryFileWrapper.class_eval( 'def external_encoding; Encoding.default_external; end')
9
+
10
+ let(:input) { yaml = <<EOF
11
+ # encoding: UTF-8
12
+ en:
13
+ foo: bar
14
+ hoge: hoge
15
+ ja:
16
+ foo: バー
17
+ hoge: ホゲ
18
+ EOF
19
+ }
20
+
21
+ # not using heredoc as it adds an extra \n to the end
22
+ let(:expected_i18n_js) {
23
+ "I18n.translations = I18n.translations || {};\nI18n.translations = {\"en\":{\"foo\":\"bar\",\"hoge\":\"hoge\"},\"ja\":{\"foo\":\"バー\",\"hoge\":\"ホゲ\"}};"
24
+ }
25
+ def input_file(name, content)
26
+ MemoryFileWrapper.new('/path/to/input', name, 'UTF-8', content)
27
+ end
28
+
29
+ def output_file(name)
30
+ MemoryFileWrapper.new('/path/to/output', name, 'UTF-8')
31
+ end
32
+
33
+ def setup_filter(filter)
34
+ filter.file_wrapper_class = MemoryFileWrapper
35
+ filter.input_files = [input_file('i18n_js_localizations.yml', input)]
36
+ filter.output_root = '/path/to/output'
37
+ filter.rake_application = Rake::Application.new
38
+ filter
39
+ end
40
+
41
+ it "generates i18n_js" do
42
+ filter = setup_filter I18nJsFilter.new
43
+ filter.output_files.should == [output_file('i18n_js_localizations.js')]
44
+ tasks = filter.generate_rake_tasks
45
+ tasks.each(&:invoke)
46
+ file = MemoryFileWrapper.files['/path/to/output/i18n_js_localizations.js']
47
+ file.body.should == expected_i18n_js
48
+ end
49
+
50
+ end
@@ -0,0 +1,103 @@
1
+ require "rake-pipeline"
2
+ require "rake-pipeline-i18n-filters"
3
+ class Rake::Pipeline
4
+ module SpecHelpers
5
+
6
+ class MemoryFileWrapper < Struct.new(:root, :path, :encoding, :body)
7
+ @@files = {}
8
+ @@data = {}
9
+
10
+ def self.files
11
+ @@files
12
+ end
13
+
14
+ def self.data
15
+ @@data
16
+ end
17
+
18
+ def with_encoding(new_encoding)
19
+ self.class.new(root, path, new_encoding, body)
20
+ end
21
+
22
+ def fullpath
23
+ File.join(root, path)
24
+ end
25
+
26
+ def create
27
+ @@files[fullpath] = self
28
+ self.body = ""
29
+ yield
30
+ end
31
+
32
+ def read
33
+ body || @@data[fullpath] || ""
34
+ end
35
+
36
+ def write(contents)
37
+ self.body << contents
38
+ end
39
+ end
40
+
41
+ # TODO: OS agnostic modules
42
+ module FileUtils
43
+ def mkdir_p(dir)
44
+ system "mkdir", "-p", dir
45
+ end
46
+
47
+ def touch(file)
48
+ system "touch", file
49
+ end
50
+
51
+ def rm_rf(dir)
52
+ system "rm", "-rf", dir
53
+ end
54
+
55
+ def touch_p(file)
56
+ dir = File.dirname(file)
57
+ mkdir_p dir
58
+ touch file
59
+ end
60
+
61
+ def age_existing_files
62
+ old_time = Time.now - 10
63
+ Dir[File.join(tmp, "**/*.js")].each do |file|
64
+ File.utime(old_time, old_time, file)
65
+ end
66
+ end
67
+ end
68
+
69
+ module Filters
70
+ ConcatFilter = Rake::Pipeline::ConcatFilter
71
+ MemoryFileWrapper = Rake::Pipeline::SpecHelpers::MemoryFileWrapper
72
+
73
+ class StripAssertsFilter < Rake::Pipeline::Filter
74
+ def generate_output(inputs, output)
75
+ inputs.each do |input|
76
+ output.write input.read.gsub(%r{^\s*assert\(.*\)\s*;?\s*$}m, '')
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ RSpec.configure do |config|
85
+ original = Dir.pwd
86
+
87
+ config.include Rake::Pipeline::SpecHelpers::FileUtils
88
+
89
+ def tmp
90
+ File.expand_path("../tmp", __FILE__)
91
+ end
92
+
93
+ config.before do
94
+ rm_rf(tmp)
95
+ mkdir_p(tmp)
96
+ Dir.chdir(tmp)
97
+ end
98
+
99
+ config.after do
100
+ Dir.chdir(original)
101
+ end
102
+ end
103
+
metadata ADDED
@@ -0,0 +1,107 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rake-pipeline-i18n-filters
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Randy Morgan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake-pipeline
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '0.6'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.6'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: A collection of i18n filters for rake-pipeline
47
+ email:
48
+ - digital.ipseity@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - .rspec
55
+ - .yardopts
56
+ - Gemfile
57
+ - README.markdown
58
+ - README.yard
59
+ - Rakefile
60
+ - lib/ext/hash.rb
61
+ - lib/rake-pipeline-i18n-filters.rb
62
+ - lib/rake-pipeline-i18n-filters/ember_strings_filter.rb
63
+ - lib/rake-pipeline-i18n-filters/filter_with_dependencies.rb
64
+ - lib/rake-pipeline-i18n-filters/helpers.rb
65
+ - lib/rake-pipeline-i18n-filters/i18n_js_filter.rb
66
+ - lib/rake-pipeline-i18n-filters/version.rb
67
+ - rake-pipeline-i18n-filters.gemspec
68
+ - spec/ember_strings_filter_spec.rb
69
+ - spec/helpers_spec.rb
70
+ - spec/i18n_js_filter_spec.rb
71
+ - spec/spec_helper.rb
72
+ homepage: http://github.com/randym/rake-pipeline-i18n-filters
73
+ licenses: []
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ segments:
85
+ - 0
86
+ hash: -3126436427769998385
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ segments:
94
+ - 0
95
+ hash: -3126436427769998385
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 1.8.24
99
+ signing_key:
100
+ specification_version: 3
101
+ summary: Adds filters for generating i18n-js and Ember.STRINGS localization data from
102
+ i18n YAML
103
+ test_files:
104
+ - spec/ember_strings_filter_spec.rb
105
+ - spec/helpers_spec.rb
106
+ - spec/i18n_js_filter_spec.rb
107
+ - spec/spec_helper.rb