gem_sorter 0.3.0 → 0.3.2
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 +4 -4
- data/lib/gem_sorter/version.rb +1 -1
- data/lib/gem_sorter.rb +13 -9
- data/lib/task_config.rb +70 -68
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23ad354c6590f6069b457d39322ffa803bc7d501bdd50c10354b01a0022e6ead
|
4
|
+
data.tar.gz: b29aaf076531e4cefc4fcff337a5d7b289339d11abdd4e225407ad71ed7bd267
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4cf94efd7f4793231a708c14d69a36328e4a705c7cbcd1f6cda1e8ea11c2dee251fa303c3e791a8e340fd5aa70289059cee164d40d620e138aa16fe806b6d09
|
7
|
+
data.tar.gz: b13e25e3fa906eebbdd712f2bcb7fe1f82168263f250768a22fd5b6c29c05857f4ff454e7f4d1da9d80eec319a3d3323f2d1b930e01571a815546f05fd096665
|
data/lib/gem_sorter/version.rb
CHANGED
data/lib/gem_sorter.rb
CHANGED
@@ -49,33 +49,33 @@ module GemSorter
|
|
49
49
|
def update_version_text(gems)
|
50
50
|
@versions ||= fetch_versions_from_lockfile("#{@filepath}.lock")
|
51
51
|
gems.each do |gem_block|
|
52
|
-
gem_name =
|
52
|
+
gem_name = extract_gem_name(gem_block[:gem_line])
|
53
53
|
next if @config.ignore_gems.include?(gem_name) || @config.ignore_gem_versions.include?(gem_name)
|
54
54
|
|
55
55
|
version = @versions[gem_name]
|
56
56
|
extra_params = extract_params(gem_block[:gem_line])
|
57
57
|
base = version ? "#{fetch_gemfile_text(gem_name, version, gem_block[:gem_line])}" : gem_block[:gem_line]
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
if base != gem_block[:gem_line]
|
59
|
+
gem_block[:gem_line] = [base.strip, extra_params].select { |value| !value.nil? && !value.empty? }.join(',')
|
60
|
+
end
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
64
|
def extract_params(gem_line)
|
65
|
-
return nil unless gem_line =~ /gem\s
|
65
|
+
return nil unless gem_line =~ /gem\s+['"][^'"]+['"]/
|
66
66
|
|
67
|
-
if gem_line =~ /gem\s
|
67
|
+
if gem_line =~ /gem\s+['"][^'"]+['"]\s*,\s*(.*)/
|
68
68
|
additional_params = $1.strip
|
69
69
|
return nil if additional_params.empty?
|
70
|
-
params_with_colon = additional_params.scan(/(\w+:\s*[^,]+)/).flatten
|
71
|
-
return params_with_colon.join(', ') unless params_with_colon.empty?
|
70
|
+
params_with_colon = additional_params.scan(/(\w+:\s*[^,]+(?:,\s*[^,]+)*|\w+:\s*['"][^'"]+['"])/).flatten
|
71
|
+
return " #{params_with_colon.join(', ')}" unless params_with_colon.empty?
|
72
72
|
end
|
73
73
|
nil
|
74
74
|
end
|
75
75
|
|
76
76
|
def update_gem_summaries(gems)
|
77
77
|
gems.each do |gem_block|
|
78
|
-
gem_name = gem_block[:gem_line]
|
78
|
+
gem_name = extract_gem_name(gem_block[:gem_line])
|
79
79
|
next if @config.ignore_gems.include?(gem_name) || @config.ignore_gem_comments.include?(gem_name)
|
80
80
|
|
81
81
|
if summary = get_summary(gem_name, false)
|
@@ -84,6 +84,10 @@ module GemSorter
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
+
def extract_gem_name(gem_line)
|
88
|
+
gem_line.match(/gem\s+['"]([^'"]+)['"]/)[1]
|
89
|
+
end
|
90
|
+
|
87
91
|
def process_main_section(section)
|
88
92
|
lines = section.split("\n").map(&:strip).reject(&:empty?)
|
89
93
|
source_line = lines.shift
|
data/lib/task_config.rb
CHANGED
@@ -1,66 +1,68 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
3
|
+
module GemSorter
|
4
|
+
class TaskConfig
|
5
|
+
attr_reader :backup, :update_comments, :update_versions, :ignore_gems, :gemfile_path
|
6
|
+
|
7
|
+
DEFAULT_CONFIG = {
|
8
|
+
'backup' => false,
|
9
|
+
'update_comments' => false,
|
10
|
+
'update_versions' => false,
|
11
|
+
'gemfile_path' => 'Gemfile',
|
12
|
+
'ignore_gems' => [],
|
13
|
+
'ignore_gem_versions' => [],
|
14
|
+
'ignore_gem_comments' => []
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
def initialize(args = nil)
|
18
|
+
@backup = nil
|
19
|
+
@update_comments = nil
|
20
|
+
@update_versions = nil
|
21
|
+
@ignore_gems = nil
|
22
|
+
@ignore_gem_versions = nil
|
23
|
+
@ignore_gem_comments = nil
|
24
|
+
@gemfile_path = nil
|
25
|
+
load_config(args)
|
26
|
+
end
|
26
27
|
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
def backup
|
29
|
+
@backup.nil? ? DEFAULT_CONFIG['backup'] : @backup
|
30
|
+
end
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
def update_comments
|
33
|
+
@update_comments.nil? ? DEFAULT_CONFIG['update_comments'] : @update_comments
|
34
|
+
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
def update_versions
|
37
|
+
@update_versions.nil? ? DEFAULT_CONFIG['update_versions'] : @update_versions
|
38
|
+
end
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
|
40
|
+
def ignore_gems
|
41
|
+
@ignore_gems.nil? ? DEFAULT_CONFIG['ignore_gems'] : @ignore_gems
|
42
|
+
end
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
def ignore_gem_versions
|
45
|
+
@ignore_gem_versions.nil? ? DEFAULT_CONFIG['ignore_gem_versions'] : @ignore_gem_versions
|
46
|
+
end
|
46
47
|
|
47
|
-
|
48
|
-
|
49
|
-
|
48
|
+
def ignore_gem_comments
|
49
|
+
@ignore_gem_comments.nil? ? DEFAULT_CONFIG['ignore_gem_comments'] : @ignore_gem_comments
|
50
|
+
end
|
50
51
|
|
51
|
-
|
52
|
-
|
53
|
-
|
52
|
+
def gemfile_path
|
53
|
+
@gemfile_path.nil? ? DEFAULT_CONFIG['gemfile_path'] : @gemfile_path
|
54
|
+
end
|
54
55
|
|
55
|
-
|
56
|
+
private
|
56
57
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
def load_config(args)
|
59
|
+
load_config_from_file
|
60
|
+
load_config_from_args(args)
|
61
|
+
end
|
62
|
+
|
63
|
+
def load_config_from_file
|
64
|
+
return unless File.exist?(gem_sorter_config_file_path)
|
61
65
|
|
62
|
-
def load_config_from_file
|
63
|
-
if File.exist?(gem_sorter_config_file_path)
|
64
66
|
task_config = YAML.load_file(gem_sorter_config_file_path)
|
65
67
|
@backup = task_config['backup'] if task_config.key?('backup')
|
66
68
|
@update_comments = task_config['update_comments'] if task_config.key?('update_comments')
|
@@ -70,25 +72,25 @@ class GemSorter::TaskConfig
|
|
70
72
|
@ignore_gem_versions = task_config['ignore_gem_versions'] if task_config.key?('ignore_gem_versions')
|
71
73
|
@ignore_gem_comments = task_config['ignore_gem_comments'] if task_config.key?('ignore_gem_comments')
|
72
74
|
end
|
73
|
-
end
|
74
75
|
|
75
|
-
|
76
|
-
|
76
|
+
def load_config_from_args(args)
|
77
|
+
return unless args
|
77
78
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
79
|
+
@backup = parse_boolean(args[:backup]) unless args[:backup].nil?
|
80
|
+
@update_comments = parse_boolean(args[:update_comments]) unless args[:update_comments].nil?
|
81
|
+
@update_versions = parse_boolean(args[:update_versions]) unless args[:update_versions].nil?
|
82
|
+
@gemfile_path = args[:gemfile_path] unless args[:gemfile_path].nil?
|
83
|
+
@ignore_gems = args[:ignore_gems] unless args[:ignore_gems].nil?
|
84
|
+
@ignore_gem_versions = args[:ignore_gem_versions] unless args[:ignore_gem_versions].nil?
|
85
|
+
@ignore_gem_comments = args[:ignore_gem_comments] unless args[:ignore_gem_comments].nil?
|
86
|
+
end
|
86
87
|
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
def parse_boolean(value)
|
89
|
+
value.to_s.downcase == 'true'
|
90
|
+
end
|
90
91
|
|
91
|
-
|
92
|
-
|
92
|
+
def gem_sorter_config_file_path
|
93
|
+
'gem_sorter.yml'
|
94
|
+
end
|
93
95
|
end
|
94
|
-
end
|
96
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem_sorter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Renan Garcia
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-01-
|
10
|
+
date: 2025-01-14 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rake
|