Module: DtcRake

Includes:
UI
Defined in:
lib/dtc_rake/ui.rb,
lib/dtc_rake/util.rb,
lib/dtc_rake/tasks.rb,
lib/dtc_rake/config.rb,
lib/dtc_rake/product.rb,
lib/dtc_rake/version.rb

Defined Under Namespace

Modules: Tasks, UI Classes: Config, Product

Constant Summary collapse

VERSION =
"1.2.1"

Class Method Summary collapse

Methods included from UI

announce, colorize?, error, info, success, warning

Class Method Details

.check_bundler!Object

Checks Bundler version. Bundler 1.16 is not supported by Warbler 1.4. But since uuCloudg01C3, uuCloudg01OperationRegistry and uuLogStoreg01 are implemented according tu uuApps 2.1 standard, they need to depend on Warbler 1.4. Therefore Bundler version needs to be lower than 1.16.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/dtc_rake/util.rb', line 40

def check_bundler!
  string = `bundler -v`
  if string =~ /\d+\.\d+.\d+/
    version = string.match(/\d+\.\d+.\d+/).to_s
    version_parts = version.split('.')
    if version_parts[1].to_i > 15
      error("Unable to build war files with bundler #{version}.\nBundler version must be lower than 1.16.x.")
    end
  else
    warning(
      "Unknown version of bundler.\n" \
      "Your bundler is not working correctly or dtc_rake isn't able to check version on your platform.\n" \
      "`bundler -v` returned: #{string}"
    )
  end
end

.check_jruby!Object

Checks if JRuby is being used. This check is important when building .war files - gems with native extensions (like json, bson) must be added to the output .war file for Java platform. Otherwise certain gems (e.g. uu_os_persistence) cannot be loaded when deployed on servlet container (Tomcat).



28
29
30
# File 'lib/dtc_rake/util.rb', line 28

def check_jruby!
  error(".war files must be built using JRuby!") unless RUBY_PLATFORM == "java"
end

.configure {|config| ... } ⇒ Object

Yields:

  • (config)


5
6
7
8
9
# File 'lib/dtc_rake/config.rb', line 5

def configure(&block)
  config = Config.instance
  yield config
  config.validate!
end

.mv_to_output_dir(src_dir, src_file) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/dtc_rake/util.rb', line 12

def mv_to_output_dir(src_dir, src_file)
  output_dir = DtcRake::Config.instance.output_dir
  output_dir_name = File.basename(output_dir) # get just the last path element (e.g. "target")
  FileUtils.mkpath output_dir
  src_file_path = File.join(src_dir, output_dir_name, src_file)
  dest_file = File.join(output_dir, src_file)
  FileUtils.mv src_file_path, dest_file
  success "#{dest_file} created"
end

.upload_pack(attrs) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/dtc_rake/util.rb', line 58

def upload_pack(attrs)
  file = attrs[:file]
  artifact_uri = attrs[:appbox_uri] || DtcRake::Product.instance.appbox_uri
  attachment_code = attrs[:attachment_code]
  credentials = attrs[:credentials]

  abort "Specify login credentials" unless credentials
  UU::OS::Security::Session.(credentials)

  attch_uri = UU::OS::UESURIBuilder.parse_uesuri(artifact_uri).set_object_code(attachment_code).to_uesuri

  if UU::OS::Search.exists(attch_uri)
    File.open(file, "rb") do |f|
      UU::OS::Attachment.check_in(attch_uri, data: UU::OS::REST::BinaryValue.new(f))
    end
  else
    File.open(file, "rb") do |f|
      attch_uri = UU::OS::Attachment.create(artifact_uri, code: attachment_code,
          data: UU::OS::REST::BinaryValue.new(f)
      )
    end
  end

  attch_uri
end