qutebrowser_url_mark 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ac0f45be2eff2f696f6eb4ad85378ae83e5fd3555cf31a4b5b37833df6b78d9
4
- data.tar.gz: 50c4fb23fbedb65e7c0d395ba566f682e7480452a53a01a99e072d7036a003f3
3
+ metadata.gz: 1e2722362d734db376956caf9cae4fe8b7851297f6597e781d5c9b9c1adae7b3
4
+ data.tar.gz: 1e024d0ee12032532a43445f04c998c139b3a81c3831b73e1a3de696f91d2d27
5
5
  SHA512:
6
- metadata.gz: 584c52b36915cce87f7eebfe9b5ac97f97da2529ed8f1568037e53b47dc4f052e413c5d240a16b458301899089ccf97c619832fc529b729bb7d1452d149beedc
7
- data.tar.gz: 061b4fd4f3e167175c9eadf39105ef029961f2de863ce8e6bd7483a17d1fd94c8224f7e18bf9c8489ea980b389a1fbecdaf8358fcb9c314cd785b5e3ecca12ea
6
+ metadata.gz: 28d94822e9c59a2eb02cd509a7e6ae547dd83e92ee0f9da86692024a7febcd78edd49919dd587c2c95a70c8075b5e55c5172a8d8aa227adee1c0e0767542ea34
7
+ data.tar.gz: dda51fac0d6c2a880da159b900fc5d26256789b13b5a0fa4f263e35260d34470733d8a8c0818a2cfee17e9cb8888bdf14bd933609ec66fabe7c8f8b62a2d925f
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.2.0 - 2025-04-06
6
+
7
+ Added XBEL dumper. Please see the example command line tool
8
+ `qutebrowser-url-mark` for its usage.
9
+
5
10
  ## 0.1.1 - 2025-03-12
6
11
 
7
12
  This is a maintenance release.
@@ -21,6 +21,7 @@ require 'logger'
21
21
  require 'json'
22
22
  require 'pp'
23
23
  require_relative '../lib/qutebrowser_url_mark'
24
+ require_relative '../lib/qutebrowser_url_mark/xbel_dumper'
24
25
 
25
26
  # proc which takes store and output
26
27
  dump = PP.method(:pp)
@@ -40,6 +41,7 @@ logger.level = :warn
40
41
  OptionParser.new do |parser|
41
42
  parser.on('--yaml', 'dump parsed store as YAML') { dump = YAML.method(:dump) }
42
43
  parser.on('--json', 'dump parsed store as JSON') { dump = JSON.method(:dump) }
44
+ parser.on("--xbel", "dump parsed store as XBEL") { dump = QutebrowserURLMark::XBELDumper }
43
45
  parser.on('--input=PATH', 'input path for URI marks') do |path|
44
46
  no_input_stream or logger.warn('input path') { 'ignoring stdin' }
45
47
  input = path
@@ -14,5 +14,5 @@
14
14
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
 
16
16
  module QutebrowserURLMark
17
- VERSION = '0.1.1'
17
+ VERSION = '0.2.0'
18
18
  end
@@ -0,0 +1,14 @@
1
+ require "rexml"
2
+
3
+ class QutebrowserURLMark::XBELDumper
4
+ def self.[](store, output)
5
+ document = REXML::Document.new
6
+ xbel = document.add_element("xbel", "version" => "1.0")
7
+ store.each do |name, link|
8
+ bookmark = xbel.add_element("bookmark", "href" => link)
9
+ title = bookmark.add_element("title")
10
+ title.text = name
11
+ end
12
+ document.write(output, _indent = 2)
13
+ end
14
+ end
@@ -17,26 +17,27 @@ require 'uri'
17
17
  require 'stringio'
18
18
  require_relative 'qutebrowser_url_mark/version'
19
19
 
20
- # Parsing methods have an argument +store+, which is a class to insert URL marks.
21
- # The instance object of the class must have +new+ and +[]=+ method.
20
+ # Parsing methods have an argument +store+ with +[]=+ method.
22
21
  module QutebrowserURLMark
23
- class Error < StandardError; end
22
+ Error = Class.new(StandardError)
24
23
 
25
- def self.parse_quickmarks(source, store: Hash, parse_uri: true)
26
- source.each_line.each_with_object(Hash.new) do |line, store|
24
+ def self.parse_quickmarks(source, store: Hash.new, parse_uri: true)
25
+ source.each_line do |line|
27
26
  line.strip!
28
27
  key, _, url = line.rpartition(/\s+/)
29
- !key.empty? or raise Error, "invalid quickmark: #{line.inspect}"
28
+ key.empty? and raise Error, "invalid quickmark: #{line.inspect}"
30
29
  store[key] = parse_uri ? URI(url) : url
31
30
  end
31
+ store
32
32
  end
33
33
 
34
- def self.parse_bookmarks(source, store: Hash, parse_uri: true)
35
- source.each_line.each_with_object(Hash.new) do |line, store|
34
+ def self.parse_bookmarks(source, store: Hash.new, parse_uri: true)
35
+ source.each_line do |line|
36
36
  line.strip!
37
37
  url, _, key = line.partition(/\s+/)
38
38
  store[parse_uri ? URI(url) : url] = key
39
39
  end
40
+ store
40
41
  end
41
42
 
42
43
  class << self
data/manifest.scm CHANGED
@@ -1,2 +1,2 @@
1
1
  (specifications->manifest (list "ruby@3.1" "ruby-rubocop" "ruby-rubocop-rake"
2
- "ruby-simplecov"))
2
+ "ruby-simplecov" "ruby-rexml"))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qutebrowser_url_mark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gemmaro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-03-12 00:00:00.000000000 Z
11
+ date: 2025-04-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: qutebrowser_url_mark is a library for parsing and serializing qutebrowser's
14
14
  URL marks (quickmarks or bookmarks).
@@ -27,6 +27,7 @@ files:
27
27
  - exe/qutebrowser-url-mark
28
28
  - lib/qutebrowser_url_mark.rb
29
29
  - lib/qutebrowser_url_mark/version.rb
30
+ - lib/qutebrowser_url_mark/xbel_dumper.rb
30
31
  - manifest.scm
31
32
  - sig/qutebrowser_url_mark.gen.rbs
32
33
  - sig/qutebrowser_url_mark.rbs
@@ -37,7 +38,7 @@ metadata:
37
38
  homepage_uri: https://codeberg.org/gemmaro/qutebrowser-url-mark
38
39
  source_code_uri: https://codeberg.org/gemmaro/qutebrowser-url-mark.git
39
40
  changelog_uri: https://codeberg.org/gemmaro/qutebrowser-url-mark/src/branch/main/CHANGELOG.md
40
- documenation_uri: https://rubydoc.info/gems/qutebrowser_url_mark
41
+ documetation_uri: https://rubydoc.info/gems/qutebrowser_url_mark
41
42
  post_install_message:
42
43
  rdoc_options: []
43
44
  require_paths:
@@ -53,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
54
  - !ruby/object:Gem::Version
54
55
  version: '0'
55
56
  requirements: []
56
- rubygems_version: 3.5.11
57
+ rubygems_version: 3.3.26
57
58
  signing_key:
58
59
  specification_version: 4
59
60
  summary: qutebrowser's URL mark parser and serializer