Class: Qor::Test::Configuration
- Inherits:
-
Object
- Object
- Qor::Test::Configuration
- Includes:
- Dsl
- Defined in:
- lib/qor_test/configuration.rb
Class Method Summary collapse
- .combined_gemspecs(options = {}) ⇒ Object
- .combined_sources(options = {}) ⇒ Object
- .config_path ⇒ Object
- .configuration_digest(options = {}) ⇒ Object
- .envs(options = {}) ⇒ Object
- .find_block(options = {}) ⇒ Object
- .gemfile_path ⇒ Object
- .gems_hash_from_gemfile(options = {}) ⇒ Object
- .gems_set_from_config(options = {}) ⇒ Object
- .root_from_config ⇒ Object
- .root_from_gemfile ⇒ Object
- .ruby_versions(options) ⇒ Object
- .sample_file ⇒ Object
Class Method Details
.combined_gemspecs(options = {}) ⇒ Object
76 77 78 79 80 |
# File 'lib/qor_test/configuration.rb', line 76 def self.combined_gemspecs(={}) gemspecs().map do |gemspec| "gemspec #{gemspec.value.nil? ? '' : gemspec.value.inspect.gsub(/^\{|\}$/,'')}\n" end.uniq.join("") end |
.combined_sources(options = {}) ⇒ Object
72 73 74 |
# File 'lib/qor_test/configuration.rb', line 72 def self.combined_sources(={}) sources().map { |source| "source #{source.value.inspect}\n" }.uniq.join("") end |
.config_path ⇒ Object
20 21 22 |
# File 'lib/qor_test/configuration.rb', line 20 def self.config_path "config/qor/test.rb" end |
.configuration_digest(options = {}) ⇒ Object
28 29 30 31 |
# File 'lib/qor_test/configuration.rb', line 28 def self.configuration_digest(={}) hexdigest = Digest::MD5.hexdigest(.inspect + File.read(config_path) + File.read(gemfile_path)) "qor_test-gemfiles-#{hexdigest}" end |
.envs(options = {}) ⇒ Object
57 58 59 60 |
# File 'lib/qor_test/configuration.rb', line 57 def self.envs(={}) envs = root_from_config.deep_find('env').map(&:value) [:env] ? envs.select {|x| x == [:env]} : envs end |
.find_block(options = {}) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/qor_test/configuration.rb', line 45 def self.find_block(={}) lambda do |node| parent = node.parent parent.root? || parent.is_node?(:env, [:env] || 'default') || parent.is_node?(:group, 'test') end end |
.gemfile_path ⇒ Object
24 25 26 |
# File 'lib/qor_test/configuration.rb', line 24 def self.gemfile_path [ENV['QOR_TEST_GEMFILE'], ENV['BUNDLE_GEMFILE'], 'Gemfile'].detect {|x| File.exist?(x.to_s)} end |
.gems_hash_from_gemfile(options = {}) ⇒ Object
93 94 95 96 97 98 |
# File 'lib/qor_test/configuration.rb', line 93 def self.gems_hash_from_gemfile(={}) gems = root_from_gemfile.deep_find(:gem, &find_block()).map do |node| Qor::Test::Gem.parse(node)[0] end gems_to_hash(gems) end |
.gems_set_from_config(options = {}) ⇒ Object
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/qor_test/configuration.rb', line 82 def self.gems_set_from_config(={}) all_gems = root_from_config.deep_find(:gem, &find_block()).inject({}) do |sum, node| sum[node.name] ||= [] sum[node.name].concat Qor::Test::Gem.parse(node) sum end.values gems_set = all_gems.length > 0 ? all_gems[0].product(*all_gems[1..-1]) : [] gems_set.map { |gems| gems_to_hash(gems) } end |
.root_from_config ⇒ Object
37 38 39 |
# File 'lib/qor_test/configuration.rb', line 37 def self.root_from_config @root_from_config ||= Qor::Test::Configuration.load(config_path, :force => true) end |
.root_from_gemfile ⇒ Object
41 42 43 |
# File 'lib/qor_test/configuration.rb', line 41 def self.root_from_gemfile @root_from_gemfile ||= Qor::Test::Configuration.load(gemfile_path, :force => true) end |
.ruby_versions(options) ⇒ Object
52 53 54 55 |
# File 'lib/qor_test/configuration.rb', line 52 def self.ruby_versions() ruby_versions = [root_from_config, root_from_gemfile].map {|x| x.deep_find('ruby', &find_block()) } ruby_versions.flatten.compact.map(&:value) end |
.sample_file ⇒ Object
33 34 35 |
# File 'lib/qor_test/configuration.rb', line 33 def self.sample_file File.("#{File.dirname(__FILE__)}/../../config/qor/test.rb") end |