module Ryb::DomainSpecificLanguage::Configurations
Public Instance Methods
architecture(name, opts={}, &block)
click to toggle source
# File lib/ryb/dsl.rb, line 31 def architecture(name, opts={}, &block) # TODO(mtwilliams): Refactor this. @spec.architectures ||= [] existing_arch = find_by_canonical_name(@spec.architectures, name) arch = existing_arch || Ryb::Architecture.new existing_pretty_name = arch.name.pretty if existing_arch arch.name ||= Ryb::Name.new(name, :pretty => existing_pretty_name || opts[:pretty]) @spec.architectures << arch unless existing_arch DomainSpecificLanguage.for(arch).instance_eval(&block) end
configuration(name, opts={}, &block)
click to toggle source
# File lib/ryb/dsl.rb, line 4 def configuration(name, opts={}, &block) @spec.configurations ||= [] existing_config = find_by_canonical_name(@spec.configurations, name) config = existing_config || Ryb::Configuration.new existing_pretty_name = config.name.pretty if existing_config config.name = Ryb::Name.new(name, :pretty => existing_pretty_name || opts[:pretty]) @spec.configurations << config unless existing_config DomainSpecificLanguage.for(config).instance_eval(&block) end
platform(name, opts={}, &block)
click to toggle source
# File lib/ryb/dsl.rb, line 17 def platform(name, opts={}, &block) # TODO(mtwilliams): Refactor this. @spec.platforms ||= [] existing_platform = find_by_canonical_name(@spec.platforms, name) platform = existing_platform || Ryb::Platform.new existing_pretty_name = platform.name.pretty if existing_platform platform.name ||= Ryb::Name.new(name, :pretty => existing_pretty_name || opts[:pretty]) @spec.platforms << platform unless existing_platform DomainSpecificLanguage.for(platform).instance_eval(&block) end
Private Instance Methods
find_by_canonical_name(ary_of_named_things, name)
click to toggle source
# File lib/ryb/dsl.rb, line 46 def find_by_canonical_name(ary_of_named_things, name) (ary_of_named_things.select do |existing_thing| existing_thing.name.canonicalize == name.to_s end).first end