micromicro 0.1.0 → 2.0.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 +4 -4
- data/CHANGELOG.md +37 -0
- data/CONTRIBUTING.md +2 -2
- data/README.md +65 -29
- data/lib/micro_micro/collectible.rb +15 -0
- data/lib/micro_micro/collections/base_collection.rb +18 -13
- data/lib/micro_micro/collections/items_collection.rb +7 -0
- data/lib/micro_micro/collections/properties_collection.rb +20 -6
- data/lib/micro_micro/collections/relationships_collection.rb +33 -0
- data/lib/micro_micro/document.rb +36 -44
- data/lib/micro_micro/helpers.rb +82 -0
- data/lib/micro_micro/implied_property.rb +2 -0
- data/lib/micro_micro/item.rb +78 -52
- data/lib/micro_micro/parsers/base_implied_property_parser.rb +29 -0
- data/lib/micro_micro/parsers/base_property_parser.rb +9 -14
- data/lib/micro_micro/parsers/date_time_parser.rb +60 -31
- data/lib/micro_micro/parsers/date_time_property_parser.rb +20 -29
- data/lib/micro_micro/parsers/embedded_markup_property_parser.rb +7 -17
- data/lib/micro_micro/parsers/implied_name_property_parser.rb +17 -58
- data/lib/micro_micro/parsers/implied_photo_property_parser.rb +23 -51
- data/lib/micro_micro/parsers/implied_url_property_parser.rb +13 -42
- data/lib/micro_micro/parsers/plain_text_property_parser.rb +11 -18
- data/lib/micro_micro/parsers/url_property_parser.rb +29 -37
- data/lib/micro_micro/parsers/value_class_pattern_parser.rb +29 -55
- data/lib/micro_micro/property.rb +73 -68
- data/lib/micro_micro/{relation.rb → relationship.rb} +19 -16
- data/lib/micro_micro/version.rb +3 -1
- data/lib/micromicro.rb +37 -22
- data/micromicro.gemspec +14 -9
- metadata +23 -31
- data/.editorconfig +0 -14
- data/.gitignore +0 -34
- data/.gitmodules +0 -3
- data/.reek.yml +0 -8
- data/.rspec +0 -2
- data/.rubocop +0 -3
- data/.rubocop.yml +0 -25
- data/.ruby-version +0 -1
- data/.simplecov +0 -11
- data/.travis.yml +0 -19
- data/Gemfile +0 -14
- data/Rakefile +0 -18
- data/lib/micro_micro/collections/relations_collection.rb +0 -23
@@ -1,5 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module MicroMicro
|
2
|
-
class
|
4
|
+
class Relationship
|
5
|
+
include Collectible
|
6
|
+
|
7
|
+
# @param context [Nokogiri::HTML::Document, Nokogiri::XML::Element]
|
8
|
+
# @return [Array<MicroMicro::Relationship>]
|
9
|
+
def self.relationships_from(context)
|
10
|
+
context.css('[href][rel]:not([rel=""])')
|
11
|
+
.reject { |node| Helpers.ignore_nodes?(node.ancestors) }
|
12
|
+
.map { |node| new(node) }
|
13
|
+
end
|
14
|
+
|
3
15
|
# @param node [Nokogiri::XML::Element]
|
4
16
|
def initialize(node)
|
5
17
|
@node = node
|
@@ -7,7 +19,7 @@ module MicroMicro
|
|
7
19
|
|
8
20
|
# @return [String]
|
9
21
|
def href
|
10
|
-
@href ||=
|
22
|
+
@href ||= node['href']
|
11
23
|
end
|
12
24
|
|
13
25
|
# @return [String, nil]
|
@@ -15,11 +27,14 @@ module MicroMicro
|
|
15
27
|
@hreflang ||= node['hreflang']&.strip
|
16
28
|
end
|
17
29
|
|
30
|
+
# :nocov:
|
18
31
|
# @return [String]
|
19
32
|
def inspect
|
20
|
-
|
21
|
-
|
33
|
+
"#<#{self.class}:#{format('%#0x', object_id)} " \
|
34
|
+
"href: #{href.inspect}, " \
|
35
|
+
"rels: #{rels.inspect}>"
|
22
36
|
end
|
37
|
+
# :nocov:
|
23
38
|
|
24
39
|
# @return [String, nil]
|
25
40
|
def media
|
@@ -59,18 +74,6 @@ module MicroMicro
|
|
59
74
|
@type ||= node['type']&.strip
|
60
75
|
end
|
61
76
|
|
62
|
-
# @param context [Nokogiri::HTML::Document, Nokogiri::XML::Element]
|
63
|
-
# @return [Nokogiri::XML::NodeSet]
|
64
|
-
def self.nodes_from(context)
|
65
|
-
context.css('[href][rel]:not([rel=""])').reject { |node| (node.ancestors.map(&:name) & Document.ignored_node_names).any? }
|
66
|
-
end
|
67
|
-
|
68
|
-
# @param context [Nokogiri::HTML::Document, Nokogiri::XML::Element]
|
69
|
-
# @return [Array<MicroMicro::Relation>]
|
70
|
-
def self.relations_from(context)
|
71
|
-
nodes_from(context).map { |node| new(node) }
|
72
|
-
end
|
73
|
-
|
74
77
|
private
|
75
78
|
|
76
79
|
attr_reader :node
|
data/lib/micro_micro/version.rb
CHANGED
data/lib/micromicro.rb
CHANGED
@@ -1,38 +1,53 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'forwardable'
|
4
|
+
|
2
5
|
require 'active_support/core_ext/array/grouping'
|
3
6
|
require 'active_support/core_ext/hash/deep_transform_values'
|
4
7
|
require 'active_support/core_ext/hash/keys'
|
5
8
|
require 'active_support/core_ext/hash/slice'
|
6
|
-
require 'active_support/core_ext/module/delegation'
|
7
9
|
require 'active_support/core_ext/object/blank'
|
8
10
|
require 'nokogiri'
|
11
|
+
require 'nokogiri/html-ext'
|
12
|
+
|
13
|
+
require_relative 'micro_micro/version'
|
14
|
+
require_relative 'micro_micro/collectible'
|
15
|
+
require_relative 'micro_micro/helpers'
|
9
16
|
|
10
|
-
|
17
|
+
require_relative 'micro_micro/parsers/date_time_parser'
|
18
|
+
require_relative 'micro_micro/parsers/value_class_pattern_parser'
|
11
19
|
|
12
|
-
|
13
|
-
|
20
|
+
require_relative 'micro_micro/parsers/base_property_parser'
|
21
|
+
require_relative 'micro_micro/parsers/date_time_property_parser'
|
22
|
+
require_relative 'micro_micro/parsers/embedded_markup_property_parser'
|
23
|
+
require_relative 'micro_micro/parsers/plain_text_property_parser'
|
24
|
+
require_relative 'micro_micro/parsers/url_property_parser'
|
14
25
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
require 'micro_micro/parsers/implied_photo_property_parser'
|
20
|
-
require 'micro_micro/parsers/implied_url_property_parser'
|
21
|
-
require 'micro_micro/parsers/plain_text_property_parser'
|
22
|
-
require 'micro_micro/parsers/url_property_parser'
|
26
|
+
require_relative 'micro_micro/parsers/base_implied_property_parser'
|
27
|
+
require_relative 'micro_micro/parsers/implied_name_property_parser'
|
28
|
+
require_relative 'micro_micro/parsers/implied_photo_property_parser'
|
29
|
+
require_relative 'micro_micro/parsers/implied_url_property_parser'
|
23
30
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
31
|
+
require_relative 'micro_micro/document'
|
32
|
+
require_relative 'micro_micro/item'
|
33
|
+
require_relative 'micro_micro/property'
|
34
|
+
require_relative 'micro_micro/implied_property'
|
35
|
+
require_relative 'micro_micro/relationship'
|
29
36
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
require_relative 'micro_micro/collections/base_collection'
|
38
|
+
require_relative 'micro_micro/collections/items_collection'
|
39
|
+
require_relative 'micro_micro/collections/properties_collection'
|
40
|
+
require_relative 'micro_micro/collections/relationships_collection'
|
34
41
|
|
35
42
|
module MicroMicro
|
43
|
+
# Parse a string of HTML for microformats2-encoded data.
|
44
|
+
# Convenience method for MicroMicro::Document.new.
|
45
|
+
#
|
46
|
+
# MicroMicro.parse('<a href="/" class="h-card" rel="me">Jason Garber</a>', 'https://sixtwothree.org')
|
47
|
+
#
|
48
|
+
# @param markup [String] The HTML to parse for microformats2-encoded data.
|
49
|
+
# @param base_url [String] The URL associated with markup. Used for relative URL resolution.
|
50
|
+
# @return [MicroMicro::Document]
|
36
51
|
def self.parse(markup, base_url)
|
37
52
|
Document.new(markup, base_url)
|
38
53
|
end
|
data/micromicro.gemspec
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'lib/micro_micro/version'
|
2
4
|
|
3
5
|
Gem::Specification.new do |spec|
|
4
|
-
spec.required_ruby_version =
|
6
|
+
spec.required_ruby_version = '>= 2.7', '< 4'
|
5
7
|
|
6
8
|
spec.name = 'micromicro'
|
7
9
|
spec.version = MicroMicro::VERSION
|
@@ -13,16 +15,19 @@ Gem::Specification.new do |spec|
|
|
13
15
|
spec.homepage = 'https://github.com/jgarber623/micromicro'
|
14
16
|
spec.license = 'MIT'
|
15
17
|
|
16
|
-
spec.files = Dir.
|
17
|
-
|
18
|
-
|
18
|
+
spec.files = Dir['lib/**/*'].reject { |f| File.directory?(f) }
|
19
|
+
spec.files += %w[LICENSE CHANGELOG.md CONTRIBUTING.md README.md]
|
20
|
+
spec.files += %w[micromicro.gemspec]
|
19
21
|
|
20
22
|
spec.require_paths = ['lib']
|
21
23
|
|
22
|
-
spec.metadata
|
23
|
-
|
24
|
+
spec.metadata = {
|
25
|
+
'bug_tracker_uri' => "#{spec.homepage}/issues",
|
26
|
+
'changelog_uri' => "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md",
|
27
|
+
'rubygems_mfa_required' => 'true'
|
28
|
+
}
|
24
29
|
|
25
|
-
spec.add_runtime_dependency '
|
26
|
-
spec.add_runtime_dependency '
|
27
|
-
spec.add_runtime_dependency 'nokogiri', '~>
|
30
|
+
spec.add_runtime_dependency 'activesupport', '~> 7.0'
|
31
|
+
spec.add_runtime_dependency 'nokogiri', '>= 1.13'
|
32
|
+
spec.add_runtime_dependency 'nokogiri-html-ext', '~> 0.2.0'
|
28
33
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: micromicro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Garber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '7.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '7.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.13'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.13'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: nokogiri
|
42
|
+
name: nokogiri-html-ext
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.2.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.2.0
|
55
55
|
description: Extract microformats2-encoded data from HTML documents.
|
56
56
|
email:
|
57
57
|
- jason@sixtwothree.org
|
@@ -59,29 +59,20 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- ".editorconfig"
|
63
|
-
- ".gitignore"
|
64
|
-
- ".gitmodules"
|
65
|
-
- ".reek.yml"
|
66
|
-
- ".rspec"
|
67
|
-
- ".rubocop"
|
68
|
-
- ".rubocop.yml"
|
69
|
-
- ".ruby-version"
|
70
|
-
- ".simplecov"
|
71
|
-
- ".travis.yml"
|
72
62
|
- CHANGELOG.md
|
73
63
|
- CONTRIBUTING.md
|
74
|
-
- Gemfile
|
75
64
|
- LICENSE
|
76
65
|
- README.md
|
77
|
-
-
|
66
|
+
- lib/micro_micro/collectible.rb
|
78
67
|
- lib/micro_micro/collections/base_collection.rb
|
79
68
|
- lib/micro_micro/collections/items_collection.rb
|
80
69
|
- lib/micro_micro/collections/properties_collection.rb
|
81
|
-
- lib/micro_micro/collections/
|
70
|
+
- lib/micro_micro/collections/relationships_collection.rb
|
82
71
|
- lib/micro_micro/document.rb
|
72
|
+
- lib/micro_micro/helpers.rb
|
83
73
|
- lib/micro_micro/implied_property.rb
|
84
74
|
- lib/micro_micro/item.rb
|
75
|
+
- lib/micro_micro/parsers/base_implied_property_parser.rb
|
85
76
|
- lib/micro_micro/parsers/base_property_parser.rb
|
86
77
|
- lib/micro_micro/parsers/date_time_parser.rb
|
87
78
|
- lib/micro_micro/parsers/date_time_property_parser.rb
|
@@ -93,7 +84,7 @@ files:
|
|
93
84
|
- lib/micro_micro/parsers/url_property_parser.rb
|
94
85
|
- lib/micro_micro/parsers/value_class_pattern_parser.rb
|
95
86
|
- lib/micro_micro/property.rb
|
96
|
-
- lib/micro_micro/
|
87
|
+
- lib/micro_micro/relationship.rb
|
97
88
|
- lib/micro_micro/version.rb
|
98
89
|
- lib/micromicro.rb
|
99
90
|
- micromicro.gemspec
|
@@ -102,7 +93,8 @@ licenses:
|
|
102
93
|
- MIT
|
103
94
|
metadata:
|
104
95
|
bug_tracker_uri: https://github.com/jgarber623/micromicro/issues
|
105
|
-
changelog_uri: https://github.com/jgarber623/micromicro/blob/
|
96
|
+
changelog_uri: https://github.com/jgarber623/micromicro/blob/v2.0.0/CHANGELOG.md
|
97
|
+
rubygems_mfa_required: 'true'
|
106
98
|
post_install_message:
|
107
99
|
rdoc_options: []
|
108
100
|
require_paths:
|
@@ -111,17 +103,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
103
|
requirements:
|
112
104
|
- - ">="
|
113
105
|
- !ruby/object:Gem::Version
|
114
|
-
version: '2.
|
106
|
+
version: '2.7'
|
115
107
|
- - "<"
|
116
108
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
109
|
+
version: '4'
|
118
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
111
|
requirements:
|
120
112
|
- - ">="
|
121
113
|
- !ruby/object:Gem::Version
|
122
114
|
version: '0'
|
123
115
|
requirements: []
|
124
|
-
rubygems_version: 3.
|
116
|
+
rubygems_version: 3.3.16
|
125
117
|
signing_key:
|
126
118
|
specification_version: 4
|
127
119
|
summary: Extract microformats2-encoded data from HTML documents.
|
data/.editorconfig
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# EditorConfig is awesome: https://EditorConfig.org
|
2
|
-
root = true
|
3
|
-
|
4
|
-
[*]
|
5
|
-
charset = utf-8
|
6
|
-
end_of_line = lf
|
7
|
-
insert_final_newline = true
|
8
|
-
indent_size = 2
|
9
|
-
indent_style = space
|
10
|
-
trim_trailing_whitespace = true
|
11
|
-
|
12
|
-
[*.md]
|
13
|
-
indent_size = 4
|
14
|
-
indent_style = tab
|
data/.gitignore
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
*.gem
|
2
|
-
*.rbc
|
3
|
-
/.config
|
4
|
-
/coverage/
|
5
|
-
/InstalledFiles
|
6
|
-
/pkg/
|
7
|
-
/spec/reports/
|
8
|
-
/spec/examples.txt
|
9
|
-
/test/tmp/
|
10
|
-
/test/version_tmp/
|
11
|
-
/tmp/
|
12
|
-
|
13
|
-
# Used by dotenv library to load environment variables.
|
14
|
-
# .env
|
15
|
-
|
16
|
-
# Documentation cache and generated files:
|
17
|
-
/.yardoc/
|
18
|
-
/_yardoc/
|
19
|
-
/doc/
|
20
|
-
/rdoc/
|
21
|
-
|
22
|
-
# Environment normalization:
|
23
|
-
/.bundle/
|
24
|
-
/vendor/bundle
|
25
|
-
/lib/bundler/man/
|
26
|
-
|
27
|
-
# for a library or gem, you might want to ignore these files since the code is
|
28
|
-
# intended to run in multiple environments; otherwise, check them in:
|
29
|
-
Gemfile.lock
|
30
|
-
# .ruby-version
|
31
|
-
# .ruby-gemset
|
32
|
-
|
33
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
34
|
-
.rvmrc
|
data/.gitmodules
DELETED
data/.reek.yml
DELETED
data/.rspec
DELETED
data/.rubocop
DELETED
data/.rubocop.yml
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require:
|
2
|
-
- rubocop-performance
|
3
|
-
- rubocop-rspec
|
4
|
-
|
5
|
-
AllCops:
|
6
|
-
NewCops: enable
|
7
|
-
|
8
|
-
Layout/HashAlignment:
|
9
|
-
EnforcedHashRocketStyle: table
|
10
|
-
|
11
|
-
Layout/LineLength:
|
12
|
-
Enabled: false
|
13
|
-
|
14
|
-
Metrics/BlockLength:
|
15
|
-
Exclude:
|
16
|
-
- spec/**/*.rb
|
17
|
-
|
18
|
-
Style/Documentation:
|
19
|
-
Enabled: false
|
20
|
-
|
21
|
-
Style/FrozenStringLiteralComment:
|
22
|
-
Enabled: false
|
23
|
-
|
24
|
-
Style/SymbolArray:
|
25
|
-
Enabled: false
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.5.8
|
data/.simplecov
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'simplecov-console'
|
2
|
-
|
3
|
-
formatters = [SimpleCov::Formatter::HTMLFormatter]
|
4
|
-
|
5
|
-
if RSpec.configuration.files_to_run.length > 1
|
6
|
-
formatters << SimpleCov::Formatter::Console
|
7
|
-
end
|
8
|
-
|
9
|
-
SimpleCov.start do
|
10
|
-
formatter SimpleCov::Formatter::MultiFormatter.new(formatters)
|
11
|
-
end
|
data/.travis.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
dist: bionic
|
2
|
-
language: ruby
|
3
|
-
rvm:
|
4
|
-
- 2.5
|
5
|
-
- 2.6
|
6
|
-
- 2.7
|
7
|
-
cache:
|
8
|
-
- bundler
|
9
|
-
before_script:
|
10
|
-
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
11
|
-
- chmod +x ./cc-test-reporter
|
12
|
-
- ./cc-test-reporter before-build
|
13
|
-
after_script:
|
14
|
-
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
15
|
-
notifications:
|
16
|
-
email: false
|
17
|
-
slack:
|
18
|
-
rooms:
|
19
|
-
secure: JmMccxJmz97LtzKLPd+Hp1MeRUKL8kscN2A2CPyEyRJC7u/U+41SHtXkojR4OpQDoCsP3MexhqoJ/Fu1eLDxZ3e1B7PFrwKCfSQc8YZhLYfE0B9Tfy4M+LBQkgoLwsUHP2Vxyho0iZ1knL+070EJQlEpTox+9N8eTfOX6SOpiNLDHTRd4217yI7faog790OYGKTbOCRj5fo+kPAeN8NrEZavjx6QeWBcJ/wRv6O2V6dhrnqOho2ktSj14/yeNsVoYc4Ondk5Hy/zSCPRjvqFO9wI2mC6l7u9W0ffy09trvkXTTmPQeCbzFKgybHSKpmxCE6frFOSkO+aBVGJ/p4hxej5001nzZrCfZF3MBEKQwAFHBLX6hIIbCOZmR915vl+8NGPkCy4o8W/BlRWKtVWIbDCk8sxf+WbIHLkSsfBBGHmABxQXvDS3ejKh+Rm35ejdrak2jWg/cxYHBbZDHBNPjLHbYzfziMSlNgbQ3V9fVfpNC1AI7jXNSgOsuX6Uv5dvTk40Wa4xEiNOkEtLMn55exnrxoJ+B68aZPvA/71/rvHKPyjgBNxu7Zb+5mrVHja+DNTdotomWdzfmILn2CV1xvfhQAFmph4lagiRHqpLXATJ6N0907tNILJUzbvMPONVbcyQlx1UHnbiezagjQ+dwoOyjof184M8jECba7zXzs=
|
data/Gemfile
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
# Specify your gem's dependencies in micromicro.gemspec
|
4
|
-
gemspec
|
5
|
-
|
6
|
-
gem 'pry-byebug', '~> 3.9'
|
7
|
-
gem 'rake', '~> 13.0'
|
8
|
-
gem 'reek', '~> 6.0'
|
9
|
-
gem 'rspec', '~> 3.9'
|
10
|
-
gem 'rubocop', '~> 0.82.0'
|
11
|
-
gem 'rubocop-performance', '~> 1.5'
|
12
|
-
gem 'rubocop-rspec', '~> 1.38'
|
13
|
-
gem 'simplecov', '~> 0.18.5'
|
14
|
-
gem 'simplecov-console', '~> 0.7.2'
|
data/Rakefile
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'bundler/gem_tasks'
|
2
|
-
|
3
|
-
require 'reek/rake/task'
|
4
|
-
require 'rspec/core/rake_task'
|
5
|
-
require 'rubocop/rake_task'
|
6
|
-
|
7
|
-
Reek::Rake::Task.new do |task|
|
8
|
-
task.fail_on_error = false
|
9
|
-
task.source_files = FileList['**/*.rb'].exclude('vendor/**/*.rb')
|
10
|
-
end
|
11
|
-
|
12
|
-
RSpec::Core::RakeTask.new
|
13
|
-
|
14
|
-
RuboCop::RakeTask.new do |task|
|
15
|
-
task.fail_on_error = false
|
16
|
-
end
|
17
|
-
|
18
|
-
task default: [:rubocop, :reek, :spec]
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module MicroMicro
|
2
|
-
module Collections
|
3
|
-
class RelationsCollection < BaseCollection
|
4
|
-
# @see microformats2 Parsing Specification section 1.4
|
5
|
-
# @see http://microformats.org/wiki/microformats2-parsing#parse_a_hyperlink_element_for_rel_microformats
|
6
|
-
#
|
7
|
-
# @return [Hash{Symbole => Hash{Symbol => Array, String}}]
|
8
|
-
def group_by_url
|
9
|
-
group_by(&:href).symbolize_keys.transform_values { |relations| relations.first.to_h.slice!(:href) }
|
10
|
-
end
|
11
|
-
|
12
|
-
# @see microformats2 Parsing Specification section 1.4
|
13
|
-
# @see http://microformats.org/wiki/microformats2-parsing#parse_a_hyperlink_element_for_rel_microformats
|
14
|
-
#
|
15
|
-
# @return [Hash{Symbol => Array<String>}]
|
16
|
-
def group_by_rel
|
17
|
-
each_with_object(Hash.new { |hash, key| hash[key] = [] }) do |member, hash|
|
18
|
-
member.rels.each { |rel| hash[rel] << member.href }
|
19
|
-
end.symbolize_keys.transform_values(&:uniq)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|