fastlane-plugin-csv_translation 0.4.1 → 1.2.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: 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.