example/gemfile.rb
#!/usr/bin/env ruby
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/qor_dsl'))
class Gemfile
include Qor::Dsl
default_configs [ENV['BUNDLE_GEMFILE'], File.join(File.dirname(__FILE__), 'Gemfile')]
node :source, :default_value => 'http://rubygems.org'
node :gem
node :group do
node :gem
end
node :example do
node :gem, :inherit => true
end
end
# Default Value
Gemfile.first(:source)
# Methods for query
Gemfile.first(:gem)
Gemfile.first(:gem, 'unicorn')
Gemfile.find(:gem)
Gemfile.find(:gem, 'rails')
Gemfile.find(:gem) do |n|
!!n.options[:git].nil?
end
Gemfile.first(:group, 'development').find(:gem)
Gemfile.deep_find(:gem)
Gemfile.deep_find(:gem) do |n|
# Find all gems used in development environment
parent = n.parent
parent.root? || parent.is_node?(:group, :development)
end
# Methods for node
node = Gemfile.find(:gem, 'devise')
node.name
node.value
node.options
node.data
node.config
node.parent
node.parents
node.root
node.root?