moxml 0.1.1 → 0.1.2

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: 8fd59e7a59b29416c792cd5d84cedceaede12d661e96c1da3b78af9711bcdb95
4
- data.tar.gz: bb90166adcfa1e8c5440b6f991c842358df348e62a3a04e11a228ff7c96590c9
3
+ metadata.gz: 590ee539c3419cf7c36cbd58a031a0939f2e6fc87637509c012292b3d8b09ebd
4
+ data.tar.gz: 5452e3fc378dbff7ab557dfae51553b287dbca33f2ddd07db38728ccf1e01a16
5
5
  SHA512:
6
- metadata.gz: 9e23367b7e18bc71b64527f1e8e7481279132366d169551b665e11d474c473e779bb6424158f64a6171f0e6122d12268cd573c2d12abaa20a80666f538224d1b
7
- data.tar.gz: 3760403535f405b1153aeb02a7b9ff0c1896b961eed403a017ab32522202b7aa9fe1adb1d455c59ae903e5903ab6d2ddea57ec64cb4570e538420efc63d9014a
6
+ metadata.gz: 95cc452d7d28c352589a036c6a2a2aff8496e020c77b61da797d962a656466ca770480d94288af538fd541eba6b2d031e1d6b3ee9cb8c12b62da471f03258be4
7
+ data.tar.gz: 54dcff1b9875e3344d42a2cdaca136511d163d92b8303785b495a84b0c2dfcb7c9ea3853fc65c0b8a926d9ad0c00651fd0edd02be4d9db8980fd4171c6197418
data/README.adoc CHANGED
@@ -171,6 +171,7 @@ element.name # Get element name
171
171
  element.name = "new_name" # Set element name
172
172
  element.text # Get text content
173
173
  element.text = "content" # Set text content
174
+ element.inner_text # Get text content for current node only
174
175
  element.inner_html # Get inner XML content
175
176
  element.inner_html = xml # Set inner XML content
176
177
 
@@ -224,6 +224,11 @@ module Moxml
224
224
  node.content
225
225
  end
226
226
 
227
+ def inner_text(node)
228
+ text_children = node.children - node.element_children
229
+ text_children.map(&:content).join
230
+ end
231
+
227
232
  def set_text_content(node, content)
228
233
  node.native_content = content
229
234
  end
@@ -237,6 +237,15 @@ module Moxml
237
237
  node.text
238
238
  end
239
239
 
240
+ def inner_text(node)
241
+ if node.respond_to?(:inner_text)
242
+ node.inner_text
243
+ else
244
+ # Oga::XML::Text node for example
245
+ node.text
246
+ end
247
+ end
248
+
240
249
  def set_text_content(node, content)
241
250
  if node.respond_to?(:inner_text)
242
251
  node.inner_text = content
data/lib/moxml/element.rb CHANGED
@@ -79,6 +79,10 @@ module Moxml
79
79
  adapter.set_text_content(@native, normalize_xml_value(content))
80
80
  end
81
81
 
82
+ def inner_text
83
+ adapter.inner_text(@native)
84
+ end
85
+
82
86
  def inner_html
83
87
  adapter.inner_html(@native)
84
88
  end
data/lib/moxml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Moxml
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
@@ -106,5 +106,25 @@ RSpec.shared_examples "Moxml::Element" do
106
106
  expect(element.to_xml).to include("text<child></child>more")
107
107
  end
108
108
  end
109
+
110
+ describe "complex element structures" do
111
+ it "creates nested paragraphs without namespaces" do
112
+ outer_p = doc.create_element("p")
113
+ inner_p = doc.create_element("p")
114
+ inner_p.add_child("Some text inside paragraph")
115
+ outer_p.add_child(inner_p)
116
+
117
+ expect(outer_p.to_xml).to include("<p>Some text inside paragraph</p>")
118
+ end
119
+
120
+ it "does not return text of child elements in root text" do
121
+ outer_p = doc.create_element("p")
122
+ inner_p = doc.create_element("p")
123
+ inner_p.add_child("Some text inside paragraph")
124
+ outer_p.add_child(inner_p)
125
+ expect(outer_p.inner_text).to eq("")
126
+ expect(inner_p.text).to include("Some text inside paragraph")
127
+ end
128
+ end
109
129
  end
110
130
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moxml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-13 00:00:00.000000000 Z
11
+ date: 2025-02-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'Moxml is a unified XML manipulation library that provides a common API.
14
14