Hey Alex,
Thanks, that is what I needed. I found a bunch more self inflicted
problems that I cleaned up and everything seems to be working now. Just
need to write up some docs on how to use it, package the gem, and it is
ready to resolve dependencies for all.
https://github.com/mguymon/lock_jar
thanks,
Michael
On 04/13/2012 12:40 PM, Alex Boisvert wrote:
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