symbol-fstring 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/README.md +1 -1
- data/Rakefile +16 -6
- data/ext/fstring/extconf.rb +10 -6
- data/fstring.gemspec +1 -1
- data/lib/fstring/version.rb +1 -1
- metadata +6 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84da7fbac3758448bff24ada77389d5f5c168228d738043387caaae5b5bc4f23
|
4
|
+
data.tar.gz: 738a4e87dc0cac2b08605b526d624946fe3c96e9a10f9709044a7c68bc726bb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11fd378b7de0c51315726681333628665e2fdea6f2f60fc1c2f81bb22e70f2d53e727b53e4176526b4852801cfec6cdcd3919633f88e6a03e6915514fdb65116
|
7
|
+
data.tar.gz: 69a351f57ca1dc89c8b1223eae002edd1538bd250846f9864eb96a7b949739b30fecfedacf9824da79944e21a2ad7ddb8e3508205dd38b0e84f097aa753d7cea
|
data/.github/workflows/ci.yml
CHANGED
data/README.md
CHANGED
@@ -10,7 +10,7 @@ In Ruby many APIs tend to accept symbols, but regularly convert them to string i
|
|
10
10
|
The problem with this is that `Symbol#to_s` creates a new string every time it is invoked, and since it often happens
|
11
11
|
in hotspots, it causes a lot of work for the garbage collector, and cause many identical strings to be kept in memory.
|
12
12
|
|
13
|
-
There was [an attempt to make `Symbol#to_s` return
|
13
|
+
There was [an attempt to make `Symbol#to_s` return its internal fstring for Ruby 2.7](https://bugs.ruby-lang.org/issues/16150),
|
14
14
|
but unfortunately it got reverted, instead [Ruby 3.0 should have `Symbol#name`](https://github.com/ruby/ruby/commit/eb67c603ca7e435181684857e650b4633fda5bb6).
|
15
15
|
|
16
16
|
This gem backports the `Symbol#name` method for older rubies, and optionally allow to replace `Symbol#to_s` by `Symbol#name`.
|
data/Rakefile
CHANGED
@@ -9,10 +9,20 @@ end
|
|
9
9
|
|
10
10
|
task :default => [:build, :test]
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
if Symbol.method_defined?(:name)
|
13
|
+
task :compile do
|
14
|
+
# noop
|
15
|
+
end
|
16
|
+
|
17
|
+
task :clean do
|
18
|
+
# noop
|
19
|
+
end
|
20
|
+
else
|
21
|
+
require 'rake/extensiontask'
|
22
|
+
GEMSPEC = eval(File.read('fstring.gemspec'))
|
23
|
+
Rake::ExtensionTask.new('fstring', GEMSPEC) do |ext|
|
24
|
+
ext.ext_dir = 'ext/fstring'
|
25
|
+
ext.lib_dir = 'lib/fstring'
|
26
|
+
end
|
27
|
+
task build: :compile
|
17
28
|
end
|
18
|
-
task build: :compile
|
data/ext/fstring/extconf.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'mkmf'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
$CFLAGS << "-O0 -g -DDEBUG"
|
3
|
+
if Symbol.method_defined?(:name)
|
4
|
+
File.write("Makefile", dummy_makefile($srcdir).join(""))
|
6
5
|
else
|
7
|
-
$CFLAGS << "-
|
8
|
-
|
6
|
+
$CFLAGS << " -D_GNU_SOURCE -Werror -Wall "
|
7
|
+
if ENV.key?('DEBUG')
|
8
|
+
$CFLAGS << " -O0 -g -DDEBUG "
|
9
|
+
else
|
10
|
+
$CFLAGS << " -O3 "
|
11
|
+
end
|
9
12
|
|
10
|
-
create_makefile('fstring/fstring')
|
13
|
+
create_makefile('fstring/fstring')
|
14
|
+
end
|
data/fstring.gemspec
CHANGED
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.require_paths = ["lib"]
|
41
41
|
|
42
42
|
spec.add_development_dependency "bundler", "~> 2.0"
|
43
|
-
spec.add_development_dependency "rake", "~>
|
43
|
+
spec.add_development_dependency "rake", "~> 13"
|
44
44
|
spec.add_development_dependency "minitest", "~> 5.0"
|
45
45
|
spec.add_development_dependency "benchmark-ips", "~> 2.7"
|
46
46
|
spec.add_development_dependency "activesupport"
|
data/lib/fstring/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: symbol-fstring
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean Boussier
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,14 +98,12 @@ description:
|
|
98
98
|
email:
|
99
99
|
- jean.boussier@gmail.com
|
100
100
|
executables: []
|
101
|
-
extensions:
|
102
|
-
- ext/fstring/extconf.rb
|
101
|
+
extensions: []
|
103
102
|
extra_rdoc_files: []
|
104
103
|
files:
|
105
104
|
- ".github/workflows/ci.yml"
|
106
105
|
- ".gitignore"
|
107
106
|
- Gemfile
|
108
|
-
- Gemfile.lock
|
109
107
|
- LICENSE.txt
|
110
108
|
- README.md
|
111
109
|
- Rakefile
|
@@ -143,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
141
|
- !ruby/object:Gem::Version
|
144
142
|
version: '0'
|
145
143
|
requirements: []
|
146
|
-
rubygems_version: 3.
|
144
|
+
rubygems_version: 3.3.0.dev
|
147
145
|
signing_key:
|
148
146
|
specification_version: 4
|
149
147
|
summary: Allow fast access to internal fstring of symbols and modules
|