nokolexbor 0.3.2-x86_64-linux → 0.3.4-x86_64-linux

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: f551e41377e49aa9e17cbb77df849a1319fc9a8c7699b7c50d74ee3fa25080e1
4
- data.tar.gz: 69fdd6ab8361b62d8a2e97aee0aa60010e6b010c847e60bd73b34ac555e6c58e
3
+ metadata.gz: c7c90ef08e3d054aadea04d860e90518965147658929230047b1d872ec6900e7
4
+ data.tar.gz: 53023bacf95c7f2201ca44f5d223e7705bc328a1b28f526319ddf4f5346c149b
5
5
  SHA512:
6
- metadata.gz: c29a23ba8a00b57bda6ac9b3e32edffe4830363dee6e0f3c41f56a6a69eb63ba59ca175b007e93e6eee33bac64c3ef2514260467fb87cec330f558e6d7f5ba65
7
- data.tar.gz: 353ce400f7dcb0f752fff16bc7a0ae8f86c3bc190b1b0813a1cd076a06a1b41ed325c8ed57c70a18632b67d4cedcf7fa4523411eb3fddef24119e515f6749c64
6
+ metadata.gz: aac39a68e202dff8a04b6b8b934a588fc4316551023f1900a72d835ddde475443e7b23487dece7184f1e65b371f965574f4409124209ce0c7a9281dc724e15e1
7
+ data.tar.gz: 8c79cf32463356b25cadf828157255f1cdc2ac5f33e567962e47689a78a530f24d6939ad220ac7d9ebe198617228850cc54738419d70ad482ae36643db09aabe
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nokolexbor
4
+ class DocumentFragment < Nokolexbor::Node
5
+ def self.parse(tags)
6
+ new(Nokolexbor::Document.new, tags, nil)
7
+ end
8
+
9
+ def initialize(document, tags = nil, ctx = nil)
10
+ return self unless tags
11
+
12
+ ctx ||= document
13
+ node_set = ctx.parse(tags)
14
+ node_set.each { |child| child.parent = self } unless node_set.empty?
15
+ nil
16
+ end
17
+
18
+ def name
19
+ "#document-fragment"
20
+ end
21
+
22
+ alias_method :outer_html, :inner_html
23
+ alias_method :to_html, :outer_html
24
+ alias_method :to_s, :outer_html
25
+ alias_method :serialize, :outer_html
26
+
27
+ def fragment(data)
28
+ document.fragment(data)
29
+ end
30
+ end
31
+ end
@@ -145,13 +145,10 @@ module Nokolexbor
145
145
  ancestors.last.css(selector).any? { |node| node == self }
146
146
  end
147
147
 
148
- def attribute(name)
149
- return nil unless key?(name)
150
- Attribute.new(name, attr(name))
151
- end
152
-
153
148
  def attributes
154
- attrs.map { |k, v| [k, Attribute.new(k, v)] }.to_h
149
+ attribute_nodes.each_with_object({}) do |node, hash|
150
+ hash[node.name] = node
151
+ end
155
152
  end
156
153
 
157
154
  def replace(node)
@@ -182,6 +179,10 @@ module Nokolexbor
182
179
  end
183
180
  end
184
181
 
182
+ def fragment(tags)
183
+ Nokolexbor::DocumentFragment.new(document, tags, self)
184
+ end
185
+
185
186
  alias_method :inner_html=, :children=
186
187
 
187
188
  def css(*args)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nokolexbor
4
- VERSION = '0.3.2'
4
+ VERSION = '0.3.4'
5
5
  end
data/lib/nokolexbor.rb CHANGED
@@ -25,7 +25,7 @@ require 'nokolexbor/version'
25
25
  require 'nokolexbor/node'
26
26
  require 'nokolexbor/document'
27
27
  require 'nokolexbor/node_set'
28
- require 'nokolexbor/attribute'
28
+ require 'nokolexbor/document_fragment'
29
29
  require 'nokolexbor/xpath'
30
30
  require 'nokolexbor/xpath_context'
31
31
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokolexbor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Yicheng Zhou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-09 00:00:00.000000000 Z
11
+ date: 2023-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -50,8 +50,8 @@ files:
50
50
  - lib/nokolexbor/2.7/nokolexbor.so
51
51
  - lib/nokolexbor/3.0/nokolexbor.so
52
52
  - lib/nokolexbor/3.1/nokolexbor.so
53
- - lib/nokolexbor/attribute.rb
54
53
  - lib/nokolexbor/document.rb
54
+ - lib/nokolexbor/document_fragment.rb
55
55
  - lib/nokolexbor/node.rb
56
56
  - lib/nokolexbor/node_set.rb
57
57
  - lib/nokolexbor/version.rb
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Nokolexbor
4
- class Attribute
5
- attr_accessor :name
6
- attr_accessor :value
7
-
8
- def initialize(name, value)
9
- @name = name
10
- @value = value
11
- end
12
-
13
- alias_method :text, :value
14
- alias_method :content, :value
15
- alias_method :to_s, :value
16
- alias_method :to_str, :value
17
- end
18
- end