anise 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/MANIFEST CHANGED
@@ -1,18 +1,17 @@
1
- MANIFEST
1
+ lib
2
+ meta
2
3
  test
3
- test/test_attribute.rb
4
- test/test_annotator.rb
5
- test/suite.rb
6
- test/test_annotator_toplevel.rb
7
- test/test_annotations.rb
8
- test/test_attribute_toplevel.rb
9
- test/test_anise.rb
10
- test/test_anise_toplevel.rb
11
- test/test_annotations_toplevel.rb
4
+ MANIFEST
12
5
  RELEASE
13
6
  README
14
7
  HISTORY
15
- meta
8
+ VERSION
9
+ COPYING
10
+ lib/anise
11
+ lib/anise.rb
12
+ lib/anise/attribute.rb
13
+ lib/anise/annotation.rb
14
+ lib/anise/annotator.rb
16
15
  meta/require
17
16
  meta/created
18
17
  meta/homepage
@@ -21,11 +20,12 @@ meta/abstract
21
20
  meta/license
22
21
  meta/authors
23
22
  meta/contact
24
- lib
25
- lib/anise
26
- lib/anise/attribute.rb
27
- lib/anise/annotation.rb
28
- lib/anise/annotator.rb
29
- lib/anise.rb
30
- VERSION
31
- COPYING
23
+ test/test_attribute.rb
24
+ test/test_annotator.rb
25
+ test/suite.rb
26
+ test/test_annotator_toplevel.rb
27
+ test/test_annotations.rb
28
+ test/test_attribute_toplevel.rb
29
+ test/test_anise.rb
30
+ test/test_anise_toplevel.rb
31
+ test/test_annotations_toplevel.rb
data/RELEASE CHANGED
@@ -1,6 +1,4 @@
1
- = Anise 0.2.0 hits the streets.
2
-
3
- This is the first public release of Anise.
1
+ = Anise 0.2.2 hits the streets.
4
2
 
5
3
  Anise is a spin off the the Facets annotations.rb library.
6
4
  It includes the Annotations functionality, and adds
@@ -9,8 +7,7 @@ annotations on the fly.
9
7
 
10
8
  ### 0.2.0 // 2008-09-23
11
9
 
12
- 2 Major Enhancments
10
+ 1 Major Enhancments
13
11
 
14
- * All parts of lib are now modules and not core extensions.
15
- * Names of modules are more consistant.
12
+ * #ann! will auto-prime any referenced annotation if it does not yet exist.
16
13
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- anise 0.2.1 beta (2008-09-27)
1
+ anise 0.2.2 beta (2009-02-11)
@@ -37,7 +37,7 @@ module Anise
37
37
  # instance_variables.each do |iv|
38
38
  # if validator = self.class.ann(iv)[:valid]
39
39
  # value = instance_variable_get(iv)
40
- # unless validator.call(vale)
40
+ # unless validator.call(value)
41
41
  # raise "Invalid value #{value} for #{iv}"
42
42
  # end
43
43
  # end
@@ -50,11 +50,11 @@ module Anise
50
50
  # class X
51
51
  # include Anise::Annotation
52
52
  #
53
- # ann self, :valid => lambda{ |x| x.is_a?(Integer) }
53
+ # ann self, :valid => lambda{ |x| x.is_a?(Enumerable) }
54
54
  # end
55
55
  #
56
56
  # Altough annotations are arbitrary they are tied to the class or
57
- # module they are defined within.
57
+ # module they are defined against.
58
58
  #
59
59
  #--
60
60
  # TODO: By using a global variable rather the definining a class
@@ -111,7 +111,7 @@ module Anise
111
111
 
112
112
  # Set or read annotations.
113
113
  #
114
- def ann( ref, keys_or_class=nil, keys=nil )
114
+ def ann(ref, keys_or_class=nil, keys=nil)
115
115
  return annotation(ref) unless keys_or_class or keys
116
116
 
117
117
  if Class === keys_or_class
@@ -136,9 +136,11 @@ module Anise
136
136
  # it first must be duplicated, otherwise the change may effect annotations
137
137
  # in the class or module's ancestors.
138
138
  #
139
- def ann!( ref, keys_or_class=nil, keys=nil )
139
+ def ann!(ref, keys_or_class=nil, keys=nil)
140
140
  #return annotation(ref) unless keys_or_class or keys
141
- return annotations[ref] unless keys_or_class or keys
141
+ unless keys_or_class or keys
142
+ return annotations[ref] ||= {}
143
+ end
142
144
 
143
145
  if Class === keys_or_class
144
146
  keys ||= {}
@@ -154,7 +156,12 @@ module Anise
154
156
  annotations[ref].update(keys)
155
157
  else
156
158
  key = keys.to_sym
157
- annotations[ref][key] = annotation(ref)[key].dup
159
+ annotations[ref] ||= {}
160
+ begin
161
+ annotations[ref][key] = annotation(ref)[key].dup
162
+ rescue TypeError
163
+ annotations[ref][key] = annotation(ref)[key]
164
+ end
158
165
  end
159
166
  end
160
167
 
@@ -163,4 +170,4 @@ module Anise
163
170
  end
164
171
 
165
172
  # 2006-11-07 trans Created this ultra-concise version of annotations.
166
- # Copyright (c) 2005, 2008 TigerOps
173
+ # Copyright (c) 2005, 2008 TigerOps
@@ -3,8 +3,8 @@ module Anise
3
3
 
4
4
  # = Annotator
5
5
  #
6
- # Annotator allows for the creation of dynamic method
7
- # annotations which attach to the next method defined.
6
+ # Annotator allows for the creation of dynamic <i>method
7
+ # annotations</i> which attach to the next method defined.
8
8
  #
9
9
  # require 'anise/annotator'
10
10
  #
@@ -22,9 +22,16 @@ module Anise
22
22
  #
23
23
  # X.ann(:see, :doc) #=> "See what I mean?"
24
24
  #
25
- #--
26
- # TODO: Thread safety of @pending_annotations.
27
- #++
25
+ # This idiom of annotator before definition was popularized by
26
+ # Rake's desc/task pair. Annotator makes it very easy to add
27
+ # similar capabilites to any program.
28
+ #
29
+ # The library uses the #method_added callback, so be sure to
30
+ # respect good practices of calling +super+ if you need to override
31
+ # this method while using Annotator.
32
+ #
33
+ # TODO: Ensure thread safety of the internal <code>@pending_annotations</code> variable.
34
+ #
28
35
  module Annotator
29
36
 
30
37
  def self.append_features(base)
@@ -8,8 +8,8 @@ module Anise
8
8
  # This framework modifies the major attr_* methods to allow easy
9
9
  # addition of annotations. It modifies the built in attribute methods
10
10
  # (attr, attr_reader, attr_writer and attr_accessor), to allow
11
- # annotations to added to them directly rather than requireing a
12
- # separate #ann statement.
11
+ # annotations to be added to them directly rather than requiring
12
+ # a separate #ann statement.
13
13
  #
14
14
  # require 'anise/attribute'
15
15
  #
@@ -22,7 +22,7 @@ module Anise
22
22
  # See annotation.rb for more information.
23
23
  #
24
24
  # NOTE: This library was designed to be backward compatible with
25
- # the standard versions of the same methods.
25
+ # the standard versions of the same methods.
26
26
  #
27
27
  module Attribute
28
28
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - tigerops-community@rubyforge.org
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2008-10-31 00:00:00 -04:00
13
+ date: 2009-02-11 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency