factor out describable behavior and describable_proxy since they are separate concerns
This commit is contained in:
parent
e53395fb82
commit
f83a008e9e
|
@ -1,3 +1,13 @@
|
|||
require 'jenkins/model/descriptor'
|
||||
require 'jenkins/model/describable'
|
||||
require 'jenkins/model/describable_proxy'
|
||||
require 'jenkins/model/environment'
|
||||
require 'jenkins/model/environment_proxy'
|
||||
require 'jenkins/model/action'
|
||||
require 'jenkins/model/root_action'
|
||||
require 'jenkins/model/build'
|
||||
require 'jenkins/model/listener'
|
||||
|
||||
|
||||
module Jenkins
|
||||
module Model
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
require 'jenkins/model'
|
||||
|
||||
module Jenkins
|
||||
module Model
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
module Jenkins
|
||||
module Model
|
||||
# mix-in on top of the subtypes of the Describable Java class
|
||||
# to add standard behaviour as a proxy to Ruby object
|
||||
module DescribableProxy
|
||||
include Jenkins::Plugin::Proxy
|
||||
implemented do |cls|
|
||||
cls.class_eval do
|
||||
include Java.jenkins.ruby.Get
|
||||
end
|
||||
end
|
||||
def getDescriptor
|
||||
@plugin.descriptors[@object.class]
|
||||
end
|
||||
|
||||
def get(name)
|
||||
@object.respond_to?(name) ? @object.send(name) : nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,9 +1,8 @@
|
|||
require 'jenkins/model/action'
|
||||
|
||||
module Jenkins
|
||||
module Model
|
||||
class RootAction
|
||||
include Action
|
||||
include Jenkins::Model::Action
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -169,13 +169,4 @@ module Jenkins
|
|||
clear
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
require 'jenkins/model/describable'
|
||||
["action", "builder", "publisher", "root_action"].each do |proxy|
|
||||
require "jenkins/plugin/proxies/#{proxy}"
|
||||
end
|
||||
|
||||
["cli/command"].each do |proxy|
|
||||
require "jenkins/#{proxy}_proxy"
|
||||
end
|
||||
end
|
|
@ -2,7 +2,8 @@ module Jenkins
|
|||
class Plugin
|
||||
class Proxies
|
||||
module BuildStep
|
||||
include Describable
|
||||
include Jenkins::Model::DescribableProxy
|
||||
|
||||
def prebuild(build, listener)
|
||||
boolean_result(listener) do
|
||||
@object.prebuild(import(build), import(listener))
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
module Jenkins
|
||||
class Plugin
|
||||
class Proxies
|
||||
# mix-in on top of the subtypes of the Describable Java class
|
||||
# to add standard behaviour as a proxy to Ruby object
|
||||
module Describable
|
||||
include Jenkins::Plugin::Proxy
|
||||
implemented do |cls|
|
||||
cls.class_eval do
|
||||
include Java.jenkins.ruby.Get
|
||||
end
|
||||
end
|
||||
def getDescriptor
|
||||
@plugin.descriptors[@object.class]
|
||||
end
|
||||
|
||||
def get(name)
|
||||
@object.respond_to?(name) ? @object.send(name) : nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -4,21 +4,21 @@ require 'jenkins/plugin/wrapper'
|
|||
require 'jenkins/plugin/specification'
|
||||
require 'jenkins/plugin/runtime/version'
|
||||
require 'jenkins/plugin/proxy'
|
||||
require 'jenkins/plugin/proxies/describable'
|
||||
require 'jenkins/plugin/proxies'
|
||||
require 'jenkins/cli/command'
|
||||
require 'jenkins/model'
|
||||
require 'jenkins/model/environment'
|
||||
require 'jenkins/model/environment_proxy'
|
||||
require 'jenkins/model/action'
|
||||
require 'jenkins/model/root_action'
|
||||
require 'jenkins/model/build'
|
||||
require 'jenkins/model/descriptor'
|
||||
require 'jenkins/model/listener'
|
||||
require 'jenkins/tasks'
|
||||
# require 'jenkins/model/environment'
|
||||
# require 'jenkins/model/environment_proxy'
|
||||
# require 'jenkins/model/action'
|
||||
# require 'jenkins/model/root_action'
|
||||
# require 'jenkins/model/build'
|
||||
# require 'jenkins/model/descriptor'
|
||||
# require 'jenkins/model/listener'
|
||||
require 'jenkins/slaves/cloud'
|
||||
require 'jenkins/tasks/builder'
|
||||
require 'jenkins/tasks/build_wrapper'
|
||||
require 'jenkins/tasks/build_wrapper_proxy'
|
||||
# require 'jenkins/tasks/builder'
|
||||
# require 'jenkins/tasks/build_wrapper'
|
||||
# require 'jenkins/tasks/build_wrapper_proxy'
|
||||
require 'jenkins/launcher'
|
||||
require 'jenkins/listeners/run_listener'
|
||||
require 'jenkins/listeners/run_listener_proxy'
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
module Jenkins
|
||||
module Tasks
|
||||
require 'jenkins/tasks/build_step'
|
||||
require 'jenkins/tasks/build_step_proxy'
|
||||
require 'jenkins/tasks/builder'
|
||||
require 'jenkins/tasks/builder_proxy'
|
||||
require 'jenkins/tasks/build_wrapper'
|
||||
require 'jenkins/tasks/build_wrapper_proxy'
|
||||
end
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
module Jenkins
|
||||
module Tasks
|
||||
module BuildStepProxy
|
||||
include Jenkins::Model::DescribableProxy
|
||||
|
||||
def prebuild(build, listener)
|
||||
boolean_result(listener) do
|
||||
@object.prebuild(import(build), import(listener))
|
||||
end
|
||||
end
|
||||
|
||||
def perform(build, launcher, listener)
|
||||
boolean_result(listener) do
|
||||
@object.perform(import(build), import(launcher), import(listener))
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def boolean_result(listener, &block)
|
||||
begin
|
||||
yield
|
||||
true
|
||||
rescue Exception => e
|
||||
msg = "#{e.message} (#{e.class})\n" << (e.backtrace || []).join("\n")
|
||||
listener.error(msg + "\n")
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue