ruby-next 0.9.2 → 0.10.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/README.md +14 -4
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be78f96adabbd05806a195f44a250b1e673b4f51996d74fc5dfce79c8485e77a
|
4
|
+
data.tar.gz: 3335bf2ff7c74bc00fc1e332708f4c05bba24c793afae8dd6a8ab7f49a579a1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 414da97faa41ebefa319e4dd2bb75601e119e5ebfef87e4f27269a56fce6aa55ed8afecfc4b356478b907ff83db9f508ab3c9284cb955e704c4adc955245009e
|
7
|
+
data.tar.gz: '01889f7d394c718613a8b76c5a30133649c7ad7a032e05cebc89f4a689ace6fb9d75cb53e8955880a5fb057c675a49d80e6acfd77f209a7c1fa9c9685a3c33cc'
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,28 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 0.10.0 (2020-09-02)
|
6
|
+
|
7
|
+
- Add proposed shorthand Hash syntax. ([@palkan][])
|
8
|
+
|
9
|
+
You can try it: `x = 1; y = 2; data = {x, y}`.
|
10
|
+
|
11
|
+
- Add leading argument support to args forwarding. ([@palkan][])
|
12
|
+
|
13
|
+
`def a(...) b(1, ...); end`.
|
14
|
+
|
15
|
+
- Add `Hash#except`. ([@palkan][])
|
16
|
+
|
17
|
+
`{a: 1, b: 2}.except(:a) == {b: 2}`
|
18
|
+
|
19
|
+
- Add find pattern support. ([@palkan][])
|
20
|
+
|
21
|
+
Now you can do: `[0, 1, 2] in [*, 1 => a, *c]`.
|
22
|
+
|
23
|
+
- Add Ruby 2.2 support. ([@palkan][])
|
24
|
+
|
25
|
+
With support for safe navigation operator (`&.`) and squiggly heredocs (`<<~TXT`).
|
26
|
+
|
5
27
|
## 0.9.2 (2020-06-24)
|
6
28
|
|
7
29
|
- Support passing rewriters to CLI. ([@sl4vr][])
|
data/README.md
CHANGED
@@ -37,6 +37,8 @@ Read more about the motivation behind the Ruby Next in this post: [Ruby Next: Ma
|
|
37
37
|
- Ruby gems
|
38
38
|
- [anyway_config](https://github.com/palkan/anyway_config)
|
39
39
|
- [graphql-fragment_cache](https://github.com/DmitryTsepelev/graphql-ruby-fragment_cache)
|
40
|
+
- Rails applications
|
41
|
+
- [anycable_rails_demo](https://github.com/anycable/anycable_rails_demo)
|
40
42
|
- mruby
|
41
43
|
- [ACLI](https://github.com/palkan/acli)
|
42
44
|
|
@@ -68,7 +70,7 @@ Core provides **polyfills** for Ruby core classes APIs via Refinements (default
|
|
68
70
|
Language is responsible for **transpiling** edge Ruby syntax into older versions. It could be done
|
69
71
|
programmatically or via CLI. It also could be done in runtime.
|
70
72
|
|
71
|
-
Currently, Ruby Next supports Ruby versions 2.
|
73
|
+
Currently, Ruby Next supports Ruby versions 2.2+, including JRuby 9.2.8+ and TruffleRuby 20.1+ (with some limitations). Support for EOL versions (<2.5) slightly differs though ([see below](#using-with-eol-rubies)).
|
72
74
|
|
73
75
|
Please, [open an issue](https://github.com/ruby-next/ruby-next/issues/new/choose) or join the discussion in the existing ones if you would like us to support older Ruby versions.
|
74
76
|
|
@@ -139,7 +141,7 @@ The following _rule of thumb_ is recommended when choosing between refinements a
|
|
139
141
|
- Using core extensions could be considered for application development (no need to think about `using RubyNext`); this approach could potentially lead to conflicts with dependencies (if these dependencies are not using refinements 🙂)
|
140
142
|
- Use core extensions if refinements are not supported by your platform
|
141
143
|
|
142
|
-
**NOTE:**
|
144
|
+
**NOTE:** _Edge_ APIs (i.e., from the Ruby's master branch) are included by default.
|
143
145
|
|
144
146
|
[**The list of supported APIs.**][features_core]
|
145
147
|
|
@@ -427,6 +429,8 @@ You must set `TargetRubyVersion: next` to make RuboCop use a Ruby Next parser.
|
|
427
429
|
|
428
430
|
Alternatively, you can load the patch from the command line by running: `rubocop -r ruby-next/rubocop ...`.
|
429
431
|
|
432
|
+
We recommend using the latest RuboCop version, 'cause it has support for new nodes built-in.
|
433
|
+
|
430
434
|
Also, when pre-transpiling source code with `ruby-next nextify`, we suggest ignoring the transpiled files:
|
431
435
|
|
432
436
|
```yml
|
@@ -439,7 +443,7 @@ AllCops:
|
|
439
443
|
|
440
444
|
## Using with EOL Rubies
|
441
445
|
|
442
|
-
We currently provide support for Ruby 2.3 and 2.4.
|
446
|
+
We currently provide support for Ruby 2.2, 2.3 and 2.4.
|
443
447
|
|
444
448
|
Ruby Next itself relies on 2.5 features and contains polyfills only for version 2.5+ (and that won't change).
|
445
449
|
Thus, to make it work with <2.5 we need to backport some APIs ourselves.
|
@@ -469,6 +473,8 @@ RUBY_NEXT_CORE_STRATEGY=backports ruby-next nextify lib/
|
|
469
473
|
|
470
474
|
**NOTE:** Make sure you have `backports` gem installed globally or added to your bundle (if you're using `bundle exec ruby-next ...`).
|
471
475
|
|
476
|
+
**NOTE:** For Ruby 2.2, safe navigation operator (`&.`) and squiggly heredocs (`<<~TXT`) support is provided.
|
477
|
+
|
472
478
|
## Proposed and edge features
|
473
479
|
|
474
480
|
Ruby Next aims to bring edge and proposed features to Ruby community before they (hopefully) reach an official Ruby release.
|
@@ -502,12 +508,16 @@ require "ruby-next/language/runtime"
|
|
502
508
|
|
503
509
|
- "Endless" method definition (`def foo() = 42`) ([#16746](https://bugs.ruby-lang.org/issues/16746)).
|
504
510
|
|
505
|
-
- Right-hand assignment (`13.divmod(5) => a,b`) ([#15921](https://bugs.ruby-lang.org/issues/15921))
|
511
|
+
- Right-hand assignment (`13.divmod(5) => a,b`) ([#15921](https://bugs.ruby-lang.org/issues/15921)).
|
512
|
+
|
513
|
+
- Find pattern (`[0, 1, 2] in [*, 1 => a, *c]`) ([#16828](https://bugs.ruby-lang.org/issues/16828)).
|
506
514
|
|
507
515
|
### Supported proposed features
|
508
516
|
|
509
517
|
- _Method reference_ operator (`.:`) ([#13581](https://bugs.ruby-lang.org/issues/13581)).
|
510
518
|
|
519
|
+
- Shorthand Hash notation (`data = {x, y}`) ([#15236](https://bugs.ruby-lang.org/issues/15236)).
|
520
|
+
|
511
521
|
## Contributing
|
512
522
|
|
513
523
|
Bug reports and pull requests are welcome on GitHub at [https://github.com/ruby-next/ruby-next](ttps://github.com/ruby-next/ruby-next).
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-next
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Dementyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-next-core
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.10.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.10.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ruby-next-parser
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.0.0.0
|
34
34
|
type: :runtime
|
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: 3.0.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: unparser
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.4.
|
47
|
+
version: 0.4.8
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.4.
|
54
|
+
version: 0.4.8
|
55
55
|
description: "\n Ruby Next is a collection of polyfills and a transpiler for supporting
|
56
56
|
latest and upcoming edge CRuby features\n in older versions and alternative implementations
|
57
57
|
(such as mruby, JRuby, Opal, Artichoke, RubyMotion, etc.).\n "
|
@@ -81,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
81
|
requirements:
|
82
82
|
- - ">="
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 2.
|
84
|
+
version: 2.2.0
|
85
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|