standard-performance 1.1.1 → 1.1.2

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: d3313cb1b98296491d99d1c41ba34d8fb1d23554a3db84466c38a74bba905762
4
- data.tar.gz: 0fde13d39f95f79376ae9c848a180661f708168033395cb0d66bb3a04ef57aba
3
+ metadata.gz: 930070f7d659e1940012562f63b84b5ed14c00c3e35d3d7e06319d0a9be44f21
4
+ data.tar.gz: cf9d413e889ff09bf457903083f807bfe4f9c91e920024db8ba6fb70fbc5be8f
5
5
  SHA512:
6
- metadata.gz: 6c0e97d9db245d0a97e1a4cb35cd2835de358b98d973056a8c6e2f0f4353e6fbf7d935f8c7da9d8d6667d7f7a4e0e4bafffc17f49e627b41ffb9051c4fc1b567
7
- data.tar.gz: bdf5658c49bfb5e21c58c22dc00db7e335217eab5c8cbd0afbf4779aab2421b2e8acba81ef7ed316b1160b9b4cb03b613f8988b89923d80b8df745fb31e8a240
6
+ metadata.gz: 516ddf177823b318787c6522f36a88e9321bab42c3965cbcf6283549fddab75ae8073615d4044788110e9aadeac61a0ce842a959b33a20ec6a27f73f9eda2050
7
+ data.tar.gz: 8d23940d46563584f6c24870f1483c724fe94efb9d46555a0c602c2f592e8730702060cd9cb0d970b8a4f5e5650433c0f789448a6d91dd694bee69583eda7021
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [1.1.2]
2
+
3
+ - Fix inheritance of YAML files when specifying an unsupported Ruby
4
+ [standard#573](https://github.com/standardrb/standard/issues/573)
5
+
1
6
  ## [1.1.1]
2
7
 
3
8
  - Preserve metadata from rubocop-performance by merging it
data/Gemfile CHANGED
@@ -5,3 +5,4 @@ gem "rake"
5
5
  gem "minitest"
6
6
  gem "standard"
7
7
  gem "m"
8
+ gem "mocktail"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- standard-performance (1.1.1)
4
+ standard-performance (1.1.2)
5
5
  lint_roller (~> 1.1)
6
6
  rubocop-performance (~> 1.18.0)
7
7
 
@@ -17,6 +17,7 @@ GEM
17
17
  rake (>= 0.9.2.2)
18
18
  method_source (1.0.0)
19
19
  minitest (5.18.1)
20
+ mocktail (1.2.2)
20
21
  parallel (1.23.0)
21
22
  parser (3.2.2.3)
22
23
  ast (~> 2.4.1)
@@ -60,6 +61,7 @@ PLATFORMS
60
61
  DEPENDENCIES
61
62
  m
62
63
  minitest
64
+ mocktail
63
65
  rake
64
66
  standard
65
67
  standard-performance!
@@ -0,0 +1,21 @@
1
+ require_relative "determines_yaml_path"
2
+ require_relative "loads_yaml_with_inheritance"
3
+
4
+ module Standard
5
+ module Performance
6
+ class BuildsRuleset
7
+ def initialize
8
+ @determines_yaml_path = DeterminesYamlPath.new
9
+ @loads_yaml_with_inheritance = LoadsYamlWithInheritance.new
10
+ @merges_upstream_metadata = LintRoller::Support::MergesUpstreamMetadata.new
11
+ end
12
+
13
+ def build(target_ruby_version)
14
+ @merges_upstream_metadata.merge(
15
+ @loads_yaml_with_inheritance.load(@determines_yaml_path.determine(target_ruby_version)),
16
+ @loads_yaml_with_inheritance.load(Pathname.new(Gem.loaded_specs["rubocop-performance"].full_gem_path).join("config/default.yml"))
17
+ )
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,31 @@
1
+ require "yaml"
2
+
3
+ module Standard
4
+ module Performance
5
+ class LoadsYamlWithInheritance
6
+ def load(path)
7
+ yaml = YAML.load_file(path)
8
+ if (parent_path = yaml.delete("inherit_from"))
9
+ base_path = File.dirname(path)
10
+ parent_yaml = load(File.join(base_path, parent_path))
11
+
12
+ two_layer_merge(parent_yaml, yaml)
13
+ else
14
+ yaml
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def two_layer_merge(parent, base)
21
+ parent.merge(base) do |key, parent_value, base_value|
22
+ if parent_value.is_a?(Hash) && base_value.is_a?(Hash)
23
+ parent_value.merge(base_value)
24
+ else
25
+ base_value
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,11 +1,10 @@
1
- require_relative "determines_yaml_path"
1
+ require_relative "builds_ruleset"
2
2
 
3
3
  module Standard::Performance
4
4
  class Plugin < LintRoller::Plugin
5
5
  def initialize(config)
6
6
  @config = config
7
- @merges_upstream_metadata = LintRoller::Support::MergesUpstreamMetadata.new
8
- @determines_yaml_path = DeterminesYamlPath.new
7
+ @builds_ruleset = BuildsRuleset.new
9
8
  end
10
9
 
11
10
  def about
@@ -24,15 +23,10 @@ module Standard::Performance
24
23
  def rules(context)
25
24
  trick_rubocop_into_thinking_we_required_rubocop_performance!
26
25
 
27
- rules = @merges_upstream_metadata.merge(
28
- YAML.load_file(@determines_yaml_path.determine(context.target_ruby_version)),
29
- YAML.load_file(Pathname.new(Gem.loaded_specs["rubocop-performance"].full_gem_path).join("config/default.yml"))
30
- )
31
-
32
26
  LintRoller::Rules.new(
33
27
  type: :object,
34
28
  config_format: :rubocop,
35
- value: rules
29
+ value: @builds_ruleset.build(context.target_ruby_version)
36
30
  )
37
31
  end
38
32
 
@@ -1,5 +1,5 @@
1
1
  module Standard
2
2
  module Performance
3
- VERSION = "1.1.1"
3
+ VERSION = "1.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: standard-performance
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Searls
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-07 00:00:00.000000000 Z
11
+ date: 2023-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lint_roller
@@ -61,7 +61,9 @@ files:
61
61
  - docs/RELEASE.md
62
62
  - lib/standard-performance.rb
63
63
  - lib/standard/performance.rb
64
+ - lib/standard/performance/builds_ruleset.rb
64
65
  - lib/standard/performance/determines_yaml_path.rb
66
+ - lib/standard/performance/loads_yaml_with_inheritance.rb
65
67
  - lib/standard/performance/plugin.rb
66
68
  - lib/standard/performance/version.rb
67
69
  homepage: https://github.com/standardrb/standard-performance
@@ -80,7 +82,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
82
  requirements:
81
83
  - - ">="
82
84
  - !ruby/object:Gem::Version
83
- version: 2.6.0
85
+ version: 2.7.0
84
86
  required_rubygems_version: !ruby/object:Gem::Requirement
85
87
  requirements:
86
88
  - - ">="