rubyless 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,44 @@
1
+ require 'test_helper'
2
+
3
+ class SignatureHashTest < Test::Unit::TestCase
4
+ class SubString < String
5
+ end
6
+
7
+ context 'A SignatureHash' do
8
+ subject do
9
+ RubyLess::SignatureHash[
10
+ [1, 2] => 'one, two',
11
+ [:x, String, String] => 'x_string_string'
12
+ ]
13
+ end
14
+
15
+ should 'find values by hashing' do
16
+ assert_equal 'one, two', subject[[1,2]]
17
+ end
18
+
19
+ should 'return nil on invalid keys' do
20
+ assert_nil subject['hop']
21
+ end
22
+
23
+ should 'find exact match' do
24
+ assert_equal 'x_string_string', subject[[:x, String, String]]
25
+ end
26
+
27
+ should 'find subclass match' do
28
+ assert_equal 'x_string_string', subject[[:x, SubString, String]]
29
+ end
30
+
31
+ should 'find subclass match at any position' do
32
+ assert_equal 'x_string_string', subject[[:x, SubString, SubString]]
33
+ assert_equal 'x_string_string', subject[[:x, String, SubString]]
34
+ end
35
+
36
+ should 'cache key on subclass match' do
37
+ key = [:x, SubString, String]
38
+ assert !subject.keys.include?(key)
39
+ assert_equal 'x_string_string', subject[key]
40
+ assert subject.keys.include?(key)
41
+ end
42
+
43
+ end
44
+ end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'stringio'
2
2
  require 'test/unit'
3
- require File.dirname(__FILE__) + '/../lib/rubyless'
3
+ require 'rubyless'
4
4
  require File.dirname(__FILE__) + '/mock/dummy_class'
5
5
  require 'rubygems'
6
6
  require 'yamltest'
7
+ require 'rubygems'
8
+ require 'shoulda'
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 4
8
+ - 0
9
+ version: 0.4.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Gaspard Bucher
@@ -9,76 +14,100 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-11-08 00:00:00 +01:00
17
+ date: 2010-03-21 00:00:00 +01:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: ruby_parser
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 2
29
+ - 0
30
+ - 4
23
31
  version: 2.0.4
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: sexp_processor
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 3
43
+ - 0
44
+ - 1
33
45
  version: 3.0.1
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
- name: bones
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
49
+ name: shoulda
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
43
- version: 2.5.1
44
- version:
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ type: :development
59
+ version_requirements: *id003
45
60
  - !ruby/object:Gem::Dependency
46
61
  name: yamltest
47
- type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
62
+ prerelease: false
63
+ requirement: &id004 !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - ">="
52
66
  - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
69
+ - 5
70
+ - 3
53
71
  version: 0.5.3
54
- version:
55
- description: |-
56
- RubyLess is an interpreter for "safe ruby". The idea is to transform some "unsafe" ruby code into safe, type checked
57
- ruby, eventually rewriting some variables or methods.
72
+ type: :development
73
+ version_requirements: *id004
74
+ description: RubyLess is an interpreter for "safe ruby". The idea is to transform some "unsafe" ruby code into safe, type checked ruby, eventually rewriting some variables or methods.
58
75
  email: gaspard@teti.ch
59
76
  executables: []
60
77
 
61
78
  extensions: []
62
79
 
63
80
  extra_rdoc_files:
64
- - History.txt
65
- - README.txt
81
+ - README.rdoc
66
82
  files:
83
+ - .gitignore
67
84
  - History.txt
68
- - README.txt
85
+ - README.rdoc
69
86
  - Rakefile
70
- - rubyless.gemspec
71
- - lib/basic_types.rb
72
- - lib/processor.rb
87
+ - lib/ruby_less.rb
88
+ - lib/ruby_less/basic_types.rb
89
+ - lib/ruby_less/error.rb
90
+ - lib/ruby_less/info.rb
91
+ - lib/ruby_less/no_method_error.rb
92
+ - lib/ruby_less/processor.rb
93
+ - lib/ruby_less/safe_class.rb
94
+ - lib/ruby_less/signature_hash.rb
95
+ - lib/ruby_less/syntax_error.rb
96
+ - lib/ruby_less/typed_string.rb
73
97
  - lib/rubyless.rb
74
- - lib/safe_class.rb
75
- - lib/typed_string.rb
76
- - test/mock/active_record_mock.rb
77
- - test/mock/dummy_class.rb
98
+ - rails/init.rb
99
+ - rubyless.gemspec
78
100
  - test/RubyLess/active_record.yml
79
101
  - test/RubyLess/basic.yml
80
102
  - test/RubyLess/errors.yml
103
+ - test/RubyLess/string.yml
81
104
  - test/RubyLess_test.rb
105
+ - test/mock/active_record_mock.rb
106
+ - test/mock/dummy_class.rb
107
+ - test/mock/dummy_module.rb
108
+ - test/mock/property_column.rb
109
+ - test/safe_class_test.rb
110
+ - test/signature_hash_test.rb
82
111
  - test/test_helper.rb
83
112
  has_rdoc: true
84
113
  homepage: http://zenadmin.org/546
@@ -86,28 +115,36 @@ licenses: []
86
115
 
87
116
  post_install_message:
88
117
  rdoc_options:
89
- - --main
90
- - README.txt
118
+ - --charset=UTF-8
91
119
  require_paths:
92
120
  - lib
93
121
  required_ruby_version: !ruby/object:Gem::Requirement
94
122
  requirements:
95
123
  - - ">="
96
124
  - !ruby/object:Gem::Version
125
+ segments:
126
+ - 0
97
127
  version: "0"
98
- version:
99
128
  required_rubygems_version: !ruby/object:Gem::Requirement
100
129
  requirements:
101
130
  - - ">="
102
131
  - !ruby/object:Gem::Version
132
+ segments:
133
+ - 0
103
134
  version: "0"
104
- version:
105
135
  requirements: []
106
136
 
107
- rubyforge_project: rubyless
108
- rubygems_version: 1.3.5
137
+ rubyforge_project:
138
+ rubygems_version: 1.3.6
109
139
  signing_key:
110
140
  specification_version: 3
111
141
  summary: RubyLess is an interpreter for "safe ruby"
112
142
  test_files:
143
+ - test/mock/active_record_mock.rb
144
+ - test/mock/dummy_class.rb
145
+ - test/mock/dummy_module.rb
146
+ - test/mock/property_column.rb
147
+ - test/RubyLess_test.rb
148
+ - test/safe_class_test.rb
149
+ - test/signature_hash_test.rb
113
150
  - test/test_helper.rb
data/lib/basic_types.rb DELETED
@@ -1,15 +0,0 @@
1
- require 'safe_class'
2
-
3
-
4
- class Boolean
5
- end
6
-
7
- class Number
8
- end
9
-
10
-
11
- RubyLess::SafeClass.safe_method_for( Number,
12
- [:==, Number] => Boolean, [:< , Number] => Boolean, [:> , Number] => Boolean, [:<=, Number] => Boolean, [:>=, Number] => Boolean,
13
- [:- , Number] => Number, [:+ , Number] => Number, [:* , Number] => Number, [:/ , Number] => Number,
14
- [:% , Number] => Number, [:"-@"] => Number )
15
-