class TuyaCIDSL::TuyaDSL

Attributes

strategy_auto[RW]

Public Class Methods

new() click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 11
def initialize
        @default_root_file = 'CIFile'
        @default_folder = 'CIMonitors'
        @files = []
        @monitors = {}
        @strategy_auto = {}
        load_files
end

Public Instance Methods

insert_strategy(strategy) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 32
def insert_strategy(strategy)

        unless strategy.class == Hash
                return
        end

        strategy.keys.each do |item|
                unless item.is_a?(Symbol)
                        strategy[item.to_sym] = strategy[item]
                end
        end
        @strategy_auto = strategy
end
load_monitors() click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 46
def load_monitors
        @files.each do |item|
                add_monitor item
        end
        # puts @monitors
end
load_monitors_git(git) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 20
def load_monitors_git(git)
        git_downloader = TYCiCore::GitDownloader.new git
        git_downloader.download '.dsl_common'
        load_monitors_path git_downloader.folder_path
end
load_monitors_path(path) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 26
def load_monitors_path(path)
        if File.exist? path
                @files += Dir["#{path}/**/*"].reject{|o|File.directory?(o)}
        end
end
trigger_module_begin(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 53
def trigger_module_begin(options)
        trigger 'before_module_build', options
end
trigger_module_end(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 57
def trigger_module_end(options)
        trigger 'after_module_build', options
end
trigger_project_begin(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 69
def trigger_project_begin(options)
        trigger 'before_project_build', options
end
trigger_project_end(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 77
def trigger_project_end(options)
        trigger 'after_project_build', options
end
trigger_project_pod_update_end(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 73
def trigger_project_pod_update_end(options)
        trigger 'building_project_pod_update_end', options
end
trigger_sdk_begin(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 61
def trigger_sdk_begin(options)
        trigger 'before_sdk_build', options
end
trigger_sdk_end(options) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 65
def trigger_sdk_end(options)
        trigger 'after_sdk_build', options
end

Private Instance Methods

add_monitor(file) click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 101
def add_monitor(file)
        analyzer = TuyaCIDSL::Analyzer.new file
        monitor = analyzer.p_monitor
        @monitors[file] = monitor
end
load_files() click to toggle source
# File lib/tuya/ci/DSL/tuya_dsl.rb, line 94
def load_files
        @files << "./#{@default_root_file}" if File.exist? "./#{@default_root_file}"
        if File.exist? "./#{@default_folder}/"
                @files += Dir["./#{@default_folder}/**/*"].reject{|o|File.directory?(o)}
        end
end
trigger(action, options) click to toggle source

trigger 执行策略

# File lib/tuya/ci/DSL/tuya_dsl.rb, line 85
def trigger(action, options)
        # puts "trigger action: #{action} options: #{options}"
        @monitors.each_key do |key|
                item = @monitors[key]
                item.exe_action action, options, key
        end

end