class TwitterCldr::Resources::Requirements::IcuRequirement
This requirement makes use of the JarClassLoader package (github.com/kamranzafar/JCL) to load ICU in an isolated environment to keep different versions of the library separate. If ICU versions are not kept separate, the one that's first on the classpath wins, which can be surprising if you're not expecting it. Oh, and it can break all the tests.
Constants
- POM_FILE
Attributes
version[R]
Public Class Methods
new(version)
click to toggle source
# File lib/twitter_cldr/resources/requirements/icu_requirement.rb, line 22 def initialize(version) @version = version end
Public Instance Methods
get_class(name)
click to toggle source
# File lib/twitter_cldr/resources/requirements/icu_requirement.rb, line 37 def get_class(name) class_loader.load_class(name).ruby_class end
prepare()
click to toggle source
# File lib/twitter_cldr/resources/requirements/icu_requirement.rb, line 26 def prepare pom.add_dependency('com.ibm.icu', 'icu4j', version) pom.add_dependency('org.xeustechnologies', 'jcl-core', '2.7') pom.install pom.require_jar('org.xeustechnologies', 'jcl-core') java_import 'org.xeustechnologies.jcl.JarClassLoader' class_loader.add(pom.get('com.ibm.icu', 'icu4j').path) end
Private Instance Methods
class_loader()
click to toggle source
# File lib/twitter_cldr/resources/requirements/icu_requirement.rb, line 43 def class_loader @class_loader ||= JarClassLoader.new end
pom()
click to toggle source
# File lib/twitter_cldr/resources/requirements/icu_requirement.rb, line 47 def pom @pom ||= PomManager.new(POM_FILE) end