restricted_array 0.0.100

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.
Files changed (2) hide show
  1. data/lib/restrictedarray.rb +24 -0
  2. metadata +45 -0
@@ -0,0 +1,24 @@
1
+ class RestrictedArray
2
+ attr_reader :array, :item_class, :strict
3
+ def initialize(item, strict=true)
4
+ if not strict
5
+ def item_class=(clazz)
6
+ @item_class = clazz
7
+ end
8
+ end
9
+ @array = []
10
+ @array.push(item)
11
+ @item_class = item.class
12
+ end
13
+ def add(item)
14
+ if item.is_a? @item_class
15
+ @array.push(item)
16
+ else
17
+ raise "Item is not of type #{@item_class}"
18
+ end
19
+ end
20
+ def each(&block)
21
+ @array.each &block
22
+ end
23
+ end
24
+
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: restricted_array
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.100
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Solomon Wise
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-21 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: An array that is restricted to instances of one class. require 'restrictedarray'
15
+ email: slmnwise@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/restrictedarray.rb
21
+ homepage:
22
+ licenses: []
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 1.8.24
42
+ signing_key:
43
+ specification_version: 3
44
+ summary: Restricted Array
45
+ test_files: []