Class: Reissue::DirectoryFragmentHandler
- Inherits:
-
FragmentHandler
- Object
- FragmentHandler
- Reissue::DirectoryFragmentHandler
- Defined in:
- lib/reissue/fragment_handler/directory_fragment_handler.rb
Overview
Handler for reading fragments from a directory
Instance Attribute Summary collapse
-
#directory ⇒ Object
readonly
Returns the value of attribute directory.
-
#valid_sections ⇒ Object
readonly
Returns the value of attribute valid_sections.
Instance Method Summary collapse
-
#clear ⇒ nil
Clear all fragment files from the directory.
-
#initialize(directory, valid_sections: Reissue.changelog_sections) ⇒ DirectoryFragmentHandler
constructor
Initialize the handler with a directory path.
-
#read ⇒ Hash
Read fragments from the directory.
Methods inherited from FragmentHandler
Constructor Details
#initialize(directory, valid_sections: Reissue.changelog_sections) ⇒ DirectoryFragmentHandler
Initialize the handler with a directory path
12 13 14 15 16 |
# File 'lib/reissue/fragment_handler/directory_fragment_handler.rb', line 12 def initialize(directory, valid_sections: Reissue.changelog_sections) @directory = directory @fragment_directory = Pathname.new(directory) @valid_sections = valid_sections end |
Instance Attribute Details
#directory ⇒ Object (readonly)
Returns the value of attribute directory.
6 7 8 |
# File 'lib/reissue/fragment_handler/directory_fragment_handler.rb', line 6 def directory @directory end |
#valid_sections ⇒ Object (readonly)
Returns the value of attribute valid_sections.
6 7 8 |
# File 'lib/reissue/fragment_handler/directory_fragment_handler.rb', line 6 def valid_sections @valid_sections end |
Instance Method Details
#clear ⇒ nil
Clear all fragment files from the directory
50 51 52 53 54 |
# File 'lib/reissue/fragment_handler/directory_fragment_handler.rb', line 50 def clear return unless @fragment_directory.exist? @fragment_directory.glob("*.*.md").each(&:delete) end |
#read ⇒ Hash
Read fragments from the directory
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/reissue/fragment_handler/directory_fragment_handler.rb', line 21 def read return {} unless @fragment_directory.exist? fragments = {} @fragment_directory.glob("*.*.md").each do |fragment_file| filename = fragment_file.basename.to_s parts = filename.split(".") next unless parts.length == 3 section = parts[1].downcase next unless valid_section?(section) content = fragment_file.read.strip next if content.empty? # Capitalize section name for changelog format section_key = section.capitalize fragments[section_key] ||= [] fragments[section_key] << content end fragments end |