Module: ActiveCMIS

Defined in:
lib/active_cmis/ns.rb,
lib/active_cmis/acl.rb,
lib/active_cmis/rel.rb,
lib/active_cmis/type.rb,
lib/active_cmis/folder.rb,
lib/active_cmis/object.rb,
lib/active_cmis/policy.rb,
lib/active_cmis/server.rb,
lib/active_cmis/version.rb,
lib/active_cmis/document.rb,
lib/active_cmis/acl_entry.rb,
lib/active_cmis/rendition.rb,
lib/active_cmis/collection.rb,
lib/active_cmis/exceptions.rb,
lib/active_cmis/repository.rb,
lib/active_cmis/active_cmis.rb,
lib/active_cmis/atomic_types.rb,
lib/active_cmis/query_result.rb,
lib/active_cmis/relationship.rb,
lib/active_cmis/internal/utils.rb,
lib/active_cmis/attribute_prefix.rb,
lib/active_cmis/internal/caching.rb,
lib/active_cmis/internal/connection.rb,
lib/active_cmis/property_definition.rb

Defined Under Namespace

Modules: AtomicType, Internal, NS, Rel, Type, Version Classes: Acl, AclEntry, AttributePrefix, Collection, Document, Error, Folder, HTTPError, Object, Policy, PropertyDefinition, QueryResult, Relationship, Rendition, Repository, Server

Class Method Summary collapse

Class Method Details

.connect(config) ⇒ Repository

server_url and repository_id are required options

server_login, server_password and server_auth can be used to authenticate against the server, server_auth is optional and defaults to :basic

You can also authenticate to the repository, by replacing server_ with repository_, by default the repository will use the same authentication parameters as the server

The amoung of logging can be configured by setting log_level (default WARN), this can be done either by naming a Logger::Severity constant or the equivalent integer

The destination of the logger output can be set with log_file (defaults to STDOUT), (should not contain ~)

Default locations for the config file are: ./cmis.yml and .cmis.yml in that order

Returns:



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/active_cmis/active_cmis.rb', line 23

def self.connect(config)
  if config.is_a? Hash
    if config.has_key? "log_file"
      trace_file = config["log_file"]
      if trace_file == "-"
        trace_file = STDOUT
      end
      logger = Logger.new(trace_file)
    else
      logger = default_logger
    end
    if config.has_key? "log_level"
      logger.level = (Logger.const_get(config["log_level"].upcase) rescue config["log_level"].to_i)
    else
      logger.level = Logger::WARN
    end

    if user_name = config["server_login"] and password = config["server_password"]
      auth_type = config["server_auth"] || :basic
      authentication_info = [auth_type, user_name, password]
    end
    server = Server.new(config["server_url"], logger, authentication_info, { :timeout => config["timeout"] })
    if user_name = config["repository_login"] and password = config["repository_password"]
      auth_type = config["repository_auth"] || :basic
      authentication_info = [auth_type, user_name, password]
    end
    repository = server.repository(config["repository_id"], authentication_info)
    return repository
  else
    raise "Configuration does not have correct format (#{config.class} is not a hash)"
  end
end

.default_loggerLogger

Default logger: no output

Returns:

  • (Logger)


4
5
6
# File 'lib/active_cmis/active_cmis.rb', line 4

def self.default_logger
  @default_logger ||= Logger.new(nil)
end

.load_config(config_name, file = nil) ⇒ Repository

Will search for a given configuration in a file, and return the equivalent Repository

The options that can be used are the same as for the connect method

Default locations for the config file are: ./cmis.yml and .cmis.yml in that order

Returns:



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/active_cmis/active_cmis.rb', line 62

def self.load_config(config_name, file = nil)
  if file.nil?
    ["cmis.yml", File.join(ENV["HOME"], ".cmis.yml")].each do |sl|
      if File.exist?(sl)
        file ||= sl
      end
    end
    if file.nil?
      raise "No configuration provided, and none found in standard locations"
    end
  elsif !File.exist?(file)
    raise "Configuration file #{file} does not exist"
  end

  config = YAML.load_file(file)
  if config.is_a? Hash
    if config = config[config_name]
      connect(config)
    else
      raise "Configuration not found in file"
    end
  else
    raise "Configuration file #{file} does not have right format (not a hash)"
  end
end