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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91f751af186dcb78cb90b9acbf22c086e895dc6b74ad6b202783fe3f6d799a3d
4
- data.tar.gz: dc18ef774b7be132570b526e510c95022b0da490b45fd4483d6ec6ae39a0b1aa
3
+ metadata.gz: 23ad354c6590f6069b457d39322ffa803bc7d501bdd50c10354b01a0022e6ead
4
+ data.tar.gz: b29aaf076531e4cefc4fcff337a5d7b289339d11abdd4e225407ad71ed7bd267
5
5
  SHA512:
6
- metadata.gz: 3c527d936237f42547330dc39c740aaca01788a20a3c6e73024ebcddd11dbbce80d74bdeab5d7c39391d7beca6b23264a20fd25e79a1f44c58bb588164ae7238
7
- data.tar.gz: 9a640f1ee3d35cd1aa019cea2b9e0eb7898c3d39d0635334660f527073faeea0d5cf860ce5dfc7c90478d8c5f2361b61dbb083621805f95ae153a7900ef85d26
6
+ metadata.gz: b4cf94efd7f4793231a708c14d69a36328e4a705c7cbcd1f6cda1e8ea11c2dee251fa303c3e791a8e340fd5aa70289059cee164d40d620e138aa16fe806b6d09
7
+ data.tar.gz: b13e25e3fa906eebbdd712f2bcb7fe1f82168263f250768a22fd5b6c29c05857f4ff454e7f4d1da9d80eec319a3d3323f2d1b930e01571a815546f05fd096665
@@ -1,3 +1,3 @@
1
1
  module GemSorter
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.2'
3
3
  end
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 = gem_block[:gem_line].match(/gem\s*"([^"]+)"/)[1]
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
- return base if base == gem_block[:gem_line]
59
-
60
- gem_block[:gem_line] = [base, extra_params].select { |value| !value.nil? && !value.empty? }.join(',')
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*"[^"]*"\s*,\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].match(/gem\s*"([^"]+)"/)[1]
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
- class GemSorter::TaskConfig
4
- attr_reader :backup, :update_comments, :update_versions, :ignore_gems, :gemfile_path
5
-
6
- DEFAULT_CONFIG = {
7
- 'backup' => false,
8
- 'update_comments' => false,
9
- 'update_versions' => false,
10
- 'gemfile_path' => 'Gemfile',
11
- 'ignore_gems' => [],
12
- 'ignore_gem_versions' => [],
13
- 'ignore_gem_comments' => [],
14
- }.freeze
15
-
16
- def initialize(args = nil)
17
- @backup = nil
18
- @update_comments = nil
19
- @update_versions = nil
20
- @ignore_gems = nil
21
- @ignore_gem_versions = nil
22
- @ignore_gem_comments = nil
23
- @gemfile_path = nil
24
- load_config(args)
25
- end
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
- def backup
28
- @backup.nil? ? DEFAULT_CONFIG['backup'] : @backup
29
- end
28
+ def backup
29
+ @backup.nil? ? DEFAULT_CONFIG['backup'] : @backup
30
+ end
30
31
 
31
- def update_comments
32
- @update_comments.nil? ? DEFAULT_CONFIG['update_comments'] : @update_comments
33
- end
32
+ def update_comments
33
+ @update_comments.nil? ? DEFAULT_CONFIG['update_comments'] : @update_comments
34
+ end
34
35
 
35
- def update_versions
36
- @update_versions.nil? ? DEFAULT_CONFIG['update_versions'] : @update_versions
37
- end
36
+ def update_versions
37
+ @update_versions.nil? ? DEFAULT_CONFIG['update_versions'] : @update_versions
38
+ end
38
39
 
39
- def ignore_gems
40
- @ignore_gems.nil? ? DEFAULT_CONFIG['ignore_gems'] : @ignore_gems
41
- end
40
+ def ignore_gems
41
+ @ignore_gems.nil? ? DEFAULT_CONFIG['ignore_gems'] : @ignore_gems
42
+ end
42
43
 
43
- def ignore_gem_versions
44
- @ignore_gem_versions.nil? ? DEFAULT_CONFIG['ignore_gem_versions'] : @ignore_gem_versions
45
- end
44
+ def ignore_gem_versions
45
+ @ignore_gem_versions.nil? ? DEFAULT_CONFIG['ignore_gem_versions'] : @ignore_gem_versions
46
+ end
46
47
 
47
- def ignore_gem_comments
48
- @ignore_gem_comments.nil? ? DEFAULT_CONFIG['ignore_gem_comments'] : @ignore_gem_comments
49
- end
48
+ def ignore_gem_comments
49
+ @ignore_gem_comments.nil? ? DEFAULT_CONFIG['ignore_gem_comments'] : @ignore_gem_comments
50
+ end
50
51
 
51
- def gemfile_path
52
- @gemfile_path.nil? ? DEFAULT_CONFIG['gemfile_path'] : @gemfile_path
53
- end
52
+ def gemfile_path
53
+ @gemfile_path.nil? ? DEFAULT_CONFIG['gemfile_path'] : @gemfile_path
54
+ end
54
55
 
55
- private
56
+ private
56
57
 
57
- def load_config(args)
58
- load_config_from_file
59
- load_config_from_args(args)
60
- end
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
- def load_config_from_args(args)
76
- return unless args
76
+ def load_config_from_args(args)
77
+ return unless args
77
78
 
78
- @backup = parse_boolean(args[:backup]) unless args[:backup].nil?
79
- @update_comments = parse_boolean(args[:update_comments]) unless args[:update_comments].nil?
80
- @update_versions = parse_boolean(args[:update_versions]) unless args[:update_versions].nil?
81
- @gemfile_path = args[:gemfile_path] unless args[:gemfile_path].nil?
82
- @ignore_gems = args[:ignore_gems] unless args[:ignore_gems].nil?
83
- @ignore_gem_versions = args[:ignore_gem_versions] unless args[:ignore_gem_versions].nil?
84
- @ignore_gem_comments = args[:ignore_gem_comments] unless args[:ignore_gem_comments].nil?
85
- end
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
- def parse_boolean(value)
88
- value.to_s.downcase == 'true'
89
- end
88
+ def parse_boolean(value)
89
+ value.to_s.downcase == 'true'
90
+ end
90
91
 
91
- def gem_sorter_config_file_path
92
- 'gem_sorter.yml'
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.0
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-06 00:00:00.000000000 Z
10
+ date: 2025-01-14 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rake