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
78 79 80 81 82 |
# File 'lib/qor_test/configuration.rb', line 78 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
74 75 76 |
# File 'lib/qor_test/configuration.rb', line 74 def self.combined_sources(={}) sources().map { |source| "source #{source.value.inspect}\n" }.uniq.join("") end |
.config_path ⇒ Object
21 22 23 |
# File 'lib/qor_test/configuration.rb', line 21 def self.config_path [ENV['QOR_TEST_CONFIG'], "config/qor/test.rb"].detect {|x| File.exist?(x.to_s)} end |
.configuration_digest(options = {}) ⇒ Object
29 30 31 32 |
# File 'lib/qor_test/configuration.rb', line 29 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
59 60 61 62 |
# File 'lib/qor_test/configuration.rb', line 59 def self.envs(={}) envs = root_from_config.deep_find('env').map(&:value) [:env] ? envs.select {|x| x == [:env]} : envs end |
.find_block(options = {}) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/qor_test/configuration.rb', line 46 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
25 26 27 |
# File 'lib/qor_test/configuration.rb', line 25 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
95 96 97 98 99 100 |
# File 'lib/qor_test/configuration.rb', line 95 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
84 85 86 87 88 89 90 91 92 93 |
# File 'lib/qor_test/configuration.rb', line 84 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
38 39 40 |
# File 'lib/qor_test/configuration.rb', line 38 def self.root_from_config @root_from_config ||= Qor::Test::Configuration.load(config_path, :force => true) end |
.root_from_gemfile ⇒ Object
42 43 44 |
# File 'lib/qor_test/configuration.rb', line 42 def self.root_from_gemfile @root_from_gemfile ||= Qor::Test::Configuration.load(gemfile_path, :force => true) end |
.ruby_versions(options) ⇒ Object
53 54 55 56 57 |
# File 'lib/qor_test/configuration.rb', line 53 def self.ruby_versions() [root_from_config, root_from_gemfile].map do |x| x.deep_find('ruby', &find_block()).map(&:value) end.flatten.compact end |
.sample_file ⇒ Object
34 35 36 |
# File 'lib/qor_test/configuration.rb', line 34 def self.sample_file File.("#{File.dirname(__FILE__)}/../../config/qor/test.rb") end |