class StructCore::SpecFileDSL30X

Attributes

project_base_dir[RW]
spec_file[RW]

Public Class Methods

new() click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 8
def initialize
        @spec_file = nil
        @project_base_dir = nil
        @current_scope = nil
end

Public Instance Methods

__spec_configuration(name = nil, &block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 21
def __spec_configuration(name = nil, &block)
        return unless name.is_a?(String) && !name.empty?
        dsl = StructCore::SpecConfigurationDSL30X.new
        dsl.configuration = StructCore::Specfile::Configuration.new(name, [], {}, nil, nil)
        unless block.nil?
                @current_scope = dsl
                block.call
                @current_scope = nil
        end

        dsl.configuration.profiles = %w(general:release ios:release)
        dsl.configuration.profiles = %w(general:debug ios:debug) if dsl.configuration.type == 'debug'

        @spec_file.configurations << dsl.configuration
end
__spec_scheme(name = nil, &block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 66
def __spec_scheme(name = nil, &block)
        return unless name.is_a?(String) && !name.empty? && !block.nil?

        dsl = StructCore::SpecSchemeDSL30X.new
        dsl.scheme = StructCore::Specfile::Scheme.new name
        dsl.project = @spec_file
        @current_scope = dsl
        block.call
        @current_scope = nil

        @spec_file.schemes << dsl.scheme
end
__spec_target(name, &block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 37
def __spec_target(name, &block)
        return unless name.is_a?(String) && !name.empty? && !block.nil?
        dsl = StructCore::SpecTargetDSL30X.new
        dsl.project_configurations = @spec_file.configurations
        dsl.project_base_dir = @project_base_dir
        dsl.project = @spec_file
        dsl.target = StructCore::Specfile::Target.new(name, nil, [], [], [], [], [], [], [], [])
        @current_scope = dsl
        block.call
        @current_scope = nil

        @spec_file.targets << dsl.target
end
__spec_variant(name = nil, abstract = false, &block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 51
def __spec_variant(name = nil, abstract = false, &block)
        return unless name.is_a?(String) && !name.empty? && [true, false].include?(abstract) && !block.nil?
        dsl = StructCore::SpecVariantDSL30X.new
        dsl.project_configurations = @spec_file.configurations
        dsl.project_base_dir = @project_base_dir
        dsl.project_target_names = @spec_file.targets.map(&:name)
        dsl.project = @spec_file
        dsl.variant = StructCore::Specfile::Variant.new(name, [], abstract)
        @current_scope = dsl
        block.call
        @current_scope = nil

        @spec_file.variants << dsl.variant
end
method_missing(method, *args, &block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 91
def method_missing(method, *args, &block)
        if @current_scope.nil? && method == :configuration
                send('__spec_configuration', *args, &block)
        elsif @current_scope.nil? && method == :target
                send('__spec_target', *args, &block)
        elsif @current_scope.nil? && method == :variant
                send('__spec_variant', *args, &block)
        elsif @current_scope.nil? && method == :scheme
                send('__spec_scheme', *args, &block)
        else
                @current_scope.send(method, *args, &block)
        end
end
post_generate(&block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 83
def post_generate(&block)
        @spec_file.post_generate_script = StructCore::Specfile::HookBlockScript.new block
end
pre_generate(&block) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 79
def pre_generate(&block)
        @spec_file.pre_generate_script = StructCore::Specfile::HookBlockScript.new block
end
respond_to_missing?(_, _) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 87
def respond_to_missing?(_, _)
        true
end
supports_version(version) click to toggle source
# File lib/spec/builder/spec_builder_30X/spec_file_dsl_30X.rb, line 14
def supports_version(version)
        version.major == 3
end