enumark 0.1.4 → 1.1.1
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 +4 -4
- data/.gitignore +0 -1
- data/.tool-versions +1 -0
- data/Gemfile.lock +27 -0
- data/README.md +15 -0
- data/enumark.gemspec +1 -1
- data/lib/enumark/config.rb +17 -0
- data/lib/enumark/dir.rb +16 -0
- data/lib/enumark/item.rb +3 -2
- data/lib/enumark/version.rb +1 -1
- data/lib/enumark.rb +4 -1
- metadata +7 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3887e4765d58b0f634bcfff37be0d33a666b1fb0b7b8d7528a24070552092c6
|
|
4
|
+
data.tar.gz: 42856dea821e7f2692cd1cec49cc11a7c6a5f70b30c33d0a6b8d9865b042cf34
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 915ff888a7805f299600adbf9a80d6d5174b43422a61e5874650ae692e65760767d67a33fe367f6fbd5adef08d67b32d8f31dc63925c4f96c209b355deed545b
|
|
7
|
+
data.tar.gz: b5059abedec7387c0be9ba0c253e93fc8f4dad504ab847e0fc4c398a5997464600d795476522ed416f46416edb6f831ee6dee6f740b53ae5da4eb579106de99f
|
data/.gitignore
CHANGED
data/.tool-versions
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby 2.6.3
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
enumark (1.1.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
coderay (1.1.3)
|
|
10
|
+
method_source (1.0.0)
|
|
11
|
+
minitest (5.16.3)
|
|
12
|
+
pry (0.14.1)
|
|
13
|
+
coderay (~> 1.1)
|
|
14
|
+
method_source (~> 1.0)
|
|
15
|
+
rake (13.0.6)
|
|
16
|
+
|
|
17
|
+
PLATFORMS
|
|
18
|
+
ruby
|
|
19
|
+
|
|
20
|
+
DEPENDENCIES
|
|
21
|
+
enumark!
|
|
22
|
+
minitest (~> 5.0)
|
|
23
|
+
pry
|
|
24
|
+
rake (~> 13.0)
|
|
25
|
+
|
|
26
|
+
BUNDLED WITH
|
|
27
|
+
1.17.2
|
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
|
|
@@ -53,6 +55,12 @@ enum.each_category do |cate|
|
|
|
53
55
|
end
|
|
54
56
|
```
|
|
55
57
|
|
|
58
|
+
Sort category by capacity
|
|
59
|
+
|
|
60
|
+
```ruby
|
|
61
|
+
enum.each_category.map{ |cate| [cate.items.count, cate.name] }.sort
|
|
62
|
+
```
|
|
63
|
+
|
|
56
64
|
Explore trends of your dump files:
|
|
57
65
|
|
|
58
66
|
```ruby
|
|
@@ -62,6 +70,13 @@ dir.added # select items in last file but not in second to last
|
|
|
62
70
|
dir.deleted # reject items in last file
|
|
63
71
|
dir.uniq # union all items
|
|
64
72
|
dir.static # select items appear in all files
|
|
73
|
+
dir.all # enumerator of all items in all files
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Set config
|
|
77
|
+
|
|
78
|
+
```ruby
|
|
79
|
+
Enumark::Config.set(logger: STDOUT)
|
|
65
80
|
```
|
|
66
81
|
|
|
67
82
|
## 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.
|
|
14
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.3")
|
|
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.
|
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)
|
data/lib/enumark/version.rb
CHANGED
data/lib/enumark.rb
CHANGED
|
@@ -5,6 +5,8 @@ require 'enumark/item'
|
|
|
5
5
|
require 'enumark/category'
|
|
6
6
|
require 'enumark/grouping'
|
|
7
7
|
require 'enumark/dir'
|
|
8
|
+
require 'enumark/config'
|
|
9
|
+
require 'pathname'
|
|
8
10
|
|
|
9
11
|
class Enumark
|
|
10
12
|
include Enumerable
|
|
@@ -62,13 +64,14 @@ class Enumark
|
|
|
62
64
|
end
|
|
63
65
|
|
|
64
66
|
def _read_all_lines
|
|
67
|
+
dump_date = Pathname.new(@file).basename('.html').to_s
|
|
65
68
|
categories = []
|
|
66
69
|
@items = []
|
|
67
70
|
|
|
68
71
|
File.new(@file).each do |line|
|
|
69
72
|
case line
|
|
70
73
|
when Item::PREFIX
|
|
71
|
-
item = Item.new(line, categories.dup)
|
|
74
|
+
item = Item.new(dump_date, line, categories.dup)
|
|
72
75
|
@items.push(item)
|
|
73
76
|
when Category::START
|
|
74
77
|
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:
|
|
4
|
+
version: 1.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ken
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-12-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pry
|
|
@@ -32,8 +32,10 @@ extensions: []
|
|
|
32
32
|
extra_rdoc_files: []
|
|
33
33
|
files:
|
|
34
34
|
- ".gitignore"
|
|
35
|
+
- ".tool-versions"
|
|
35
36
|
- CODE_OF_CONDUCT.md
|
|
36
37
|
- Gemfile
|
|
38
|
+
- Gemfile.lock
|
|
37
39
|
- LICENSE.txt
|
|
38
40
|
- README.md
|
|
39
41
|
- Rakefile
|
|
@@ -42,6 +44,7 @@ files:
|
|
|
42
44
|
- enumark.gemspec
|
|
43
45
|
- lib/enumark.rb
|
|
44
46
|
- lib/enumark/category.rb
|
|
47
|
+
- lib/enumark/config.rb
|
|
45
48
|
- lib/enumark/dir.rb
|
|
46
49
|
- lib/enumark/grouping.rb
|
|
47
50
|
- lib/enumark/item.rb
|
|
@@ -58,14 +61,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
58
61
|
requirements:
|
|
59
62
|
- - ">="
|
|
60
63
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 2.
|
|
64
|
+
version: 2.6.3
|
|
62
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
66
|
requirements:
|
|
64
67
|
- - ">="
|
|
65
68
|
- !ruby/object:Gem::Version
|
|
66
69
|
version: '0'
|
|
67
70
|
requirements: []
|
|
68
|
-
rubygems_version: 3.
|
|
71
|
+
rubygems_version: 3.0.3
|
|
69
72
|
signing_key:
|
|
70
73
|
specification_version: 4
|
|
71
74
|
summary: Enumerate chrome bookmark dump file
|