fastlane-plugin-wpmreleasetoolkit 9.0.0 → 9.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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/an_update_metadata_source_action.rb +7 -5
  3. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/copy_branch_protection_action.rb +80 -0
  4. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_update_metadata_source.rb +3 -1
  5. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/{removebranchprotection_action.rb → remove_branch_protection_action.rb} +24 -17
  6. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/set_branch_protection_action.rb +153 -0
  7. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/github_helper.rb +49 -4
  8. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/metadata_block.rb +20 -0
  9. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/release_note_metadata_block.rb +72 -0
  10. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/release_note_short_metadata_block.rb +23 -0
  11. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/standard_metadata_block.rb +47 -0
  12. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/unknown_metadata_block.rb +13 -0
  13. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/whats_new_metadata_block.rb +53 -0
  14. data/lib/fastlane/plugin/wpmreleasetoolkit/models/app_version.rb +36 -0
  15. data/lib/fastlane/plugin/wpmreleasetoolkit/models/build_code.rb +27 -0
  16. data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +1 -1
  17. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/abstract_version_calculator.rb +85 -0
  18. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/date_build_code_calculator.rb +32 -0
  19. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/date_version_calculator.rb +37 -0
  20. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/marketing_version_calculator.rb +26 -0
  21. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/semantic_version_calculator.rb +21 -0
  22. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/simple_build_code_calculator.rb +22 -0
  23. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/files/android_version_file.rb +76 -0
  24. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/files/ios_version_file.rb +64 -0
  25. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/abstract_version_formatter.rb +27 -0
  26. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/derived_build_code_formatter.rb +33 -0
  27. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/four_part_build_code_formatter.rb +22 -0
  28. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/four_part_version_formatter.rb +35 -0
  29. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/rc_notation_version_formatter.rb +65 -0
  30. data/lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/simple_build_code_formatter.rb +20 -0
  31. data/lib/fastlane/plugin/wpmreleasetoolkit.rb +1 -1
  32. metadata +41 -6
  33. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setbranchprotection_action.rb +0 -63
  34. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/an_metadata_update_helper.rb +0 -152
  35. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_update_helper.rb +0 -182
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.1.0
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-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: java-properties
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.3.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.3.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: nokogiri
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -426,6 +440,7 @@ files:
426
440
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/circleci_trigger_job_action.rb
427
441
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/close_milestone_action.rb
428
442
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/comment_on_pr.rb
443
+ - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/copy_branch_protection_action.rb
429
444
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/create_new_milestone_action.rb
430
445
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/create_release_action.rb
431
446
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/extract_release_notes_for_version_action.rb
@@ -436,8 +451,8 @@ files:
436
451
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_update_metadata_source.rb
437
452
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb
438
453
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/prototype_build_details_comment_action.rb
439
- - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/removebranchprotection_action.rb
440
- - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setbranchprotection_action.rb
454
+ - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/remove_branch_protection_action.rb
455
+ - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/set_branch_protection_action.rb
441
456
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setfrozentag_action.rb
442
457
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/upload_to_s3.rb
443
458
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/configure/configure_add_files_to_copy_action.rb
@@ -476,7 +491,6 @@ files:
476
491
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_metadata_source.rb
477
492
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_update_release_notes.rb
478
493
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_validate_ci_build.rb
479
- - lib/fastlane/plugin/wpmreleasetoolkit/helper/an_metadata_update_helper.rb
480
494
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_emulator_helper.rb
481
495
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_git_helper.rb
482
496
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_localize_helper.rb
@@ -497,11 +511,18 @@ files:
497
511
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_l10n_linter_helper.rb
498
512
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_strings_file_validation_helper.rb
499
513
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_version_helper.rb
514
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/metadata_block.rb
515
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/release_note_metadata_block.rb
516
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/release_note_short_metadata_block.rb
517
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/standard_metadata_block.rb
518
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/unknown_metadata_block.rb
519
+ - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata/whats_new_metadata_block.rb
500
520
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_download_helper.rb
501
- - lib/fastlane/plugin/wpmreleasetoolkit/helper/metadata_update_helper.rb
502
521
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb
503
522
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/release_notes_helper.rb
504
523
  - lib/fastlane/plugin/wpmreleasetoolkit/helper/user_agent.rb
524
+ - lib/fastlane/plugin/wpmreleasetoolkit/models/app_version.rb
525
+ - lib/fastlane/plugin/wpmreleasetoolkit/models/build_code.rb
505
526
  - lib/fastlane/plugin/wpmreleasetoolkit/models/configuration.rb
506
527
  - lib/fastlane/plugin/wpmreleasetoolkit/models/file_reference.rb
507
528
  - lib/fastlane/plugin/wpmreleasetoolkit/models/firebase_account.rb
@@ -509,6 +530,20 @@ files:
509
530
  - lib/fastlane/plugin/wpmreleasetoolkit/models/firebase_test_lab_result.rb
510
531
  - lib/fastlane/plugin/wpmreleasetoolkit/models/firebase_test_runner.rb
511
532
  - lib/fastlane/plugin/wpmreleasetoolkit/version.rb
533
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/abstract_version_calculator.rb
534
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/date_build_code_calculator.rb
535
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/date_version_calculator.rb
536
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/marketing_version_calculator.rb
537
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/semantic_version_calculator.rb
538
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/calculators/simple_build_code_calculator.rb
539
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/files/android_version_file.rb
540
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/files/ios_version_file.rb
541
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/abstract_version_formatter.rb
542
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/derived_build_code_formatter.rb
543
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/four_part_build_code_formatter.rb
544
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/four_part_version_formatter.rb
545
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/rc_notation_version_formatter.rb
546
+ - lib/fastlane/plugin/wpmreleasetoolkit/versioning/formatters/simple_build_code_formatter.rb
512
547
  homepage: https://github.com/wordpress-mobile/release-toolkit
513
548
  licenses:
514
549
  - MIT
@@ -1,63 +0,0 @@
1
- require 'fastlane/action'
2
- require_relative '../../helper/github_helper'
3
-
4
- module Fastlane
5
- module Actions
6
- class SetbranchprotectionAction < Action
7
- def self.run(params)
8
- repository = params[:repository]
9
- branch_name = params[:branch]
10
-
11
- branch_url = "https://api.github.com/repos/#{repository}/branches/#{branch_name}"
12
- restrictions = { url: "#{branch_url}/protection/restrictions", users_url: "#{branch_url}/protection/restrictions/users", teams_url: "#{branch_url}/protection/restrictions/teams", users: [], teams: [] }
13
- required_pull_request_reviews = { url: "#{branch_url}/protection/required_pull_request_reviews", dismiss_stale_reviews: false, require_code_owner_reviews: false }
14
-
15
- github_helper = Fastlane::Helper::GithubHelper.new(github_token: params[:github_token])
16
- github_helper.set_branch_protection(
17
- repository: repository,
18
- branch: branch_name,
19
- restrictions: restrictions,
20
- enforce_admins: nil,
21
- required_pull_request_reviews: required_pull_request_reviews
22
- )
23
- end
24
-
25
- def self.description
26
- "Sets the 'release branch' protection state for the specified branch"
27
- end
28
-
29
- def self.authors
30
- ['Automattic']
31
- end
32
-
33
- def self.return_value
34
- # If your method provides a return value, you can describe here what it does
35
- end
36
-
37
- def self.details
38
- # Optional:
39
- "Sets the 'release branch' protection state for the specified branch"
40
- end
41
-
42
- def self.available_options
43
- [
44
- FastlaneCore::ConfigItem.new(key: :repository,
45
- env_name: 'GHHELPER_REPOSITORY',
46
- description: 'The remote path of the GH repository on which we work',
47
- optional: false,
48
- type: String),
49
- FastlaneCore::ConfigItem.new(key: :branch,
50
- env_name: 'GHHELPER_BRANCH',
51
- description: 'The branch to protect',
52
- optional: false,
53
- type: String),
54
- Fastlane::Helper::GithubHelper.github_token_config_item,
55
- ]
56
- end
57
-
58
- def self.is_supported?(platform)
59
- true
60
- end
61
- end
62
- end
63
- end
@@ -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