primitive_array 0.0.1
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README +0 -0
- data/Rakefile +2 -0
- data/lib/primitive_array.rb +19 -0
- data/lib/primitive_array/version.rb +3 -0
- data/primitive_array.gemspec +24 -0
- data/spec/primitive_array_spec.rb +27 -0
- metadata +85 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Primitive
|
2
|
+
class Array
|
3
|
+
attr_reader :length
|
4
|
+
def initialize(length)
|
5
|
+
@length = length
|
6
|
+
@storage = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def []=(index, element)
|
10
|
+
raise ArgumentError, 'Attempted to access an out-of-bounds element' unless index < @length
|
11
|
+
@storage[index] = element
|
12
|
+
end
|
13
|
+
|
14
|
+
def [](index)
|
15
|
+
raise ArgumentError, 'Attempted to access an out-of-bounds element' unless index < @length
|
16
|
+
@storage[index]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'primitive_array/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'primitive_array'
|
7
|
+
s.version = PrimitiveArray::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ['clay shentrup']
|
10
|
+
s.email = ['clay@brokenladder.com']
|
11
|
+
s.homepage = 'http://www.electology.org/'
|
12
|
+
s.summary = 'Java array primitive'
|
13
|
+
s.description = 'Approximates a Java primitive array'
|
14
|
+
|
15
|
+
s.add_development_dependency 'rr'
|
16
|
+
s.add_development_dependency 'minitest'
|
17
|
+
|
18
|
+
s.rubyforge_project = 'primitive_array'
|
19
|
+
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
+
s.require_paths = ['lib']
|
24
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'primitive_array.rb')
|
3
|
+
|
4
|
+
describe Primitive::Array do
|
5
|
+
before do
|
6
|
+
@primitive_array = Primitive::Array.new(10)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'must have the specified length' do
|
10
|
+
@primitive_array.length.must_equal 10
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'accessing values by index' do
|
14
|
+
it 'must allow getting and setting within a valid range' do
|
15
|
+
@primitive_array[0] = 42
|
16
|
+
@primitive_array[0].must_equal 42
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'must raise an error when getting an out-of-bounds value' do
|
20
|
+
lambda {@primitive_array[10]}.must_raise ArgumentError
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'must raise an error when setting an out-of-bounds value' do
|
24
|
+
lambda {@primitive_array[10] = 42}.must_raise ArgumentError
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: primitive_array
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- clay shentrup
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-04-13 00:00:00 -07:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rr
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0"
|
25
|
+
type: :development
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id002
|
38
|
+
description: Approximates a Java primitive array
|
39
|
+
email:
|
40
|
+
- clay@brokenladder.com
|
41
|
+
executables: []
|
42
|
+
|
43
|
+
extensions: []
|
44
|
+
|
45
|
+
extra_rdoc_files: []
|
46
|
+
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- Gemfile
|
50
|
+
- README
|
51
|
+
- Rakefile
|
52
|
+
- lib/primitive_array.rb
|
53
|
+
- lib/primitive_array/version.rb
|
54
|
+
- primitive_array.gemspec
|
55
|
+
- spec/primitive_array_spec.rb
|
56
|
+
has_rdoc: true
|
57
|
+
homepage: http://www.electology.org/
|
58
|
+
licenses: []
|
59
|
+
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
|
63
|
+
require_paths:
|
64
|
+
- lib
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: "0"
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: "0"
|
77
|
+
requirements: []
|
78
|
+
|
79
|
+
rubyforge_project: primitive_array
|
80
|
+
rubygems_version: 1.5.0
|
81
|
+
signing_key:
|
82
|
+
specification_version: 3
|
83
|
+
summary: Java array primitive
|
84
|
+
test_files:
|
85
|
+
- spec/primitive_array_spec.rb
|