gettext_i18n_rails 1.11.0 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dae7769503d78af47afa65bce415dcf9ed13465b6a561ea91b314ccc624149ff
4
- data.tar.gz: 801ac8e2d1a5c02911e27112ba80c4478de3f41aaf2cb0aef16c518c5231ac47
3
+ metadata.gz: 21ca313fab159243b410640c4fdd81980a9f9a9c9f7500b904b1b520cd25a596
4
+ data.tar.gz: 63f42039049902975af11131868ee12906d137151f43bdd5e86551fadc733080
5
5
  SHA512:
6
- metadata.gz: cce87a14ed24586cb8617d78b10f4e9b7888ed88e7e1c18789a6543992f990a102bf6517e04507158d63c08d9a43218f97705bd5c8f22709cbf5e0b76e8bde37
7
- data.tar.gz: 3453bc4d44067f5927880805ebd51d9d74fc3cf4f8a83ac8db3bdc6cedf7ade2f9db523d5f0e5ba6d16b0819856c911bf4f7df783c267560df64e430be2056b7
6
+ metadata.gz: d07bbab9c35abdb23b4e208b22c08c9be2051ac64dfa043c9a47013ca6ff92c8741356b950df53e809d90003c44db6183e9167e34a83856242c6a0d80c113486
7
+ data.tar.gz: aba525c859c885518513c71d2086d2bfe1cb65fa48c3781bf8ac64a9e1d8009626519011b4011d7b51f9ca10ab9a8e1ffb71dcc269586fe97ecf82ceb0afa7de
@@ -6,13 +6,10 @@ module GettextI18nRails
6
6
  File.extname(file) == ".#{extension}"
7
7
  end
8
8
 
9
- def self.parse(file, _options = {}, msgids = [])
10
- return msgids unless load_library
9
+ def self.parse(file, options = {}, _msgids = [])
10
+ return _msgids unless load_library
11
11
  code = convert_to_code(File.read(file))
12
- RubyGettextExtractor.parse_string(code, msgids, file)
13
- rescue Racc::ParseError => e
14
- $stderr.puts "file ignored: ruby_parser cannot read #{extension} files with 1.9 syntax --- #{file}: (#{e.message.strip})"
15
- return msgids
12
+ GetText::RubyParser.new(file, options).parse_source(code)
16
13
  end
17
14
 
18
15
  def self.libraries
@@ -37,7 +34,7 @@ module GettextI18nRails
37
34
  return false
38
35
  end
39
36
 
40
- require 'gettext_i18n_rails/ruby_gettext_extractor'
37
+ require 'gettext/tools/parser/ruby'
41
38
  @library_loaded = loaded
42
39
  end
43
40
  end
@@ -1,22 +1,14 @@
1
1
  module GettextI18nRails
2
2
  module GettextHooks
3
- # shoarter call / maybe the interface changes again ...
3
+ # shorter call / maybe the interface changes again ...
4
4
  def self.add_parser(parser)
5
5
  xgettext.add_parser(parser)
6
6
  end
7
7
 
8
8
  def self.xgettext
9
9
  @xgettext ||= begin
10
- require 'gettext/tools/xgettext' # 2.3+
10
+ require 'gettext/tools/xgettext'
11
11
  GetText::Tools::XGetText
12
- rescue LoadError
13
- begin
14
- require 'gettext/tools/rgettext' # 2.0 - 2.2
15
- GetText::RGetText
16
- rescue LoadError # # 1.x
17
- require 'gettext/rgettext'
18
- GetText::RGetText
19
- end
20
12
  end
21
13
  end
22
14
  end
@@ -1,3 +1,3 @@
1
1
  module GettextI18nRails
2
- Version = VERSION = '1.11.0'
2
+ Version = VERSION = '1.12.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gettext_i18n_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-31 00:00:00.000000000 Z
11
+ date: 2023-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fast_gettext
@@ -199,7 +199,6 @@ files:
199
199
  - lib/gettext_i18n_rails/i18n_hacks.rb
200
200
  - lib/gettext_i18n_rails/model_attributes_finder.rb
201
201
  - lib/gettext_i18n_rails/railtie.rb
202
- - lib/gettext_i18n_rails/ruby_gettext_extractor.rb
203
202
  - lib/gettext_i18n_rails/slim_parser.rb
204
203
  - lib/gettext_i18n_rails/string_interpolate_fix.rb
205
204
  - lib/gettext_i18n_rails/tasks.rb
@@ -1,137 +0,0 @@
1
- gem 'ruby_parser', '>= 3.7.1' # sync with gemspec
2
- require 'ruby_parser'
3
-
4
- gem 'sexp_processor'
5
- require 'sexp_processor'
6
-
7
- module RubyGettextExtractor
8
- extend self
9
-
10
- def parse(file, targets = []) # :nodoc:
11
- parse_string(File.read(file), targets, file)
12
- end
13
-
14
- def parse_string(content, targets = [], file)
15
- syntax_tree = RubyParser.for_current_ruby.parse(content, file)
16
-
17
- processor = Extractor.new(targets)
18
- processor.require_empty = false
19
- processor.process(syntax_tree)
20
-
21
- processor.results
22
- end
23
-
24
- class Extractor < SexpProcessor
25
- attr_reader :results
26
-
27
- def initialize(targets)
28
- @targets = {}
29
- @results = []
30
-
31
- targets.each do |a|
32
- k, _v = a
33
- # things go wrong if k already exists, but this
34
- # should not happen (according to the gettext doc)
35
- @targets[k] = a
36
- @results << a
37
- end
38
-
39
- super()
40
- end
41
-
42
- def extract_string(node)
43
- case node.first
44
- when :str
45
- node.last
46
- when :call
47
- type, recv, meth, args = node
48
- # node has to be in form of "string" + "other_string"
49
- return nil unless recv && meth == :+
50
-
51
- first_part = extract_string(recv)
52
- second_part = extract_string(args)
53
-
54
- first_part && second_part ? first_part.to_s + second_part.to_s : nil
55
- else
56
- nil
57
- end
58
- end
59
-
60
- def extract_key_singular(args, separator)
61
- key = extract_string(args) if args.size == 2 || args.size == 4
62
-
63
- return nil unless key
64
- key.gsub("\n", '\n').gsub("\t", '\t').gsub("\0", '\0')
65
- end
66
-
67
- def extract_key_plural(args, separator)
68
- # this could be n_("aaa", "aaa plural", @retireitems.length)
69
- # s(s(:str, "aaa"),
70
- # s(:str, "aaa plural"),
71
- # s(:call, s(:ivar, :@retireitems), :length))
72
- # all strings arguments are extracted and joined with \004 or \000
73
- arguments = args[0..(-2)]
74
-
75
- res = []
76
- arguments.each do |a|
77
- next unless a.kind_of? Sexp
78
- str = extract_string(a)
79
- res << str if str
80
- end
81
-
82
- key = res.empty? ? nil : res.join(separator)
83
-
84
- return nil unless key
85
- key.gsub("\n", '\n').gsub("\t", '\t').gsub("\0", '\0')
86
- end
87
-
88
- def store_key(key, args)
89
- if key
90
- res = @targets[key]
91
-
92
- unless res
93
- res = [key]
94
- @results << res
95
- @targets[key] = res
96
- end
97
-
98
- res << "#{args.file}:#{args.line}"
99
- end
100
- end
101
-
102
- def gettext_simple_call(args)
103
- # args comes in 2 forms:
104
- # s(s(:str, "Button Group Order:"))
105
- # s(:str, "Button Group Order:")
106
- # normalizing:
107
- args = args.first if Sexp === args.sexp_type
108
-
109
- key = extract_key_singular(args, "\004")
110
- store_key(key, args)
111
- end
112
-
113
- def gettext_plural_call(args)
114
- key = extract_key_plural(args, "\000")
115
- store_key(key, args)
116
- end
117
-
118
- def process_call exp
119
- _call = exp.shift
120
- _recv = process exp.shift
121
- meth = exp.shift
122
-
123
- case meth
124
- when :_, :p_, :N_, :pgettext, :s_
125
- gettext_simple_call(exp)
126
- when :n_
127
- gettext_plural_call(exp)
128
- end
129
-
130
- until exp.empty? do
131
- process(exp.shift)
132
- end
133
-
134
- s()
135
- end
136
- end
137
- end