Sha256: 77beae8a12539c197427e1b13fab327ed52d563b095bbaa3eb1e9773be257db5

Contents?: true

Size: 1.53 KB

Versions: 4

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

require 'java'

Dir[File.join(__dir__, 'metal/jars/*.jar')].sort.each do |jar_path|
  require jar_path
end

# require 'structurizr/metal/jars/commons-logging-1.2.jar'
# require 'structurizr/metal/jars/jackson-core-2.11.2.jar'
# require 'structurizr/metal/jars/jackson-databind-2.11.2.jar'
# require 'structurizr/metal/jars/jackson-annotations-2.11.2.jar'
# require 'structurizr/metal/jars/structurizr-core-1.6.0.jar'
# require 'structurizr/metal/jars/structurizr-client-1.6.0.jar'

module Structurizr
  # This namespace provides lower-level Java integration with Structurizr
  module Metal
    Root = ::Java::ComStructurizr
    Model = ::Java::ComStructurizrModel
    View = ::Java::ComStructurizrView
    Client = ::Java::ComStructurizrClient
    Util = ::Java::ComStructurizrUtil
    Documentation = ::Java::ComStructurizrDocumentation

    # We need it due to a behavior in jruby which doesn't bind methods from non-public classes
    # https://github.com/jruby/jruby/issues/6197
    # For now we'll stick to our own patch which manually binds those methods
    class Model::ModelItem
      java_alias :addTags, :addTags, [java.lang.String[]]
      java_alias :add_tags, :addTags, [java.lang.String[]]
      java_alias :getTags, :getTags, []
      java_alias :get_tags, :getTags, []
      java_alias :removeTag, :removeTag, [java.lang.String]
      java_alias :remove_tag, :removeTag, [java.lang.String]
      java_alias :hasTag, :hasTag, [java.lang.String]
      java_alias :has_tag, :hasTag, [java.lang.String]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
structurizr-1.0.0.rc.2 lib/structurizr/metal.rb
structurizr-1.0.0.rc.1 lib/structurizr/metal.rb
structurizr-1.0.0.pre.alpha.2 lib/structurizr/metal.rb
structurizr-1.0.0.pre.alpha.1 lib/structurizr/metal.rb