Hi Michael, Just make your lock_jar an instance methods instead of class method. The buildfile object (self) includes all instance methods from the Buildr module during bootstrapping.
alex module Buildr class << self # <--- Remove this attr_reader :global_lockjar_dsl def lock_jar( &blk ) @global_lockjar_dsl = LockJar::DSL.evaluate(&blk) end end On Fri, Apr 13, 2012 at 7:40 AM, Michael Guymon <michael.guy...@gmail.com>wrote: > Hello Buildrians, > > I am slowly working my on dependency resolution addon and am stuck on how > to tweak the buildr buildfile dsl. I want to add a lock_jar block to define > repositories and artifacts at a root level and per project. The root level > lock_jar definition will be merged into the lock_jar calls in the projects. > These lock_jar definitions will get resolved and locked into a file, > similar to how bundler works, when the task <project>:lock_jar:lock is run. > Then when compile is called on a project, the lock file is loaded to the > classpath. This is an example what I am trying to do with the buildfile: > > require 'lock_jar' > lock_jar do > repository = 'http://repo1.maven.org/maven2**' > > scope 'test' do > jar 'junit:junit:jar:4.10' > end > end > > define 'app' do > > def 'project1' do > lock_jar do > jar "org.apache.mina:mina-core:**jar:2.0.4" > end > end > > def 'project2' do > lock_jar do > pom 'pom.xml' > end > end > > end > > > The problem I have is setting the root 'lock_jar' method for the > buildfile. The non working version I have now: https://github.com/mguymon/ > **lock_jar/blob/master/lib/lock_**jar/buildr.rb<https://github.com/mguymon/lock_jar/blob/master/lib/lock_jar/buildr.rb>which > complains of a NoMethodError : undefined method `lock_jar' for > main:Object > > Any help is greatly appreciated. > > thanks, > Michael >