blockenspiel 0.3.0-java → 0.3.1-java

Sign up to get free protection for your applications and to get access to all the features.
data/History.rdoc CHANGED
@@ -1,3 +1,11 @@
1
+ === 0.3.1 / 2009-11-08
2
+
3
+ * Blockenspiel#invoke can now take its options hash as the second argument
4
+ (instead of the third) when using dynamic target generation, since the
5
+ second argument is otherwise unused in this case.
6
+ * Now defines Blockenspiel::VERSION, as a versionomy object if the
7
+ versionomy library is available, or as a version string if not.
8
+
1
9
  === 0.3.0 / 2009-11-04
2
10
 
3
11
  * dsl_attr_writer and dsl_attr_accessor convenience methods are available
data/Rakefile CHANGED
@@ -138,8 +138,6 @@ task :compile_java do
138
138
  end
139
139
  end
140
140
 
141
- task :package => :compile_java
142
-
143
141
 
144
142
  # Publish RDocs
145
143
  desc 'Publishes RDocs to RubyForge'
@@ -655,6 +655,10 @@ module Blockenspiel
655
655
  #
656
656
  # See the Blockenspiel::Builder class for more details on add_method.
657
657
  #
658
+ # When using dynamic target generation, you may pass the options hash as
659
+ # the second argument to invoke instead of the third, since you will not
660
+ # be passing a target object as the second argument.
661
+ #
658
662
  # (And yes, you guessed it: this API is a DSL block, and is itself
659
663
  # implemented using Blockenspiel.)
660
664
 
@@ -663,6 +667,18 @@ module Blockenspiel
663
667
  unless block_
664
668
  raise ::ArgumentError, "Block expected"
665
669
  end
670
+
671
+ # Perform dynamic target generation if requested
672
+ if builder_block_
673
+ # Support passing the opts hash as the second argument since we
674
+ # aren't passing a target as an argument.
675
+ opts_ = target_ || opts_
676
+ builder_ = ::Blockenspiel::Builder.new
677
+ invoke(builder_block_, builder_)
678
+ target_ = builder_._create_target
679
+ end
680
+
681
+ # Read options
666
682
  parameter_ = opts_[:parameter]
667
683
  parameterless_ = opts_[:parameterless]
668
684
 
@@ -674,14 +690,6 @@ module Blockenspiel
674
690
  return block_.call
675
691
  end
676
692
 
677
- # Perform dynamic target generation if requested
678
- if builder_block_
679
- opts_ = target_ || opts_
680
- builder_ = ::Blockenspiel::Builder.new
681
- invoke(builder_block_, builder_)
682
- target_ = builder_._create_target
683
- end
684
-
685
693
  # Handle parametered block case
686
694
  if parameter_ != false && block_.arity == 1 || parameterless_ == false
687
695
  if block_.arity != 1
@@ -37,6 +37,8 @@
37
37
  module Blockenspiel
38
38
 
39
39
  # Current gem version, as a frozen string.
40
- VERSION_STRING = '0.3.0'.freeze
40
+ VERSION_STRING = '0.3.1'.freeze
41
+
42
+ autoload(:VERSION, ::File.dirname(__FILE__)+'/versionomy.rb')
41
43
 
42
44
  end
@@ -0,0 +1,51 @@
1
+ # -----------------------------------------------------------------------------
2
+ #
3
+ # Blockenspiel version
4
+ #
5
+ # -----------------------------------------------------------------------------
6
+ # Copyright 2008-2009 Daniel Azuma
7
+ #
8
+ # All rights reserved.
9
+ #
10
+ # Redistribution and use in source and binary forms, with or without
11
+ # modification, are permitted provided that the following conditions are met:
12
+ #
13
+ # * Redistributions of source code must retain the above copyright notice,
14
+ # this list of conditions and the following disclaimer.
15
+ # * Redistributions in binary form must reproduce the above copyright notice,
16
+ # this list of conditions and the following disclaimer in the documentation
17
+ # and/or other materials provided with the distribution.
18
+ # * Neither the name of the copyright holder, nor the names of any other
19
+ # contributors to this software, may be used to endorse or promote products
20
+ # derived from this software without specific prior written permission.
21
+ #
22
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ # POSSIBILITY OF SUCH DAMAGE.
33
+ # -----------------------------------------------------------------------------
34
+ ;
35
+
36
+
37
+ begin
38
+ require 'versionomy'
39
+ rescue ::LoadError
40
+ end
41
+
42
+
43
+ module Blockenspiel
44
+
45
+ unless const_defined?(:VERSION)
46
+ # Current gem version, as a Versionomy::Value if the versionomy library
47
+ # is available, or as a frozen string if not.
48
+ VERSION = defined?(::Versionomy) ? ::Versionomy.parse(VERSION_STRING, :standard) : VERSION_STRING
49
+ end
50
+
51
+ end
Binary file
data/tests/tc_dynamic.rb CHANGED
@@ -197,6 +197,25 @@ end
197
197
  end
198
198
 
199
199
 
200
+ # Test passing options in.
201
+ #
202
+ # * Asserts that the "parameter" option is recognized
203
+
204
+ def test_options_recognized
205
+ block_ = ::Proc.new do
206
+ set_value(:a, 1)
207
+ end
208
+ hash_ = ::Hash.new
209
+ assert_raise(::Blockenspiel::BlockParameterError) do
210
+ ::Blockenspiel.invoke(block_, :parameterless => false) do
211
+ add_method(:set_value) do |key_, value_|
212
+ hash_[key_] = value_
213
+ end
214
+ end
215
+ end
216
+ end
217
+
218
+
200
219
  end
201
220
 
202
221
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blockenspiel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: java
6
6
  authors:
7
7
  - Daniel Azuma
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-04 00:00:00 -08:00
12
+ date: 2009-11-08 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -31,7 +31,7 @@ files:
31
31
  - lib/blockenspiel.rb
32
32
  - lib/blockenspiel/impl.rb
33
33
  - lib/blockenspiel/version.rb
34
- - lib/blockenspiel_unmixer.jar
34
+ - lib/blockenspiel/versionomy.rb
35
35
  - tests/tc_basic.rb
36
36
  - tests/tc_behaviors.rb
37
37
  - tests/tc_dsl_attrs.rb
@@ -43,6 +43,7 @@ files:
43
43
  - ImplementingDSLblocks.rdoc
44
44
  - README.rdoc
45
45
  - Rakefile
46
+ - lib/blockenspiel_unmixer.jar
46
47
  has_rdoc: true
47
48
  homepage: http://virtuoso.rubyforge.org/blockenspiel
48
49
  licenses: []