fastlane-plugin-wpmreleasetoolkit 9.0.0 → 9.0.1

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: 423e3fa0c8f65af81619e52a547d87a491b532bbab62680b5b5cba1ccfd72d10
4
- data.tar.gz: 94974b14aba25d84ffd22d5a6139bf9a0354cd4b61087acd9b8feef28a104fe4
3
+ metadata.gz: 982e123d25f4bc8ee55dfc605e8e6873c0365d4d75f4eabce7884a4de01649e4
4
+ data.tar.gz: 462ba969f7790d6aabf6201e5bae1e4df4ac0512c8ef42955247a3319e891827
5
5
  SHA512:
6
- metadata.gz: c340386d587df81c06aa77158d6e37ceb7f9959953f3c853c9766e77ba4d1054e6304615e4625611374bd11591e4b53437413b694c93a4315721c2b6cd74727b
7
- data.tar.gz: b9f1fc5e641b5f6d67fc42a803f035fdc1ebd93bd36f376f6da09b74d8282d42c233d8c7d87636837a5e5d3122188083367695e30a8ee8ae01623ef2c379fabe
6
+ metadata.gz: 10433f33f1af9890023113464a26c5ff5ed29df4388f11248d6afb5cd85bc83622d4511c4f8e4279cde75fbcaa0605f6487aee6267042fcdd897c3a0036404f6
7
+ data.tar.gz: ce0e3fc971589f2f5a750c23e2acf78ae4bba2637d133717d361ee3bc5778e6f37b5d3f1f2455c9a9024454e7f443d3ce27b5c034eea41de61aed72e422532ab
@@ -1,5 +1,7 @@
1
1
  require 'fastlane/action'
2
- require_relative '../../helper/an_metadata_update_helper'
2
+ require_relative '../../helper/metadata/release_note_metadata_block'
3
+ require_relative '../../helper/metadata/release_note_short_metadata_block'
4
+ require_relative '../../helper/metadata/whats_new_metadata_block'
3
5
 
4
6
  module Fastlane
5
7
  module Actions
@@ -71,17 +73,17 @@ module Fastlane
71
73
  @blocks = []
72
74
 
73
75
  # Inits default handler
74
- @blocks.push Fastlane::Helper::AnUnknownMetadataBlock.new
76
+ @blocks.push Fastlane::Helper::UnknownMetadataBlock.new
75
77
 
76
78
  # Init special handlers
77
79
  block_files.each do |key, file_path|
78
80
  case key
79
81
  when :release_note
80
- @blocks.push Fastlane::Helper::AnReleaseNoteMetadataBlock.new(key, file_path, release_version)
82
+ @blocks.push Fastlane::Helper::ReleaseNoteMetadataBlock.new(key, file_path, release_version)
81
83
  when :release_note_short
82
- @blocks.push Fastlane::Helper::AnReleaseNoteShortMetadataBlock.new(key, file_path, release_version)
84
+ @blocks.push Fastlane::Helper::ReleaseNoteShortMetadataBlock.new(key, file_path, release_version)
83
85
  else
84
- @blocks.push Fastlane::Helper::AnStandardMetadataBlock.new(key, file_path)
86
+ @blocks.push Fastlane::Helper::StandardMetadataBlock.new(key, file_path)
85
87
  end
86
88
  end
87
89
 
@@ -1,4 +1,6 @@
1
- require_relative '../../helper/metadata_update_helper'
1
+ require_relative '../../helper/metadata/release_note_metadata_block'
2
+ require_relative '../../helper/metadata/release_note_short_metadata_block'
3
+ require_relative '../../helper/metadata/whats_new_metadata_block'
2
4
 
3
5
  module Fastlane
4
6
  module Actions
@@ -0,0 +1,20 @@
1
+ module Fastlane
2
+ module Helper
3
+ # Basic line handler
4
+ class MetadataBlock
5
+ attr_reader :block_key
6
+
7
+ def initialize(block_key)
8
+ @block_key = block_key
9
+ end
10
+
11
+ def handle_line(file, line)
12
+ file.puts(line) # Standard line handling: just copy
13
+ end
14
+
15
+ def is_handler_for(key)
16
+ true
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,72 @@
1
+ require_relative 'metadata_block'
2
+ require_relative 'standard_metadata_block'
3
+
4
+ module Fastlane
5
+ module Helper
6
+ class ReleaseNoteMetadataBlock < StandardMetadataBlock
7
+ attr_reader :new_key, :keep_key, :rel_note_key, :release_version
8
+
9
+ def initialize(block_key, content_file_path, release_version)
10
+ super(block_key, content_file_path)
11
+ @rel_note_key = 'release_note'
12
+ @release_version = release_version
13
+ generate_keys(release_version)
14
+ end
15
+
16
+ def generate_keys(release_version)
17
+ values = release_version.split('.')
18
+ version_major = Integer(values[0])
19
+ version_minor = Integer(values[1])
20
+ @new_key = "#{@rel_note_key}_#{version_major.to_s.rjust(2, '0')}#{version_minor}"
21
+
22
+ version_major -= 1 if version_minor.zero?
23
+ version_minor = version_minor.zero? ? 9 : version_minor - 1
24
+
25
+ @keep_key = "#{@rel_note_key}_#{version_major.to_s.rjust(2, '0')}#{version_minor}"
26
+ end
27
+
28
+ def is_handler_for(key)
29
+ values = key.split('_')
30
+ key.start_with?(@rel_note_key) && values.length == 3 && is_int?(values[2].sub(/^0*/, ''))
31
+ end
32
+
33
+ def handle_line(file, line)
34
+ # put content on block start or if copying the latest one
35
+ # and skip all the other content
36
+ if line.start_with?('msgctxt')
37
+ key = extract_key(line)
38
+ @is_copying = (key == @keep_key)
39
+ generate_block(file) if @is_copying
40
+ end
41
+
42
+ file.puts(line) if @is_copying
43
+ end
44
+
45
+ def generate_block(file)
46
+ # init
47
+ file.puts("msgctxt \"#{@new_key}\"")
48
+ file.puts('msgid ""')
49
+ file.puts("\"#{@release_version}:\\n\"")
50
+
51
+ # insert content
52
+ File.open(@content_file_path, 'r').each do |line|
53
+ file.puts("\"#{line.strip}\\n\"")
54
+ end
55
+
56
+ # close
57
+ file.puts('msgstr ""')
58
+ file.puts('')
59
+ end
60
+
61
+ def extract_key(line)
62
+ line.split[1].tr('\"', '')
63
+ end
64
+
65
+ def is_int?(value)
66
+ true if Integer(value)
67
+ rescue StandardError
68
+ false
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,23 @@
1
+ require_relative 'release_note_metadata_block'
2
+
3
+ module Fastlane
4
+ module Helper
5
+ class ReleaseNoteShortMetadataBlock < ReleaseNoteMetadataBlock
6
+ def initialize(block_key, content_file_path, release_version)
7
+ super(block_key, content_file_path, release_version)
8
+ @rel_note_key = 'release_note_short'
9
+ @release_version = release_version
10
+ generate_keys(release_version)
11
+ end
12
+
13
+ def is_handler_for(key)
14
+ values = key.split('_')
15
+ key.start_with?(@rel_note_key) && values.length == 4 && is_int?(values[3].sub(/^0*/, ''))
16
+ end
17
+
18
+ def generate_block(file)
19
+ super(file) unless File.empty?(@content_file_path)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,47 @@
1
+ require_relative 'metadata_block'
2
+
3
+ module Fastlane
4
+ module Helper
5
+ class StandardMetadataBlock < MetadataBlock
6
+ attr_reader :content_file_path
7
+
8
+ def initialize(block_key, content_file_path)
9
+ super(block_key)
10
+ @content_file_path = content_file_path
11
+ end
12
+
13
+ def is_handler_for(key)
14
+ key == @block_key.to_s
15
+ end
16
+
17
+ def handle_line(file, line)
18
+ # put the new content on block start
19
+ # and skip all the other content
20
+ generate_block(file) if line.start_with?('msgctxt')
21
+ end
22
+
23
+ def generate_block(file)
24
+ # init
25
+ file.puts("msgctxt \"#{@block_key}\"")
26
+ line_count = File.foreach(@content_file_path).inject(0) { |c, _line| c + 1 }
27
+
28
+ if line_count <= 1
29
+ # Single line output
30
+ file.puts("msgid \"#{File.read(@content_file_path).rstrip}\"")
31
+ else
32
+ # Multiple line output
33
+ file.puts('msgid ""')
34
+
35
+ # insert content
36
+ File.open(@content_file_path, 'r').each do |line|
37
+ file.puts("\"#{line.strip}\\n\"")
38
+ end
39
+ end
40
+
41
+ # close
42
+ file.puts('msgstr ""')
43
+ file.puts('')
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,13 @@
1
+ require_relative 'metadata_block'
2
+
3
+ module Fastlane
4
+ module Helper
5
+ class UnknownMetadataBlock < MetadataBlock
6
+ attr_reader :content_file_path
7
+
8
+ def initialize
9
+ super(nil)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,53 @@
1
+ require_relative 'standard_metadata_block'
2
+
3
+ module Fastlane
4
+ module Helper
5
+ class WhatsNewMetadataBlock < StandardMetadataBlock
6
+ attr_reader :new_key, :old_key, :rel_note_key, :release_version
7
+
8
+ def initialize(block_key, content_file_path, release_version)
9
+ super(block_key, content_file_path)
10
+ @rel_note_key = 'whats_new'
11
+ @release_version = release_version
12
+ generate_keys(release_version)
13
+ end
14
+
15
+ def generate_keys(release_version)
16
+ values = release_version.split('.')
17
+ version_major = Integer(values[0])
18
+ version_minor = Integer(values[1])
19
+ @new_key = "v#{release_version}-whats-new"
20
+
21
+ version_major -= 1 if version_minor.zero?
22
+ version_minor = version_minor.zero? ? 9 : version_minor - 1
23
+
24
+ @old_key = "v#{version_major}.#{version_minor}-whats-new"
25
+ end
26
+
27
+ def is_handler_for(key)
28
+ key.start_with?('v') && key.end_with?('-whats-new')
29
+ end
30
+
31
+ def handle_line(file, line)
32
+ # put content on block start or if copying the latest one
33
+ # and skip all the other content
34
+ generate_block(file) if line.start_with?('msgctxt')
35
+ end
36
+
37
+ def generate_block(file)
38
+ # init
39
+ file.puts("msgctxt \"#{@new_key}\"")
40
+ file.puts('msgid ""')
41
+
42
+ # insert content
43
+ File.open(@content_file_path, 'r').each do |line|
44
+ file.puts("\"#{line.strip}\\n\"")
45
+ end
46
+
47
+ # close
48
+ file.puts('msgstr ""')
49
+ file.puts('')
50
+ end
51
+ end
52
+ end
53
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Fastlane
4
4
  module Wpmreleasetoolkit
5
- VERSION = '9.0.0'
5
+ VERSION = '9.0.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-wpmreleasetoolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Automattic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-25 00:00:00.000000000 Z
11
+ date: 2023-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -476,7 +476,6 @@ files:
476
476
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_metadata_source.rb
477
477
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_release_notes.rb
478
478
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_validate_ci_build.rb
479
- - lib/fastlane/plugin/wpmreleasetoolkit/helper/an_metadata_update_helper.rb
480
479
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_emulator_helper.rb
481
480
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_git_helper.rb
482
481
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_localize_helper.rb
@@ -497,8 +496,13 @@ files:
497
496
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_l10n_linter_helper.rb
498
497
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_strings_file_validation_helper.rb
499
498
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_version_helper.rb
499
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/metadata_block.rb
500
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/release_note_metadata_block.rb
501
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/release_note_short_metadata_block.rb
502
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/standard_metadata_block.rb
503
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/unknown_metadata_block.rb
504
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/whats_new_metadata_block.rb
500
505
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_download_helper.rb
501
- - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_update_helper.rb
502
506
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb
503
507
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/release_notes_helper.rb
504
508
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/user_agent.rb
@@ -1,152 +0,0 @@
1
- module Fastlane
2
- module Helper
3
- # Basic line handler
4
- class AnMetadataBlock
5
- attr_reader :block_key
6
-
7
- def initialize(block_key)
8
- @block_key = block_key
9
- end
10
-
11
- def handle_line(fw, line)
12
- fw.puts(line) # Standard line handling: just copy
13
- end
14
-
15
- def is_handler_for(key)
16
- true
17
- end
18
- end
19
-
20
- class AnUnknownMetadataBlock < AnMetadataBlock
21
- attr_reader :content_file_path
22
-
23
- def initialize
24
- super(nil)
25
- end
26
- end
27
-
28
- class AnStandardMetadataBlock < AnMetadataBlock
29
- attr_reader :content_file_path
30
-
31
- def initialize(block_key, content_file_path)
32
- super(block_key)
33
- @content_file_path = content_file_path
34
- end
35
-
36
- def is_handler_for(key)
37
- key == @block_key.to_s
38
- end
39
-
40
- def handle_line(fw, line)
41
- # put the new content on block start
42
- # and skip all the other content
43
- generate_block(fw) if line.start_with?('msgctxt')
44
- end
45
-
46
- def generate_block(fw)
47
- # init
48
- fw.puts("msgctxt \"#{@block_key}\"")
49
- line_count = File.foreach(@content_file_path).inject(0) { |c, _line| c + 1 }
50
-
51
- if line_count <= 1
52
- # Single line output
53
- fw.puts("msgid \"#{File.read(@content_file_path).rstrip}\"")
54
- else
55
- # Multiple line output
56
- fw.puts('msgid ""')
57
-
58
- # insert content
59
- File.open(@content_file_path, 'r').each do |line|
60
- fw.puts("\"#{line.strip}\\n\"")
61
- end
62
- end
63
-
64
- # close
65
- fw.puts('msgstr ""')
66
- fw.puts('')
67
- end
68
- end
69
-
70
- class AnReleaseNoteMetadataBlock < AnStandardMetadataBlock
71
- attr_reader :new_key, :keep_key, :rel_note_key, :release_version
72
-
73
- def initialize(block_key, content_file_path, release_version)
74
- super(block_key, content_file_path)
75
- @rel_note_key = 'release_note'
76
- @release_version = release_version
77
- generate_keys(release_version)
78
- end
79
-
80
- def generate_keys(release_version)
81
- values = release_version.split('.')
82
- version_major = Integer(values[0])
83
- version_minor = Integer(values[1])
84
- @new_key = "#{@rel_note_key}_#{version_major.to_s.rjust(2, '0')}#{version_minor}"
85
-
86
- version_major -= 1 if version_minor == 0
87
- version_minor = version_minor == 0 ? 9 : version_minor - 1
88
-
89
- @keep_key = "#{@rel_note_key}_#{version_major.to_s.rjust(2, '0')}#{version_minor}"
90
- end
91
-
92
- def is_handler_for(key)
93
- values = key.split('_')
94
- key.start_with?(@rel_note_key) && values.length == 3 && is_int?(values[2].sub(/^0*/, ''))
95
- end
96
-
97
- def handle_line(fw, line)
98
- # put content on block start or if copying the latest one
99
- # and skip all the other content
100
- if line.start_with?('msgctxt')
101
- key = extract_key(line)
102
- @is_copying = (key == @keep_key)
103
- generate_block(fw) if @is_copying
104
- end
105
-
106
- fw.puts(line) if @is_copying
107
- end
108
-
109
- def generate_block(fw)
110
- # init
111
- fw.puts("msgctxt \"#{@new_key}\"")
112
- fw.puts('msgid ""')
113
- fw.puts("\"#{@release_version}:\\n\"")
114
-
115
- # insert content
116
- File.open(@content_file_path, 'r').each do |line|
117
- fw.puts("\"#{line.strip}\\n\"")
118
- end
119
-
120
- # close
121
- fw.puts('msgstr ""')
122
- fw.puts('')
123
- end
124
-
125
- def extract_key(line)
126
- line.split[1].tr('\"', '')
127
- end
128
-
129
- def is_int?(value)
130
- true if Integer(value) rescue false
131
- end
132
- end
133
-
134
- class AnReleaseNoteShortMetadataBlock < AnReleaseNoteMetadataBlock
135
- def initialize(block_key, content_file_path, release_version)
136
- super(block_key, content_file_path, release_version)
137
- @rel_note_key = 'release_note_short'
138
- @release_version = release_version
139
- generate_keys(release_version)
140
- end
141
-
142
- def is_handler_for(key)
143
- values = key.split('_')
144
- key.start_with?(@rel_note_key) && values.length == 4 && is_int?(values[3].sub(/^0*/, ''))
145
- end
146
-
147
- def generate_block(fw)
148
- super(fw) unless File.empty?(@content_file_path)
149
- end
150
- end
151
- end
152
- end
@@ -1,182 +0,0 @@
1
- module Fastlane
2
- module Helper
3
- # Basic line handler
4
- class MetadataBlock
5
- attr_reader :block_key
6
-
7
- def initialize(block_key)
8
- @block_key = block_key
9
- end
10
-
11
- def handle_line(fw, line)
12
- fw.puts(line) # Standard line handling: just copy
13
- end
14
-
15
- def is_handler_for(key)
16
- true
17
- end
18
- end
19
-
20
- class UnknownMetadataBlock < MetadataBlock
21
- attr_reader :content_file_path
22
-
23
- def initialize
24
- super(nil)
25
- end
26
- end
27
-
28
- class StandardMetadataBlock < MetadataBlock
29
- attr_reader :content_file_path
30
-
31
- def initialize(block_key, content_file_path)
32
- super(block_key)
33
- @content_file_path = content_file_path
34
- end
35
-
36
- def is_handler_for(key)
37
- key == @block_key.to_s
38
- end
39
-
40
- def handle_line(fw, line)
41
- # put the new content on block start
42
- # and skip all the other content
43
- generate_block(fw) if line.start_with?('msgctxt')
44
- end
45
-
46
- def generate_block(fw)
47
- # init
48
- fw.puts("msgctxt \"#{@block_key}\"")
49
- line_count = File.foreach(@content_file_path).inject(0) { |c, _line| c + 1 }
50
-
51
- if line_count <= 1
52
- # Single line output
53
- fw.puts("msgid \"#{File.read(@content_file_path)}\"")
54
- else
55
- # Multiple line output
56
- fw.puts('msgid ""')
57
-
58
- # insert content
59
- sf = File.open(@content_file_path, 'r').to_a
60
- sf.each do |line|
61
- l = "\"#{line.strip}"
62
- l << '\\n' unless line == sf.last
63
- l << '"'
64
- fw.puts(l)
65
- end
66
- end
67
-
68
- # close
69
- fw.puts('msgstr ""')
70
- fw.puts('')
71
- end
72
- end
73
-
74
- class ReleaseNoteMetadataBlock < StandardMetadataBlock
75
- attr_reader :new_key, :keep_key, :rel_note_key, :release_version
76
-
77
- def initialize(block_key, content_file_path, release_version)
78
- super(block_key, content_file_path)
79
- @rel_note_key = 'release_note'
80
- @release_version = release_version
81
- generate_keys(release_version)
82
- end
83
-
84
- def generate_keys(release_version)
85
- values = release_version.split('.')
86
- version_major = Integer(values[0])
87
- version_minor = Integer(values[1])
88
- @new_key = "#{@rel_note_key}_#{version_major}#{version_minor}"
89
-
90
- version_major -= 1 if version_minor == 0
91
- version_minor = version_minor == 0 ? 9 : version_minor - 1
92
-
93
- @keep_key = "#{@rel_note_key}_#{version_major}#{version_minor}"
94
- end
95
-
96
- def is_handler_for(key)
97
- values = key.split('_')
98
- key.start_with?(@rel_note_key) && values.length == 3 && (!Integer(values[2]).nil? rescue false)
99
- end
100
-
101
- def handle_line(fw, line)
102
- # put content on block start or if copying the latest one
103
- # and skip all the other content
104
- if line.start_with?('msgctxt')
105
- key = extract_key(line)
106
- @is_copying = (key == @keep_key)
107
- generate_block(fw) if @is_copying
108
- end
109
-
110
- fw.puts(line) if @is_copying
111
- end
112
-
113
- def generate_block(fw)
114
- # init
115
- fw.puts("msgctxt \"#{@new_key}\"")
116
- fw.puts('msgid ""')
117
- fw.puts("\"#{@release_version}:\\n\"")
118
-
119
- # insert content
120
- File.open(@content_file_path, 'r').each do |line|
121
- fw.puts("\"#{line.strip}\\n\"")
122
- end
123
-
124
- # close
125
- fw.puts('msgstr ""')
126
- fw.puts('')
127
- end
128
-
129
- def extract_key(line)
130
- line.split[1].tr('\"', '')
131
- end
132
- end
133
-
134
- class WhatsNewMetadataBlock < StandardMetadataBlock
135
- attr_reader :new_key, :old_key, :rel_note_key, :release_version
136
-
137
- def initialize(block_key, content_file_path, release_version)
138
- super(block_key, content_file_path)
139
- @rel_note_key = 'whats_new'
140
- @release_version = release_version
141
- generate_keys(release_version)
142
- end
143
-
144
- def generate_keys(release_version)
145
- values = release_version.split('.')
146
- version_major = Integer(values[0])
147
- version_minor = Integer(values[1])
148
- @new_key = "v#{release_version}-whats-new"
149
-
150
- version_major -= 1 if version_minor == 0
151
- version_minor = version_minor == 0 ? 9 : version_minor - 1
152
-
153
- @old_key = "v#{version_major}.#{version_minor}-whats-new"
154
- end
155
-
156
- def is_handler_for(key)
157
- key.start_with?('v') && key.end_with?('-whats-new')
158
- end
159
-
160
- def handle_line(fw, line)
161
- # put content on block start or if copying the latest one
162
- # and skip all the other content
163
- generate_block(fw) if line.start_with?('msgctxt')
164
- end
165
-
166
- def generate_block(fw)
167
- # init
168
- fw.puts("msgctxt \"#{@new_key}\"")
169
- fw.puts('msgid ""')
170
-
171
- # insert content
172
- File.open(@content_file_path, 'r').each do |line|
173
- fw.puts("\"#{line.strip}\\n\"")
174
- end
175
-
176
- # close
177
- fw.puts('msgstr ""')
178
- fw.puts('')
179
- end
180
- end
181
- end
182
- end