anise 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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