cldr-plurals 1.1.1 → 1.2.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.
@@ -1,57 +1,9 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  require 'rspec'
4
- require 'pry-nav'
4
+ require 'pry-byebug'
5
5
  require 'cldr-plurals'
6
+ require './spec/samples'
6
7
 
7
8
  RSpec.configure do |config|
8
- config.mock_with :rr
9
- end
10
-
11
- ADDITIONAL_SAMPLES = {
12
- "ar" => { other: %w(3.1 3.2 3.3) } # improve test coverage for Arabic
13
- }
14
-
15
- def each_rule
16
- samples.each_pair do |locales, rules|
17
- rules.each do |rule|
18
- next if rule[:text].empty? # skip other rule test, as it's a fallback
19
- tokens = CldrPlurals::Compiler::Tokenizer.tokenize(rule[:text])
20
- rule_ast = CldrPlurals::Compiler::Parser.new(tokens).parse
21
- yield locales, rule_ast, rule[:samples]
22
- end
23
- end
24
- end
25
-
26
-
27
- def each_rule_list
28
- samples.each_pair do |locales, rules|
29
- rule_list = CldrPlurals::Compiler::RuleList.new(locales)
30
- samples = {}
31
-
32
- rules.each do |rule|
33
- samples[rule[:name]] = rule[:samples]
34
- rule_list.add_rule(rule[:name], rule[:text]) unless rule[:text].empty?
35
- end
36
-
37
- samples_per_name = samples.each_with_object({}) do |(name, samples), ret|
38
- ret[name] = samples.flat_map do |sample_info|
39
- sample_info[:samples]
40
- end
41
- end
42
-
43
- (ADDITIONAL_SAMPLES[locales] || {}).each do |name, more_samples|
44
- samples_per_name[name].concat(more_samples)
45
- end
46
-
47
- yield rule_list, samples_per_name
48
- end
49
- end
50
-
51
- def samples
52
- YAML.load_file(samples_file)
53
- end
54
-
55
- def samples_file
56
- File.join(File.expand_path(File.dirname(__FILE__)), 'samples.yml')
57
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cldr-plurals
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-31 00:00:00.000000000 Z
11
+ date: 2020-11-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Tokenizes and parses CLDR plural rules and provides a mechanism for emitting
14
14
  them as source code
@@ -19,7 +19,6 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - Gemfile
22
- - History.txt
23
22
  - LICENSE.txt
24
23
  - README.md
25
24
  - Rakefile
@@ -33,14 +32,15 @@ files:
33
32
  - lib/cldr-plurals/javascript_emitter.rb
34
33
  - lib/cldr-plurals/ruby_emitter.rb
35
34
  - lib/cldr-plurals/version.rb
36
- - spec/javascript_sample_spec.rb
35
+ - spec/javascript_sample_spec.js
37
36
  - spec/ruby_sample_spec.rb
37
+ - spec/samples.rb
38
38
  - spec/samples.yml
39
39
  - spec/spec_helper.rb
40
40
  homepage: http://github.com/camertron
41
41
  licenses: []
42
42
  metadata: {}
43
- post_install_message:
43
+ post_install_message:
44
44
  rdoc_options: []
45
45
  require_paths:
46
46
  - lib
@@ -55,9 +55,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubyforge_project:
59
- rubygems_version: 2.2.3
60
- signing_key:
58
+ rubygems_version: 3.1.4
59
+ signing_key:
61
60
  specification_version: 4
62
61
  summary: Tokenizes and parses CLDR plural rules and provides a mechanism for emitting
63
62
  them as source code
@@ -1,16 +0,0 @@
1
- == 1.1.1
2
-
3
- * Wrap operands when emitting ranges in Ruby. (@sickp)
4
-
5
- == 1.1.0
6
-
7
- * Better, more accurate range handling according to TR-35.
8
- * Upgrade to CLDR v29.
9
-
10
- == 1.0.1
11
-
12
- * Added MIT license.
13
-
14
- == 1.0.0
15
-
16
- * Birthday!
@@ -1,48 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'v8'
4
- require 'yaml'
5
- require 'spec_helper'
6
- require 'cldr-plurals/javascript_runtime'
7
-
8
- include CldrPlurals
9
- include CldrPlurals::Compiler
10
-
11
- describe 'ruby rules' do
12
- each_rule do |locales, rule, samples|
13
- context = V8::Context.new
14
- js_code = JavascriptEmitter.emit_rule_standalone(rule)
15
- rule_obj = context.eval(js_code)
16
- runtime = context.eval(JavascriptRuntime.source)
17
-
18
- samples.each do |sample_info|
19
- context "#{sample_info[:type]} samples" do
20
- sample_info[:samples].each do |sample|
21
- it sample do
22
- args = runtime.buildArgsFor(sample)
23
- expect(rule_obj.call(*args)).to eq(true)
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
30
-
31
- describe 'ruby rule lists' do
32
- each_rule_list do |rule_list, samples_per_name|
33
- context rule_list.locale do
34
- context = V8::Context.new
35
- js_code = rule_list.to_code(:javascript)
36
- rule_proc = context.eval(js_code)
37
- runtime = context.eval(JavascriptRuntime.source)
38
-
39
- samples_per_name.each_pair do |name, samples|
40
- samples.each do |sample|
41
- it "#{name} #{sample}" do
42
- expect(rule_proc.call(sample, runtime)).to eq(name.to_s)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end