Conversation
- Updated required Ruby version to 3.4.8 in `.ruby-version` and `.tool-versions`. - Adjusted required Ruby version in `fretboard.gemspec` (`>= 2.7`). - Bumped `terminal-table` runtime dependency to version `>= 4.0`. - Replaced specific RuboCop dependencies with `servactory-rubocop` in `fretboard.gemspec`. - Updated `.rubocop.yml` to inherit from `servactory-rubocop`. - Refreshed `Gemfile.lock` with updated gems, including changes to `activesupport`, `colorize`, and others. - Switched Bundler version to `4.0.6`.
- Renamed `master` branch references to `main`. - Added workflow permissions and concurrency settings. - Updated `actions/checkout` to `v6` and `ruby/setup-ruby` to `v1` with Ruby version `3.4`. - Adjusted installation of the `code-scanning-rubocop` gem. - Bumped `github/codeql-action/upload-sarif` to `v4`.
- Renamed branch references from `master` to `main` for consistency. - Enabled workflow permissions and added concurrency settings. - Updated job matrix to include Rails 7.2, 8.0, 8.1 and Ruby 3.4, 4.0. - Excluded unsupported Rails versions for Ruby 4.0 in the matrix. - Upgraded `actions/checkout` to `v6`. - Removed commented-out seed generator workflow. - Simplified RSpec command by removing unused seed reference.
- Added `bin/release` to automate gem version building and publishing. - Introduced `bin/rspec` for running tests via RSpec. - Added `bin/rubocop` for linting using RuboCop with explicit configuration. - Scripts improve developer productivity and ensure consistency across tasks.
- Introduced `rails_8.0.gemfile` and `rails_8.1.gemfile` for Rails 8.0 and 8.1. - Updated `Appraisals` file to include new Rails versions. - Ensures compatibility testing for `activesupport` 8.0 and 8.1.
- Cleaned up an unnecessary blank line in the `Appraisals` file. - Maintains consistency and tidiness within the configuration file.
- Changed `add_runtime_dependency` to `add_dependency` in `fretboard.gemspec` for `activesupport`, `colorize`, and `terminal-table`. - Eliminates redundancy as `add_dependency` implicitly includes runtime scope. - Enhances maintainability and consistency in the dependency definitions.
- Updated all instances of `include_examples` to `it_behaves_like` across `fretboard/builder_spec.rb`. - Improves consistency in test style and adheres to RSpec conventions. - Does not alter test functionality, keeping behavior intact.
- Introduced `rails_7.2.gemfile` for Rails 7.2 compatibility testing. - Updated `Appraisals` file to include a new `rails-7.2` appraisal block. - Ensures support and compatibility for `activesupport` version `~> 7.2.0`.
- Created a `Base` exception class under `Fretboard::Exceptions` as the root class for custom exceptions. - Added `NotBuilt` exception for handling unbuilt guitar fretboard errors with a default message. - Added `UnknownNote` exception to represent invalid or unidentified musical notes. - Added `UnknownTuning` exception for unrecognized guitar tuning errors with dynamic error messages. - Supports improved error handling and context-specific messaging for the Fretboard module.
- Introduced `Fretboard::NoteFormatter` for formatting musical notes. - Added support for formatting notes as strings or arrays, with options for sharp, flat, or both notations. - Implemented comprehensive test coverage in `note_formatter_spec.rb` to validate behavior across scenarios. - Enhances functionality by providing flexible note formatting for the Fretboard module.
- Added custom exception classes from the `Fretboard::Exceptions` namespace to the spec helper. - Included `Fretboard::NoteFormatter` in the spec helper for test accessibility. - Enhances test environment by preloading necessary modules and dependencies.
- Eliminated unnecessary checks for `Gemfile` existence in the root directory. - Removed `rubygems` and `bundler` setup, simplifying the script's initialization. - Kept only the essential `Fretboard::Parser` invocation for argument parsing. - Enhances maintainability by streamlining the script and removing obsolete logic.
- Added `Fretboard::Exceptions::Base`, `UnknownTuning`, `UnknownNote`, and `NotBuilt` to improve error handling for specific scenarios. - Included `Fretboard::NoteFormatter` for note formatting utilities. - Streamlines module loading and improves the modular structure of the Fretboard library.
- Enhanced `Parser#parse` method with specific error handling for `Fretboard::Exceptions::Base` and `OptionParser::ParseError`. - Refined generic error messages to provide clearer context for unexpected errors. - Updated version output to use `Fretboard::VERSION::STRING` for consistency. - Improved user feedback and error messaging robustness.
- Utilized `Fretboard::Tunings.list` to dynamically define tuning methods in `Fretboard::Builder`, reducing redundancy. - Replaced manual note formatting logic with `Fretboard::NoteFormatter` for consistent formatting. - Raised specific exceptions (`UnknownTuning`, `NotBuilt`, `UnknownNote`) for improved error handling and feedback. - Refactored `Fretboard::Notes.all` and `Fretboard::Note.next_for` to streamline formatting logic. - Removed obsolete comments and redundant methods, simplifying overall code structure.
- Consolidated `require` statements in the main `fretboard` entry point, leveraging Zeitwerk for autoloading modules. - Removed individual `require` statements from various files, reducing redundancy and improving modularity. - Added `zeitwerk` as a dependency in the gemspec to enable autoloading. - Updated bin and spec helper files to adjust to the new autoloading structure. - Simplified the Gemfile and Gemfile.lock for consistency with added dependencies.
- Moved `optparse` requirement from `Parser` to the main `Fretboard` entry point for consistency with other dependencies. - Simplifies module organization by consolidating dependency management in the main `fretboard.rb` file.
- Removed all Rails-specific gemfiles and related appraisal configurations. - Deleted the `Appraisals` file and `appraisal` gem dependency from development. - Updated the `fretboard.gemspec` to require Ruby 3.0 or higher. - Simplified CI workflow to exclude Rails gemfile matrix testing. - Replaced usages of `active_support` methods with standard Ruby alternatives. - Streamlined the codebase by removing redundant dependencies and configurations.
- Adjusted note assignments within the `OPEN_A` tuning configuration, reordering string mappings for accuracy. - Updated corresponding specs in `builder_spec.rb` to reflect the revised tuning and ensure consistent test coverage. - Simplified handling of notes with enharmonic equivalents, improving clarity and correctness.
- Added tests for `.list`, ensuring proper structure, immutability, and all tunings having required keys and values. - Verified `.fetch` behavior for both valid and invalid tunings, covering multiple input formats (symbols and strings). - Included tests for `.exists?` to confirm presence checks for tunings in various cases. - Added `.draw_list` specs to validate its interaction with `Fretboard::Console`, including output structure and formatting. - Ensured `TUNINGS` constant is private and raises appropriate errors.
- Adjusted `have_received` expectations in `builder_spec.rb` and `tunings_spec.rb` for clearer structure and alignment. - Reformatted chained method calls across multiple specs to improve code readability. - Made no functional changes, ensuring test behavior and coverage remain consistent.
- Removed outdated Darwin platform entries (`x86_64-darwin-*`). - Retained only `arm64-darwin` platform for compatibility. - Simplified platform definitions to align with current requirements.
- Included platform entries for `aarch64-linux-gnu`, `aarch64-linux-musl`, `arm-linux-gnu`, `arm-linux-musl`, `x86_64-darwin`, `x86_64-linux-gnu`, and `x86_64-linux-musl`. - Ensured Gemfile.lock reflects broader compatibility across architectures.
- Updated `fretboard.gemspec` to require Ruby version 3.1 or higher. - Modified GitHub Actions workflow to remove Ruby 3.0 from the CI matrix, keeping 3.1 and newer.
- Updated `fretboard.gemspec` to require Ruby version 3.2 or higher. - Modified GitHub Actions workflow to remove Ruby 3.1 from the CI matrix, ensuring compatibility with 3.2 and newer.
- Introduced a `CODE_OF_CONDUCT.md` file using the Contributor Covenant v2.1. - Defined community standards for respectful and inclusive interactions. - Described enforcement responsibilities, scope, and guidelines for handling violations. - Included attribution and links to official resources for further reference.
- Added a `CONTRIBUTING.md` file with guidelines for contributions. - Included steps for forking, cloning, creating branches, and making a pull request. - Provided instructions for writing clean code, adding tests, and updating documentation. - Linked helpful resources, such as GitHub signup and forking documentation. - Encouraged questions through the issue tracker on the main repository.
- Updated the README structure with a visually appealing center-aligned layout. - Added badges for Ruby version, downloads, and existing Gem and release info. - Expanded the feature list under "Why Fretboard?" with key highlights. - Refined sections for Ruby API and CLI tool for better readability. - Included a comprehensive list of supported guitar tunings in table format. - Improved fretboard diagram formatting and added missing tuning entries. - Added new sections for contributing guidelines, acknowledgments, and license details.
- Updated the method call to use Ruby's shorthand keyword argument syntax for clarity and conciseness. - Ensured consistent usage of modern Ruby conventions in note formatting logic.
- Updated method calls across multiple classes (`NoteFormatter`, `Builder`, `Console`, `Notes`) to use Ruby's shorthand keyword argument syntax. - Ensured consistent application of modern Ruby conventions throughout the codebase. - Improved code readability and maintainability by reducing verbosity.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.