Class: Rufio::YamlBookmarkStorage
- Inherits:
-
BookmarkStorage
- Object
- BookmarkStorage
- Rufio::YamlBookmarkStorage
- Defined in:
- lib/rufio/bookmark_storage.rb
Overview
YAML形式のブックマークストレージ(新旧形式対応)新形式: bookmarks.yml(配列形式)旧形式: config.yml(bookmarksセクション)
Instance Method Summary collapse
Methods inherited from BookmarkStorage
Constructor Details
This class inherits a constructor from Rufio::BookmarkStorage
Instance Method Details
#load ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/rufio/bookmark_storage.rb', line 76 def load return [] unless File.exist?(@file_path) # 新形式: bookmarks.yml(配列形式) if @file_path.end_with?('bookmarks.yml') return Config.load_bookmarks_from_yml(@file_path) end # 旧形式: config.yml(bookmarksセクション) yaml = YAML.safe_load(File.read(@file_path), symbolize_names: true) return [] unless yaml.is_a?(Hash) bookmarks = yaml[:bookmarks] || [] filter_valid_bookmarks(bookmarks) rescue StandardError [] end |
#save(bookmarks) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/rufio/bookmark_storage.rb', line 94 def save(bookmarks) ensure_directory # 新形式: bookmarks.yml(配列形式) if @file_path.end_with?('bookmarks.yml') Config.save_bookmarks_to_yml(@file_path, bookmarks) return true end # 旧形式: config.yml(bookmarksセクション - 既存の設定を保持) existing = if File.exist?(@file_path) YAML.safe_load(File.read(@file_path), symbolize_names: false) || {} else {} end existing['bookmarks'] = bookmarks.map do |b| { 'path' => b[:path], 'name' => b[:name] } end File.write(@file_path, YAML.dump(existing)) true rescue StandardError => e warn "Failed to save bookmarks to YAML: #{e.}" false end |