symbol_lookup 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/ext/symbol_lookup/SymbolLookup.c +48 -5
  2. metadata +17 -18
  3. checksums.yaml +0 -7
@@ -1,12 +1,40 @@
1
+ /*
2
+ * Copyright (c) 2013, Matthew Kerwin
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ *
8
+ * 1. Redistributions of source code must retain the above copyright notice, this
9
+ * list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
11
+ * this list of conditions and the following disclaimer in the documentation
12
+ * and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
1
26
  #include "ruby.h"
2
27
 
3
28
  /*
4
29
  * call-seq:
30
+ * Symbol.find str => Symbol or nil
5
31
  * Symbol[str] => Symbol or nil
6
32
  *
7
33
  * Returns an extant symbol, which is the .to_sym of +str+, or
8
34
  * nil if no such symbol exists.
9
35
  *
36
+ * Symbol.find('Object') #=> :Object
37
+ * Symbol.find('none such') #=> nil
10
38
  * Symbol['Object'] #=> :Object
11
39
  * Symbol['none such'] #=> nil
12
40
  */
@@ -23,14 +51,14 @@ sym_lookup(VALUE cls, VALUE str)
23
51
 
24
52
  /*
25
53
  * call-seq:
26
- * str.interned -> symbol
54
+ * str.interned? -> symbol
27
55
  *
28
56
  * Returns the <code>Symbol</code> corresponding to <i>str</i>, returning
29
57
  * nil if it did not previously exist. See <code>Symbol[str]</code>.
30
58
  *
31
59
  * x = :banana
32
- * "banana".interned #=> :banana
33
- * "mango".interned #=> nil
60
+ * "banana".interned? #=> :banana
61
+ * "mango".interned? #=> nil
34
62
  *
35
63
  */
36
64
 
@@ -44,6 +72,18 @@ str_interned(VALUE str)
44
72
  }
45
73
  return Qnil;
46
74
  }
75
+ VALUE
76
+ str_interned_dep(VALUE str)
77
+ {
78
+ rb_warn("String#interned is deprecated; use #interned? instead");
79
+ return str_interned(str);
80
+ }
81
+ VALUE
82
+ sym_interned_dep(VALUE sym)
83
+ {
84
+ rb_warn("Symbol#interned is deprecated; use #interned? instead");
85
+ return sym;
86
+ }
47
87
 
48
88
  /*
49
89
  * call-seq:
@@ -74,9 +114,12 @@ str_to_existing_sym(VALUE str)
74
114
 
75
115
  void Init_symbol_lookup() {
76
116
  rb_define_singleton_method(rb_cSymbol, "[]", sym_lookup, 1);
77
- rb_define_alias(rb_cSymbol, "interned", "intern");
117
+ rb_define_singleton_method(rb_cSymbol, "find", sym_lookup, 1);
118
+ rb_define_method(rb_cSymbol, "interned", sym_interned_dep, 0);
119
+ rb_define_alias(rb_cSymbol, "interned?", "intern");
78
120
  rb_define_alias(rb_cSymbol, "to_existing_sym", "to_sym");
79
121
 
80
- rb_define_method(rb_cString, "interned", str_interned, 0);
122
+ rb_define_method(rb_cString, "interned", str_interned_dep, 0);
123
+ rb_define_method(rb_cString, "interned?", str_interned, 0);
81
124
  rb_define_method(rb_cString, "to_existing_sym", str_to_existing_sym, 0);
82
125
  }
metadata CHANGED
@@ -1,22 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symbol_lookup
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Matthew Kerwin
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-03-12 00:00:00.000000000 Z
12
+ date: 2014-02-26 00:00:00.000000000 Z
12
13
  dependencies: []
13
- description: |
14
- A gemified version of the Symbol[str] method proposed in https://bugs.ruby-lang.org/issues/7854
15
-
16
- Version 1.1.0 defines:
17
- - Symbol[str] => Symbol or nil
18
- - String#interned => Symbol or nil
19
- - String#to_existing_sym => Symbol or exception
14
+ description: A gemified version of the Symbol.find(str) method
20
15
  email: matthew@kerwin.net.au
21
16
  executables: []
22
17
  extensions:
@@ -27,12 +22,11 @@ files:
27
22
  - ext/symbol_lookup/extconf.rb
28
23
  homepage: http://rubygems.org/gems/symbol_lookup
29
24
  licenses:
30
- - Simplified BSD License
31
- metadata: {}
25
+ - ISC
32
26
  post_install_message:
33
27
  rdoc_options:
34
28
  - --title
35
- - Symbol[]
29
+ - Symbol.find
36
30
  - --main
37
31
  - Symbol
38
32
  - --line-numbers
@@ -41,19 +35,24 @@ rdoc_options:
41
35
  require_paths:
42
36
  - lib
43
37
  required_ruby_version: !ruby/object:Gem::Requirement
38
+ none: false
44
39
  requirements:
45
- - - '>='
40
+ - - ! '>='
46
41
  - !ruby/object:Gem::Version
47
- version: 2.0.0
42
+ version: '2.0'
43
+ - - <
44
+ - !ruby/object:Gem::Version
45
+ version: '2.2'
48
46
  required_rubygems_version: !ruby/object:Gem::Requirement
47
+ none: false
49
48
  requirements:
50
- - - '>='
49
+ - - ! '>='
51
50
  - !ruby/object:Gem::Version
52
51
  version: '0'
53
52
  requirements: []
54
53
  rubyforge_project:
55
- rubygems_version: 2.0.0
54
+ rubygems_version: 1.8.23.2
56
55
  signing_key:
57
- specification_version: 4
58
- summary: Symbol[str]
56
+ specification_version: 3
57
+ summary: Symbol.find
59
58
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 8552cbf7c041894da45719e3a1251a4e274455d7
4
- data.tar.gz: d4d3dcea61bd3241be9e8cecbf396eecbc434be2
5
- SHA512:
6
- metadata.gz: 2a062b1bab8390e5656bb68f62cad16dad05b4f00d9dc8513674a83a396c3fa555f1a9dd150aaf2fe7002f6d97d0c7db65221805142d4cb1b7e94ae1c6cfd145
7
- data.tar.gz: 78ae46266ac6c34f1e8e229191a676b5c08a7bde9a62e34d0400f4f531d10c5b3952082104e1d375fb479eeaccd6880520c59d1154cab2f33624dd3c0596ff41