enumark 0.1.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b85bfbf07990e9f2a38461056ade65766019e3b322c7f4f64778d8627a1c6561
4
- data.tar.gz: 5c42a625adbfd33c04d8d5cec939fb7fc91355e127dfe6181328433a7c7f7dc6
3
+ metadata.gz: fa3a4cc7fa496b1863e6de8c004144d85d983e1b8886f252c909c1031b215f66
4
+ data.tar.gz: a462ef2d2b0ee84b4330e6daa2b528bbf1e643181715ff8bfb0030c2fabc6207
5
5
  SHA512:
6
- metadata.gz: ed84f93d9a0b17acce86b08cc50e64517c023c46e85e29661471088afafb54c749bd3e20da4d42aecd6f91ecb1cbe201ce8d2e95ee50aafdfd729a440f33ed34
7
- data.tar.gz: 9b679c8511689282e29c8c9b602d33510088d7ef00d1cba6bf88e60871d49c1ac02995de895dccff4a3385a5ae45729ecd2d85a353838c74ea1e096d7c922e62
6
+ metadata.gz: 0712afefeb2f3950b7763cb4d2246e39034a393bf8beb75bc88e10c22f6d45122fcf19f38cda647f4f3ec441705648b46d88fc729f3162cc2cfc50bb66bbd1a3
7
+ data.tar.gz: 482ce353a24835363a27a64b15e0d74e08e352ab57cc5e19b0008f3bfa0dabbeeed195b669f006d212bc76fcd8a604d8e16bb077d9e1fb85fcf012eb52ba348c
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.1
data/README.md CHANGED
@@ -27,6 +27,8 @@ enum = Enumark.new('/path/to/bookmark_dump_file')
27
27
 
28
28
  enum.each do |item|
29
29
  item.name
30
+ item.dump_date
31
+ item.add_date
30
32
  item.href
31
33
  item.host
32
34
  item.categories
@@ -62,6 +64,13 @@ dir.added # select items in last file but not in second to last
62
64
  dir.deleted # reject items in last file
63
65
  dir.uniq # union all items
64
66
  dir.static # select items appear in all files
67
+ dir.all # enumerator of all items in all files
68
+ ```
69
+
70
+ Set config
71
+
72
+ ```ruby
73
+ Enumark::Config.set(logger: STDOUT)
65
74
  ```
66
75
 
67
76
  ## Development
data/enumark.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = "Enumerate chrome bookmark dump file"
12
12
  spec.homepage = "https://github.com/turnon/enumark"
13
13
  spec.license = "MIT"
14
- spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
14
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
15
15
 
16
16
  # Specify which files should be added to the gem when it is released.
17
17
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Enumark
4
+ module Config
5
+ class << self
6
+ def set(**cfg)
7
+ (@cfg ||= {}).merge!(cfg)
8
+ end
9
+
10
+ def get(key)
11
+ @cfg[key]
12
+ end
13
+ end
14
+
15
+ set
16
+ end
17
+ end
data/lib/enumark/dir.rb CHANGED
@@ -22,5 +22,21 @@ class Enumark
22
22
  def static
23
23
  @static ||= @enumarks.reverse_each.reduce(&:&)
24
24
  end
25
+
26
+ def all
27
+ Enumerator.new do |yielder|
28
+ logger = Config.get(:logger)
29
+ file_count = @enumarks.count
30
+
31
+ @enumarks.each_with_index do |enum, idx|
32
+ enum.each do |item|
33
+ yielder << item
34
+ logger.printf("--> %6d/%-6d = %3f \r", idx + 1, file_count, ((idx + 1).to_f / file_count * 100).round(2)) if logger
35
+ end
36
+ end
37
+
38
+ logger.puts if logger
39
+ end
40
+ end
25
41
  end
26
42
  end
data/lib/enumark/item.rb CHANGED
@@ -7,9 +7,10 @@ class Enumark
7
7
  PATTERN = /HREF="(.*?)".*ADD_DATE="(.*?)".*>(.*)<\/A>/
8
8
  USELESS_SHARP = /\#.*$/
9
9
 
10
- attr_reader :name, :href, :add_date, :categories
10
+ attr_reader :dump_date, :name, :href, :add_date, :categories
11
11
 
12
- def initialize(line, categories)
12
+ def initialize(dump_date, line, categories)
13
+ @dump_date = dump_date
13
14
  m = line.match(PATTERN)
14
15
  @href = m[1].gsub(USELESS_SHARP, '')
15
16
  @add_date = Time.at(m[2].to_i)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Enumark
4
- VERSION = "0.1.4"
4
+ VERSION = "1.0.0"
5
5
  end
data/lib/enumark.rb CHANGED
@@ -5,6 +5,7 @@ require 'enumark/item'
5
5
  require 'enumark/category'
6
6
  require 'enumark/grouping'
7
7
  require 'enumark/dir'
8
+ require 'enumark/config'
8
9
 
9
10
  class Enumark
10
11
  include Enumerable
@@ -62,13 +63,14 @@ class Enumark
62
63
  end
63
64
 
64
65
  def _read_all_lines
66
+ dump_date = Pathname.new(@file).basename('.html').to_s
65
67
  categories = []
66
68
  @items = []
67
69
 
68
70
  File.new(@file).each do |line|
69
71
  case line
70
72
  when Item::PREFIX
71
- item = Item.new(line, categories.dup)
73
+ item = Item.new(dump_date, line, categories.dup)
72
74
  @items.push(item)
73
75
  when Category::START
74
76
  categories.push(Category.new(line))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ken
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-16 00:00:00.000000000 Z
11
+ date: 2022-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -32,6 +32,7 @@ extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
34
  - ".gitignore"
35
+ - ".ruby-version"
35
36
  - CODE_OF_CONDUCT.md
36
37
  - Gemfile
37
38
  - LICENSE.txt
@@ -42,6 +43,7 @@ files:
42
43
  - enumark.gemspec
43
44
  - lib/enumark.rb
44
45
  - lib/enumark/category.rb
46
+ - lib/enumark/config.rb
45
47
  - lib/enumark/dir.rb
46
48
  - lib/enumark/grouping.rb
47
49
  - lib/enumark/item.rb
@@ -58,14 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
58
60
  requirements:
59
61
  - - ">="
60
62
  - !ruby/object:Gem::Version
61
- version: 2.4.0
63
+ version: 3.1.0
62
64
  required_rubygems_version: !ruby/object:Gem::Requirement
63
65
  requirements:
64
66
  - - ">="
65
67
  - !ruby/object:Gem::Version
66
68
  version: '0'
67
69
  requirements: []
68
- rubygems_version: 3.2.3
70
+ rubygems_version: 3.3.7
69
71
  signing_key:
70
72
  specification_version: 4
71
73
  summary: Enumerate chrome bookmark dump file