moxml 0.1.1 → 0.1.2

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 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