Class: FcrepoWrapper::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/fcrepo_wrapper/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Configuration

Returns a new instance of Configuration.



8
9
10
11
12
# File 'lib/fcrepo_wrapper/configuration.rb', line 8

def initialize(options)
  @config = options[:config]
  @verbose = options[:verbose]
  @options = load_configs(Array(options[:config])).merge(options)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/fcrepo_wrapper/configuration.rb', line 7

def options
  @options
end

Instance Method Details

#binary_pathObject



50
51
52
# File 'lib/fcrepo_wrapper/configuration.rb', line 50

def binary_path
  File.join(instance_dir, "fcrepo-webapp-#{version}-jetty-console.jar")
end

#default_download_pathObject



22
23
24
# File 'lib/fcrepo_wrapper/configuration.rb', line 22

def default_download_path
  File.join(download_dir, File.basename(download_url))
end

#default_java_optionsObject



79
80
81
82
83
84
85
86
87
88
89
# File 'lib/fcrepo_wrapper/configuration.rb', line 79

def default_java_options
  ['-Dfcrepo.log.http.api=WARN',
  # To avoid "WARN: The namespace of predicate:
  # info:fedora/fedora-system:def/relations-external#isPartOf
  # was possibly misinterpreted as:
  # info:fedora/fedora-system:def/relations-external#."
  '-Dfcrepo.log.kernel=ERROR',
  ("-Dfcrepo.home=#{fcrepo_home_dir}" if fcrepo_home_dir),
  ("-Dfcrepo.spring.jms.configuration=#{spring_noop_file}" unless jms_enabled?),
  '-Xmx512m'].compact
end

#download_pathObject



26
27
28
# File 'lib/fcrepo_wrapper/configuration.rb', line 26

def download_path
  @download_path ||= options.fetch(:download_path, default_download_path)
end

#download_urlObject



18
19
20
# File 'lib/fcrepo_wrapper/configuration.rb', line 18

def download_url
  @download_url ||= options.fetch(:url, default_download_url)
end

#envObject



62
63
64
# File 'lib/fcrepo_wrapper/configuration.rb', line 62

def env
  options.fetch(:env, {})
end

#fcrepo_home_dirObject



91
92
93
94
95
96
97
98
99
# File 'lib/fcrepo_wrapper/configuration.rb', line 91

def fcrepo_home_dir
  if options[:fcrepo_home_dir]
    options[:fcrepo_home_dir]
  elsif defined? Rails
    File.join(Rails.root, 'tmp', 'fcrepo4-data')
  else
    Dir.mktmpdir
  end
end

#fcrepo_optionsObject



58
59
60
# File 'lib/fcrepo_wrapper/configuration.rb', line 58

def fcrepo_options
  options.fetch(:fcrepo_options, headless: nil)
end

#ignore_md5sumObject



30
31
32
# File 'lib/fcrepo_wrapper/configuration.rb', line 30

def ignore_md5sum
  options.fetch(:ignore_md5sum, false)
end

#instance_dirObject



14
15
16
# File 'lib/fcrepo_wrapper/configuration.rb', line 14

def instance_dir
  @instance_dir ||= options.fetch(:instance_dir, File.join(Dir.tmpdir, File.basename(download_url, ".jar")))
end

#java_optionsObject

Returns a list of arguments to pass to the JVM.

Returns:

  • a list of arguments to pass to the JVM



75
76
77
# File 'lib/fcrepo_wrapper/configuration.rb', line 75

def java_options
  options.fetch(:java_options, default_java_options) + ['-jar', binary_path]
end

#managed?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/fcrepo_wrapper/configuration.rb', line 70

def managed?
  File.exists?(instance_dir)
end

#md5sumObject



112
113
114
# File 'lib/fcrepo_wrapper/configuration.rb', line 112

def md5sum
  options.fetch(:md5sum, nil)
end

#md5sum_pathObject



34
35
36
# File 'lib/fcrepo_wrapper/configuration.rb', line 34

def md5sum_path
  File.join(download_dir, File.basename(md5url))
end

#md5urlObject



54
55
56
# File 'lib/fcrepo_wrapper/configuration.rb', line 54

def md5url
  "https://github.com/fcrepo4/fcrepo4/releases/download/fcrepo-#{version}/fcrepo-webapp-#{version}-jetty-console.jar.md5"
end

#portObject



101
102
103
104
105
106
# File 'lib/fcrepo_wrapper/configuration.rb', line 101

def port
  # Check if the port option has been explicitly set to nil.
  # this means to start fcrepo_wrapper on a random open port
  return nil if options.key?(:port) && !options[:port]
  options[:port] || FcrepoWrapper.default_fcrepo_port
end

#tmp_save_dirObject



38
39
40
# File 'lib/fcrepo_wrapper/configuration.rb', line 38

def tmp_save_dir
  @tmp_save_dir ||= Dir.mktmpdir
end

#validateObject



108
109
110
# File 'lib/fcrepo_wrapper/configuration.rb', line 108

def validate
  options.fetch(:validate, true)
end

#verbose?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/fcrepo_wrapper/configuration.rb', line 66

def verbose?
  @verbose || (options && !!options.fetch(:verbose, false))
end

#versionObject



42
43
44
# File 'lib/fcrepo_wrapper/configuration.rb', line 42

def version
  @version ||= options.fetch(:version, FcrepoWrapper.default_fcrepo_version)
end

#version_fileObject



46
47
48
# File 'lib/fcrepo_wrapper/configuration.rb', line 46

def version_file
  options.fetch(:version_file, File.join(instance_dir, "VERSION"))
end