rubyless 0.3.5 → 0.4.0

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.
@@ -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
-