fastlane-plugin-csv_translation 0.4.1 → 1.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7189ea70602d3f9110b9275ccff1d796c1ada3e1169217a4c6ed58df5d73ac18
4
- data.tar.gz: d459fb0ed36b20e1fb453dd91bcab49d3af60e345d7027326c02d4b0e68a50f1
3
+ metadata.gz: 883e0573fdcc3b3923504ef23547d0eebbea677a1d9f9372e4768014dd7d1780
4
+ data.tar.gz: 156764d6b54bae70722ef2f5a31bd8b3a3355edaa6dbdb81986a42fb70a966a1
5
5
  SHA512:
6
- metadata.gz: bb5b1e92b389a06f1d0f7a88483092e82489efe6450fec63b42bbe11746f653619b092340bdb6e8dffc67f395ec34fa7ba7918d22aa4ac9c812b0034465662dd
7
- data.tar.gz: 2230a17886dc5485dea6aef9858513d3ec8906aa0d6b41180055f104b91c153bfcb2c6ebb3d68d8947e76da932b28774788ea222492b4dfb06365aecfbabdb9b
6
+ metadata.gz: 1ee82fd160f9ce14b5b0730a4a97006b90d156fdfa999727c51b41929a5c6226ece25f1440bc3c0e2a6991597d904300f3cc65d8d1ec2d8a80d52c85f973bbd4
7
+ data.tar.gz: 455b0e810d17e9658149afa3b52a79ab71bd3fd3019f6a5216c92300cbbf11871e5bb0a66b8253c285c7f83ed490aea87acc5284614df1fe62f0b60de9721d5c
@@ -0,0 +1,75 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/csv_translation_helper'
3
+
4
+ module Fastlane
5
+ module Actions
6
+ module SharedValues
7
+ CREATE_CSV_FEATURE_BRANCH_INFO = :CREATE_CSV_FEATURE_BRANCH_INFO
8
+ end
9
+
10
+ class CreateCsvFeatureBranchAction < Action
11
+ def self.run(params)
12
+ # fetching csv file
13
+ csv_file_folder = Helper::CsvTranslationHelper.create_feature_branch(
14
+ repository_name: params[:repository_name],
15
+ branch_name: params[:branch_name],
16
+ feature_branch_name: params[:feature_branch_name]
17
+ )
18
+
19
+ Actions.lane_context[SharedValues::CREATE_CSV_FEATURE_BRANCH_INFO] = csv_file_folder
20
+ return csv_file_folder
21
+ end
22
+
23
+ def self.description
24
+ "Create a csv feature branch."
25
+ end
26
+
27
+ def self.output
28
+ [
29
+ ['CREATE_CSV_FEATURE_BRANCH_INFO', 'Created feature branch info']
30
+ ]
31
+ end
32
+
33
+ def self.available_options
34
+ [
35
+ FastlaneCore::ConfigItem.new(key: :repository_name,
36
+ env_name: "FL_CREATE_CSV_FEATURE_BRANCH_REPOSITORY_NAME",
37
+ description: "The name to your repository, e.g. 'fastlane/fastlane'",
38
+ verify_block: proc do |value|
39
+ UI.user_error!("No repository_name given in input param") unless (value and not value.empty?)
40
+ end),
41
+ FastlaneCore::ConfigItem.new(key: :branch_name,
42
+ env_name: "FL_CREATE_CSV_BASE_BRANCH_NAME",
43
+ description: "The branch name to your repository, (default main)",
44
+ is_string: true,
45
+ default_value: "main"),
46
+ FastlaneCore::ConfigItem.new(key: :feature_branch_name,
47
+ env_name: "FL_CREATE_CSV_FEATURE_BRANCH_NAME",
48
+ description: "The feature branch name for new translation request (Useful if no direct commit allowed in main)",
49
+ is_string: true,
50
+ optional: true)
51
+ ]
52
+ end
53
+
54
+ def self.authors
55
+ ["crazymanish"]
56
+ end
57
+
58
+ def self.example_code
59
+ [
60
+ 'create_csv_feature_branch(
61
+ repository_name: "fastlane/fastlane",
62
+ feature_branch_name: "some_feature_branch_name")',
63
+ 'create_csv_feature_branch(
64
+ repository_name: "fastlane/fastlane",
65
+ branch_name: "main",
66
+ feature_branch_name: "some_feature_branch_name")'
67
+ ]
68
+ end
69
+
70
+ def self.is_supported?(platform)
71
+ true
72
+ end
73
+ end
74
+ end
75
+ end
@@ -68,12 +68,12 @@ module Fastlane
68
68
  end),
69
69
  FastlaneCore::ConfigItem.new(key: :branch_name,
70
70
  env_name: "FL_CREATE_CSV_TRANSLATION_REQUEST_BRANCH_NAME",
71
- description: "The branch name to your repository, (default master)",
71
+ description: "The branch name to your repository, (default main)",
72
72
  is_string: true,
73
- default_value: "master"),
73
+ default_value: "main"),
74
74
  FastlaneCore::ConfigItem.new(key: :feature_branch_name,
75
75
  env_name: "FL_CREATE_CSV_TRANSLATION_REQUEST_FEATURE_BRANCH_NAME",
76
- description: "The feature branch name for new translation request (Useful if no direct commit allowed in master)",
76
+ description: "The feature branch name for new translation request (Useful if no direct commit allowed in main)",
77
77
  is_string: true,
78
78
  optional: true),
79
79
  FastlaneCore::ConfigItem.new(key: :file_path,
@@ -99,7 +99,7 @@ module Fastlane
99
99
  payload: {"header_name" => "some_value"})',
100
100
  'create_csv_translation_request(
101
101
  repository_name: "fastlane/fastlane",
102
- branch_name: "master",
102
+ branch_name: "main",
103
103
  file_path: "translation/some_csv_name.csv",
104
104
  payload: {"header_name" => "some_value"})'
105
105
  ]
@@ -79,12 +79,12 @@ module Fastlane
79
79
  end),
80
80
  FastlaneCore::ConfigItem.new(key: :branch_name,
81
81
  env_name: "FL_DELETE_CSV_TRANSLATION_REQUEST_BRANCH_NAME",
82
- description: "The branch name to your repository, (default master)",
82
+ description: "The branch name to your repository, (default main)",
83
83
  is_string: true,
84
- default_value: "master"),
84
+ default_value: "main"),
85
85
  FastlaneCore::ConfigItem.new(key: :feature_branch_name,
86
86
  env_name: "FL_DELETE_CSV_TRANSLATION_REQUEST_FEATURE_BRANCH_NAME",
87
- description: "The feature branch name for new translation request (Useful if no direct commit allowed in master)",
87
+ description: "The feature branch name for new translation request (Useful if no direct commit allowed in main)",
88
88
  is_string: true,
89
89
  optional: true),
90
90
  FastlaneCore::ConfigItem.new(key: :file_path,
@@ -110,7 +110,7 @@ module Fastlane
110
110
  identifier: "some_identifier_value")',
111
111
  'delete_csv_translation_request(
112
112
  repository_name: "fastlane/fastlane",
113
- branch_name: "master",
113
+ branch_name: "main",
114
114
  file_path: "translation/some_csv_name.csv",
115
115
  identifier: "some_identifier_value")'
116
116
  ]
@@ -0,0 +1,66 @@
1
+ require 'fastlane/action'
2
+ require_relative '../helper/csv_translation_helper'
3
+
4
+ module Fastlane
5
+ module Actions
6
+ module SharedValues
7
+ FETCH_CSV_BRANCH_INFO = :FETCH_CSV_BRANCH_INFO
8
+ end
9
+
10
+ class FetchCsvBranchAction < Action
11
+ def self.run(params)
12
+ # fetching csv file
13
+ csv_file_folder = Helper::CsvTranslationHelper.fetch_csv_file(
14
+ repository_name: params[:repository_name],
15
+ branch_name: params[:branch_name]
16
+ )
17
+
18
+ Actions.lane_context[SharedValues::CREATE_CSV_FEATURE_BRANCH_INFO] = csv_file_folder
19
+ return csv_file_folder
20
+ end
21
+
22
+ def self.description
23
+ "Fetch a csv file branch."
24
+ end
25
+
26
+ def self.output
27
+ [
28
+ ['FETCH_CSV_BRANCH_INFO', 'Fetched CSV file branch info']
29
+ ]
30
+ end
31
+
32
+ def self.available_options
33
+ [
34
+ FastlaneCore::ConfigItem.new(key: :repository_name,
35
+ env_name: "FL_FETCH_CSV_REPOSITORY_NAME",
36
+ description: "The name to your repository, e.g. 'fastlane/fastlane'",
37
+ verify_block: proc do |value|
38
+ UI.user_error!("No repository_name given in input param") unless (value and not value.empty?)
39
+ end),
40
+ FastlaneCore::ConfigItem.new(key: :branch_name,
41
+ env_name: "FL_FETCH_CSV_BRANCH_NAME",
42
+ description: "The branch name to your repository, (default main)",
43
+ is_string: true,
44
+ default_value: "main")
45
+ ]
46
+ end
47
+
48
+ def self.authors
49
+ ["crazymanish"]
50
+ end
51
+
52
+ def self.example_code
53
+ [
54
+ 'fetch_csv_branch(repository_name: "fastlane/fastlane")',
55
+ 'fetch_csv_branch(
56
+ repository_name: "fastlane/fastlane",
57
+ branch_name: "some_feature_branch_name")'
58
+ ]
59
+ end
60
+
61
+ def self.is_supported?(platform)
62
+ true
63
+ end
64
+ end
65
+ end
66
+ end
@@ -66,9 +66,9 @@ module Fastlane
66
66
  end),
67
67
  FastlaneCore::ConfigItem.new(key: :branch_name,
68
68
  env_name: "FL_GET_CSV_TRANSLATION_REQUESTS_BRANCH_NAME",
69
- description: "The branch name to your repository, (default master)",
69
+ description: "The branch name to your repository, (default main)",
70
70
  is_string: true,
71
- default_value: "master"),
71
+ default_value: "main"),
72
72
  FastlaneCore::ConfigItem.new(key: :file_path,
73
73
  env_name: "FL_GET_CSV_TRANSLATION_REQUESTS_FILE_PATH",
74
74
  description: "The file path to your csv file",
@@ -104,7 +104,7 @@ module Fastlane
104
104
  file_path: "translation/some_csv_name.csv")',
105
105
  'get_csv_translation_requests(
106
106
  repository_name: "fastlane/fastlane",
107
- branch_name: "master",
107
+ branch_name: "main",
108
108
  file_path: "translation/some_csv_name.csv")'
109
109
  ]
110
110
  end
@@ -17,12 +17,15 @@ module Fastlane
17
17
 
18
18
  csv_file_path = "#{csv_file_folder}/#{params[:file_path]}"
19
19
  csv_row_identifier = params[:identifier]
20
+ csv_row_identifier_header = params[:identifier_header]
20
21
 
21
22
  require 'csv'
22
23
 
23
24
  # picking translation request-identifier entry from the feature_branch csv file
24
- feature_branch_translation_requests = CSV.table(csv_file_path, headers: true)
25
- feature_branch_translation_requests = feature_branch_translation_requests.select { |row| row.map { |value| value.to_s }.join("").include?(csv_row_identifier) }
25
+ feature_branch_translation_requests = CSV.foreach(csv_file_path, headers: true).map { |row| row.to_h }
26
+ feature_branch_translation_requests = feature_branch_translation_requests.select do |translation_request|
27
+ translation_request[csv_row_identifier_header].eql?(csv_row_identifier)
28
+ end
26
29
 
27
30
  # rebasing CSV file
28
31
  git_commit_info = {}
@@ -53,6 +56,7 @@ module Fastlane
53
56
 
54
57
  def self.perform_rebase(params, csv_file_path, feature_branch_translation_requests)
55
58
  csv_row_identifier = params[:identifier]
59
+ csv_row_identifier_header = params[:identifier_header]
56
60
 
57
61
  # Step2: Commit csv file so rebase can be performed
58
62
  git_message = "Rebase translation request: identifier:\n#{csv_row_identifier}"
@@ -65,8 +69,10 @@ module Fastlane
65
69
  Helper::CsvTranslationHelper.append_missing_eof(csv_file_path)
66
70
 
67
71
  # Step5: Append back feature branch translation_requests
68
- all_translation_requests = CSV.table(csv_file_path, headers: true)
69
- all_translation_requests.delete_if { |row| row.map { |value| value.to_s }.join("").include?(csv_row_identifier) }
72
+ all_translation_requests = CSV.foreach(csv_file_path, headers: true).map { |row| row.to_h }
73
+ all_translation_requests.delete_if do |translation_request|
74
+ translation_request[csv_row_identifier_header].eql?(csv_row_identifier)
75
+ end
70
76
 
71
77
  headers = CSV.open(csv_file_path, &:readline)
72
78
  CSV.open(csv_file_path, "w", write_headers: true, headers: headers, force_quotes: true) do |csv|
@@ -102,17 +108,23 @@ module Fastlane
102
108
  end),
103
109
  FastlaneCore::ConfigItem.new(key: :branch_name,
104
110
  env_name: "FL_REBASE_CSV_TRANSLATION_REQUEST_BRANCH_NAME",
105
- description: "The branch name to your repository, (default master)",
111
+ description: "The branch name to your repository, (default main)",
106
112
  is_string: true,
107
- default_value: "master"),
113
+ default_value: "main"),
108
114
  FastlaneCore::ConfigItem.new(key: :feature_branch_name,
109
115
  env_name: "FL_REBASE_CSV_TRANSLATION_REQUEST_FEATURE_BRANCH_NAME",
110
- description: "The feature branch name for new translation request (Useful if no direct commit allowed in master)",
116
+ description: "The feature branch name for new translation request (Useful if no direct commit allowed in main)",
111
117
  is_string: true),
112
118
  FastlaneCore::ConfigItem.new(key: :file_path,
113
119
  env_name: "FL_REBASE_CSV_TRANSLATION_REQUEST_FILE_PATH",
114
120
  description: "The file path to your csv file",
115
121
  is_string: true),
122
+ FastlaneCore::ConfigItem.new(key: :identifier_header,
123
+ env_name: "FL_REBASE_CSV_TRANSLATION_REQUEST_IDENTIFIER_HEADER",
124
+ description: "An identifier header(column name) of the CSV file",
125
+ is_string: true,
126
+ optional: true,
127
+ default_value: "Ticket"),
116
128
  FastlaneCore::ConfigItem.new(key: :identifier,
117
129
  env_name: "FL_REBASE_CSV_TRANSLATION_REQUEST_IDENTIFIER",
118
130
  description: "An identifier value of the CSV file row",
@@ -133,7 +145,7 @@ module Fastlane
133
145
  identifier: "some_identifier_value")',
134
146
  'rebase_csv_translation_request(
135
147
  repository_name: "fastlane/fastlane",
136
- branch_name: "master",
148
+ branch_name: "main",
137
149
  feature_branch_name: "some_feature_branch",
138
150
  file_path: "translation/some_csv_name.csv",
139
151
  identifier: "some_identifier_value")'
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module CsvTranslation
3
- VERSION = "0.4.1"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-csv_translation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manish Rathi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-24 00:00:00.000000000 Z
11
+ date: 2020-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -145,8 +145,10 @@ files:
145
145
  - LICENSE
146
146
  - README.md
147
147
  - lib/fastlane/plugin/csv_translation.rb
148
+ - lib/fastlane/plugin/csv_translation/actions/create_csv_feature_branch.rb
148
149
  - lib/fastlane/plugin/csv_translation/actions/create_csv_translation_request.rb
149
150
  - lib/fastlane/plugin/csv_translation/actions/delete_csv_translation_request.rb
151
+ - lib/fastlane/plugin/csv_translation/actions/fetch_csv_branch.rb
150
152
  - lib/fastlane/plugin/csv_translation/actions/get_csv_translation_requests.rb
151
153
  - lib/fastlane/plugin/csv_translation/actions/rebase_csv_translation_request.rb
152
154
  - lib/fastlane/plugin/csv_translation/helper/csv_translation_helper.rb
@@ -170,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
172
  - !ruby/object:Gem::Version
171
173
  version: '0'
172
174
  requirements: []
173
- rubygems_version: 3.0.3
175
+ rubygems_version: 3.1.4
174
176
  signing_key:
175
177
  specification_version: 4
176
178
  summary: "A fastlane plugin to manage translation using a CSV file under git repository.