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.1.0"

Class Method Summary collapse

Methods included from UI

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

Class Method Details

.check_bundler!Object



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/dtc_rake/util.rb', line 33

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.\nYour bundler is not work correctly or dtc_rake isn't able to check version on your platform.")
  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



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/dtc_rake/util.rb', line 47

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