moxml 0.5.178 → 0.6.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/nightly-fuzz.yml +0 -14
  3. data/.github/workflows/performance-release.yml +0 -13
  4. data/.github/workflows/performance.yml +0 -17
  5. data/.github/workflows/rake.yml +0 -38
  6. data/.github/workflows/round-trip.yml +0 -45
  7. data/.github/workflows/windows.yml +0 -12
  8. data/Gemfile +4 -14
  9. data/README.adoc +5 -388
  10. data/Rakefile +2 -179
  11. data/docs/_references/processing-model.adoc +3 -2
  12. data/lib/moxml/adapter/customized_oga.rb +6 -4
  13. data/lib/moxml/adapter/customized_rexml/entity_reference.rb +3 -2
  14. data/lib/moxml/adapter/customized_rexml/formatter.rb +2 -2
  15. data/lib/moxml/adapter/customized_rexml.rb +5 -3
  16. data/lib/moxml/adapter/headed_ox.rb +0 -2
  17. data/lib/moxml/adapter/leptris.rb +0 -2
  18. data/lib/moxml/adapter/libxml.rb +0 -2
  19. data/lib/moxml/adapter/nokogiri.rb +0 -2
  20. data/lib/moxml/adapter/ox.rb +0 -2
  21. data/lib/moxml/adapter/rexml.rb +1 -3
  22. data/lib/moxml/adapter.rb +1 -11
  23. data/lib/moxml/config.rb +2 -26
  24. data/lib/moxml/entity_registry.rb +1 -5
  25. data/lib/moxml/native_attachment.rb +1 -3
  26. data/lib/moxml/reference/parser.rb +1 -2
  27. data/lib/moxml/reference/writer.rb +2 -2
  28. data/lib/moxml/reference.rb +1 -1
  29. data/lib/moxml/version.rb +1 -1
  30. data/lib/moxml/xml_utils.rb +1 -1
  31. data/lib/moxml.rb +1 -4
  32. data/spec/moxml/adapter/platform_spec.rb +2 -47
  33. data/spec/moxml/native_attachment_spec.rb +4 -50
  34. data/spec/moxml/signature/edge_cases_spec.rb +0 -1
  35. data/spec/spec_helper.rb +13 -31
  36. metadata +2 -22
  37. data/.github/workflows/opal.yml +0 -61
  38. data/.gitmodules +0 -6
  39. data/lib/compat/opal/moxml_boot.rb +0 -68
  40. data/lib/compat/opal/rexml/namespace.rb +0 -59
  41. data/lib/compat/opal/rexml/parsers/baseparser.rb +0 -1016
  42. data/lib/compat/opal/rexml/source.rb +0 -214
  43. data/lib/compat/opal/rexml/text.rb +0 -426
  44. data/lib/compat/opal/rexml/xmltokens.rb +0 -45
  45. data/lib/compat/opal/rexml_compat.rb +0 -77
  46. data/lib/moxml/entity_registry_opal_data.rb +0 -2138
  47. data/lib/moxml/native_attachment/opal.rb +0 -38
  48. data/spec/moxml/native_attachment/opal_spec.rb +0 -66
  49. data/spec/moxml/opal_oga_adapter_spec.rb +0 -20
  50. data/spec/moxml/opal_oga_features_spec.rb +0 -212
  51. data/spec/moxml/opal_oga_smoke_spec.rb +0 -35
  52. data/spec/moxml/opal_rexml_adapter_spec.rb +0 -14
  53. data/spec/moxml/opal_smoke_spec.rb +0 -61
  54. data/spec/moxml/reference_opal_spec.rb +0 -29
  55. data/spec/moxml/signature_autoload_spec.rb +0 -52
  56. data/spec/support/opal.rb +0 -16
@@ -1,61 +0,0 @@
1
- name: opal
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- tags: [ v* ]
7
- pull_request:
8
-
9
- # One live run per workflow+event+ref: a superseded push to the
10
- # same PR/branch cancels its predecessors instead of queueing
11
- # behind them (the runner queue otherwise stacks generations).
12
- concurrency:
13
- group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
14
- cancel-in-progress: true
15
-
16
- permissions:
17
- contents: read
18
-
19
- jobs:
20
- test:
21
- runs-on: ubuntu-latest
22
- steps:
23
- - uses: actions/checkout@v6
24
- with:
25
- submodules: "recursive"
26
-
27
- - name: Set up Ruby
28
- uses: ruby/setup-ruby@v1
29
- with:
30
- ruby-version: "3.4"
31
- # NOTE: bundler-cache is disabled because the path-source oga
32
- # and ruby-ll forks need ragel + ruby-ll outputs generated
33
- # (rake vendor:prepare) before their C extensions can compile.
34
- bundler-cache: false
35
-
36
- - name: Set up Node.js
37
- uses: actions/setup-node@v4
38
- with:
39
- node-version: "18"
40
-
41
- - name: Install ragel
42
- run: sudo apt-get update && sudo apt-get install -y ragel
43
-
44
- - name: Install ruby-ll (for rake vendor:prepare)
45
- run: gem install ruby-ll --no-document
46
-
47
- - name: Generate ragel / ruby-ll outputs in vendored forks
48
- # Run before `bundle install`: the path-source oga/ruby-ll forks
49
- # gitignore their generated .rb/.c files (parser.rb, lexer.rb,
50
- # ext/c/lexer.c). bundle install compiles the C extensions via
51
- # each fork's extconf.rb, which requires ext/c/lexer.c to exist.
52
- run: rake vendor:prepare
53
-
54
- - name: Install Opal dependencies
55
- run: |
56
- npm list -g opal-compiler || npm install -g opal-compiler
57
- bundle install
58
- bundle exec rake opal:generate_entity_data
59
-
60
- - name: Run Opal tests
61
- run: bundle exec rake spec:opal
data/.gitmodules DELETED
@@ -1,6 +0,0 @@
1
- [submodule "opal-oga"]
2
- path = vendor/opal-oga
3
- url = git@github.com:lutaml/opal-oga.git
4
- [submodule "opal-ruby-ll"]
5
- path = vendor/opal-ruby-ll
6
- url = git@github.com:lutaml/opal-ruby-ll.git
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Opal doesn't support Ruby autoload. This file explicitly requires
4
- # all Moxml modules that would normally be lazy-loaded via autoload
5
- # in lib/moxml.rb. Loaded by the Opal Rakefile before spec_helper.
6
-
7
- require "moxml/version"
8
- require "moxml/error"
9
- require "moxml/native_attachment"
10
- require "moxml/native_attachment/opal"
11
- require "moxml/xml_utils"
12
- require "moxml/xml_utils/encoder"
13
- require "moxml/node"
14
- require "moxml/node_set"
15
- require "moxml/lazy_node_set"
16
- require "moxml/document"
17
- require "moxml/element"
18
- require "moxml/attribute"
19
- require "moxml/text"
20
- require "moxml/cdata"
21
- require "moxml/comment"
22
- require "moxml/processing_instruction"
23
- require "moxml/declaration"
24
- require "moxml/namespace"
25
- require "moxml/doctype"
26
- require "moxml/entity_reference"
27
- require "moxml/entity_registry"
28
- require "moxml/entity_registry_opal_data"
29
- require "moxml/entity"
30
- require "moxml/entity/restorer"
31
- require "moxml/entity/reference"
32
- require "moxml/xml_emitter"
33
- require "moxml/adapter"
34
- require "moxml/adapter/base"
35
- require "moxml/adapter/customized_rexml"
36
- require "moxml/adapter/customized_rexml/entity_reference"
37
- require "moxml/adapter/customized_rexml/formatter"
38
- require "moxml/sax"
39
- require "moxml/sax/handler"
40
- require "moxml/sax/element_handler"
41
- require "moxml/sax/block_handler"
42
- require "moxml/sax/namespace_splitter"
43
- require "moxml/adapter/rexml"
44
- require "moxml/adapter/customized_oga"
45
- require "moxml/adapter/customized_oga/entity_decoder"
46
- require "moxml/adapter/customized_oga/raw_value_override"
47
- require "moxml/adapter/customized_oga/xml_declaration"
48
- require "moxml/adapter/customized_oga/xml_generator"
49
- require "moxml/adapter/oga"
50
- require "moxml/builder"
51
- require "moxml/context"
52
- require "moxml/config"
53
- require "moxml/xpath"
54
- require "moxml/xpath/engine"
55
- require "moxml/xpath/context"
56
- require "moxml/xpath/conversion"
57
- require "moxml/xpath/cache"
58
- require "moxml/xpath/lexer"
59
- require "moxml/xpath/parser"
60
- require "moxml/xpath/compiler"
61
- require "moxml/xpath/errors"
62
- require "moxml/xpath/ast/node"
63
- require "moxml/xpath/ruby/node"
64
- require "moxml/xpath/ruby/generator"
65
- require "moxml/reference"
66
- require "moxml/reference/parser"
67
- require "moxml/reference/writer"
68
- require "moxml/reference/normalizer"
@@ -1,59 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rexml/xmltokens"
4
-
5
- module REXML
6
- module Namespace
7
- attr_reader :name, :expanded_name
8
- attr_accessor :prefix
9
-
10
- include XMLTokens
11
-
12
- NAME_WITHOUT_NAMESPACE = /^#{NCNAME_STR}$/
13
- NAMESPLIT = /^(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})/u
14
-
15
- def name=(name)
16
- @expanded_name = name
17
- if name.match?(NAME_WITHOUT_NAMESPACE)
18
- @prefix = ""
19
- @namespace = ""
20
- @name = name
21
- elsif name =~ NAMESPLIT
22
- if $1
23
- @prefix = $1
24
- else
25
- @prefix = ""
26
- @namespace = ""
27
- end
28
- @name = $2
29
- elsif name == ""
30
- @prefix = nil
31
- @namespace = nil
32
- @name = nil
33
- else
34
- message = "name must be \#{PREFIX}:\#{LOCAL_NAME} or \#{LOCAL_NAME}: "
35
- message += "<#{name.inspect}>"
36
- raise ArgumentError, message
37
- end
38
- end
39
-
40
- def has_name?(other, ns = nil)
41
- if ns
42
- namespace == ns and name == other
43
- elsif other.include? ":"
44
- fully_expanded_name == other
45
- else
46
- name == other
47
- end
48
- end
49
-
50
- alias :local_name :name
51
-
52
- def fully_expanded_name
53
- ns = prefix
54
- return "#{ns}:#@name" if ns.size.positive?
55
-
56
- @name
57
- end
58
- end
59
- end