From 803a1478a15bf07928605092bbdcddfbcef8d1c5 Mon Sep 17 00:00:00 2001 From: Danny Ben Shitrit Date: Wed, 3 Dec 2025 18:44:54 +0000 Subject: [PATCH 1/3] fix rubocop violations --- .rubocop.yml | 2 +- lib/madness/directory.rb | 1 + lib/madness/document.rb | 1 + lib/madness/inline_table_of_contents.rb | 1 + lib/madness/item.rb | 1 + lib/madness/markdown_document.rb | 1 + lib/madness/navigation.rb | 1 + lib/madness/search.rb | 1 + lib/madness/server.rb | 2 +- lib/madness/settings.rb | 1 + spec/spec_helper.rb | 1 + 11 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 025dbdb..602ec81 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,4 @@ -require: +plugins: - rubocop-performance - rubocop-rspec diff --git a/lib/madness/directory.rb b/lib/madness/directory.rb index 2b95db6..027cee5 100644 --- a/lib/madness/directory.rb +++ b/lib/madness/directory.rb @@ -2,6 +2,7 @@ module Madness # Represents a directory with markdown file sand subflders. class Directory include ServerHelper + using ArrayRefinements using StringRefinements diff --git a/lib/madness/document.rb b/lib/madness/document.rb index d40d6cb..d1d8923 100644 --- a/lib/madness/document.rb +++ b/lib/madness/document.rb @@ -2,6 +2,7 @@ module Madness # Handle a single document path. class Document include ServerHelper + using StringRefinements attr_reader :base, :path, :type, :file, :dir, :title diff --git a/lib/madness/inline_table_of_contents.rb b/lib/madness/inline_table_of_contents.rb index a91e5af..643f725 100644 --- a/lib/madness/inline_table_of_contents.rb +++ b/lib/madness/inline_table_of_contents.rb @@ -2,6 +2,7 @@ module Madness # Generate a markdown Table of Contents for a single document class InlineTableOfContents include ServerHelper + using StringRefinements attr_reader :text diff --git a/lib/madness/item.rb b/lib/madness/item.rb index 6235070..fffa7aa 100644 --- a/lib/madness/item.rb +++ b/lib/madness/item.rb @@ -1,6 +1,7 @@ module Madness class Item include ServerHelper + using StringRefinements attr_reader :path, :type diff --git a/lib/madness/markdown_document.rb b/lib/madness/markdown_document.rb index db6aa03..232e361 100644 --- a/lib/madness/markdown_document.rb +++ b/lib/madness/markdown_document.rb @@ -4,6 +4,7 @@ module Madness # Handle a pure markdown document. class MarkdownDocument include ServerHelper + using StringRefinements attr_reader :markdown, :title diff --git a/lib/madness/navigation.rb b/lib/madness/navigation.rb index 1110291..f0adaf8 100644 --- a/lib/madness/navigation.rb +++ b/lib/madness/navigation.rb @@ -2,6 +2,7 @@ module Madness # Handle the navigation links for a given directory class Navigation include ServerHelper + using ArrayRefinements using StringRefinements diff --git a/lib/madness/search.rb b/lib/madness/search.rb index 1152d26..5c0a3dd 100644 --- a/lib/madness/search.rb +++ b/lib/madness/search.rb @@ -3,6 +3,7 @@ module Madness class Search include ServerHelper + using StringRefinements def initialize(path = nil) diff --git a/lib/madness/server.rb b/lib/madness/server.rb index 772e399..a37db32 100644 --- a/lib/madness/server.rb +++ b/lib/madness/server.rb @@ -42,7 +42,7 @@ class Server < ServerBase nav = Navigation.new dir breadcrumbs = Breadcrumbs.new(path).links - if (nav.links.count == 1) && (doc.type == :empty) + if nav.links.one? && doc.type == :empty redirect to(nav.links.first.href) end diff --git a/lib/madness/settings.rb b/lib/madness/settings.rb index e514849..956981e 100644 --- a/lib/madness/settings.rb +++ b/lib/madness/settings.rb @@ -9,6 +9,7 @@ module Madness # 3. Any override provided later (for example, by the CommandLine class) class Settings include Singleton + using HashRefinements def initialize diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 43a8720..8863f77 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -44,6 +44,7 @@ # Bootstrap Sinatra testing with rspec module RSpecMixin include Rack::Test::Methods + def app described_class.prepare described_class From 8b76db7e4d5e1e7a659930647bef8284f57c20ad Mon Sep 17 00:00:00 2001 From: Danny Ben Shitrit Date: Wed, 3 Dec 2025 18:47:51 +0000 Subject: [PATCH 2/3] remove HashRefinements --- lib/madness/refinements/hash_refinements.rb | 14 ------------ lib/madness/settings.rb | 4 +--- .../refinements/hash_refinements_spec.rb | 22 ------------------- 3 files changed, 1 insertion(+), 39 deletions(-) delete mode 100644 lib/madness/refinements/hash_refinements.rb delete mode 100644 spec/madness/refinements/hash_refinements_spec.rb diff --git a/lib/madness/refinements/hash_refinements.rb b/lib/madness/refinements/hash_refinements.rb deleted file mode 100644 index 05e4afc..0000000 --- a/lib/madness/refinements/hash_refinements.rb +++ /dev/null @@ -1,14 +0,0 @@ -module Madness - module HashRefinements - refine Hash do - def symbolize_keys - clone.symbolize_keys! - end - - def symbolize_keys! - keys.each { |key| self[(key.to_sym rescue key) || key] = delete key } - self - end - end - end -end diff --git a/lib/madness/settings.rb b/lib/madness/settings.rb index 956981e..73e3fa7 100644 --- a/lib/madness/settings.rb +++ b/lib/madness/settings.rb @@ -10,8 +10,6 @@ module Madness class Settings include Singleton - using HashRefinements - def initialize reset end @@ -85,7 +83,7 @@ def defaults def file_data result = if file_exist? - ExtendedYAML.load(filename)&.symbolize_keys + ExtendedYAML.load(filename)&.transform_keys(&:to_sym) else {} end diff --git a/spec/madness/refinements/hash_refinements_spec.rb b/spec/madness/refinements/hash_refinements_spec.rb deleted file mode 100644 index b8be642..0000000 --- a/spec/madness/refinements/hash_refinements_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -describe HashRefinements do - using described_class - subject { { 'key' => 'value', 'another' => 'pair' } } - - describe '#symbolize_keys' do - it 'converts keys to symbols' do - expect(subject.symbolize_keys).to eq({ key: 'value', another: 'pair' }) - end - - it 'does not alter the original hash' do - subject.symbolize_keys - expect(subject).to eq({ 'key' => 'value', 'another' => 'pair' }) - end - end - - describe '#symbolize_keys!' do - it 'alters the original hash' do - subject.symbolize_keys! - expect(subject).to eq({ key: 'value', another: 'pair' }) - end - end -end From 2dc7e3ca2daa0372646013fd3ea3c117670df0cc Mon Sep 17 00:00:00 2001 From: Danny Ben Shitrit Date: Wed, 3 Dec 2025 18:49:59 +0000 Subject: [PATCH 3/3] remove require hash_refinements --- spec/spec_helper.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 8863f77..cfc1715 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -21,7 +21,6 @@ # The reason for this is that we need the Server class to be evaluated # (required) after base_uri is set. if ENV['STANDALONE'] - require 'madness/refinements/hash_refinements' require 'madness/settings' Madness::Settings.instance.base_uri = '/docs' end