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 ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in primitive_array.gemspec
4
+ gemspec
data/README ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -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,3 @@
1
+ module PrimitiveArray
2
+ VERSION = "0.0.1"
3
+ 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