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
# File 'lib/fcrepo_wrapper/configuration.rb', line 8

def initialize(options)
  @options = read_config(options[:config], options[:verbose])
               .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



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

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

#default_download_pathObject



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

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

#default_java_optionsObject



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

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



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

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

#download_urlObject



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

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

#envObject



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

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

#fcrepo_home_dirObject



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

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



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

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

#ignore_md5sumObject



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

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

#instance_dirObject



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

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



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

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

#managed?Boolean

Returns:

  • (Boolean)


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

def managed?
  File.exists?(instance_dir)
end

#md5sumObject



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

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

#md5sum_pathObject



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

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

#md5urlObject



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

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

#portObject



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

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



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

def tmp_save_dir
  @tmp_save_dir ||= Dir.mktmpdir
end

#validateObject



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

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

#verbose?Boolean

Returns:

  • (Boolean)


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

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

#versionObject



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

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

#version_fileObject



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

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