ruby-next 0.2.0 → 0.3.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +69 -7
  4. data/bin/ruby-next +1 -1
  5. data/lib/ruby-next/cli.rb +45 -6
  6. data/lib/ruby-next/commands/core_ext.rb +166 -0
  7. data/lib/ruby-next/commands/nextify.rb +18 -3
  8. data/lib/ruby-next/core.rb +149 -1
  9. data/lib/ruby-next/core/array/deconstruct.rb +21 -0
  10. data/lib/ruby-next/core/array/difference_union_intersection.rb +15 -21
  11. data/lib/ruby-next/core/constants/no_matching_pattern_error.rb +17 -0
  12. data/lib/ruby-next/core/enumerable/filter.rb +20 -18
  13. data/lib/ruby-next/core/enumerable/filter_map.rb +28 -40
  14. data/lib/ruby-next/core/enumerable/tally.rb +9 -23
  15. data/lib/ruby-next/core/enumerator/produce.rb +12 -14
  16. data/lib/ruby-next/core/hash/deconstruct_keys.rb +21 -0
  17. data/lib/ruby-next/core/hash/merge.rb +8 -10
  18. data/lib/ruby-next/core/kernel/then.rb +7 -9
  19. data/lib/ruby-next/core/proc/compose.rb +12 -14
  20. data/lib/ruby-next/core/string/split.rb +11 -0
  21. data/lib/ruby-next/core/struct/deconstruct.rb +7 -0
  22. data/lib/ruby-next/core/struct/deconstruct_keys.rb +34 -0
  23. data/lib/ruby-next/core/time/ceil.rb +10 -0
  24. data/lib/ruby-next/core/time/floor.rb +9 -0
  25. data/lib/ruby-next/core/unboundmethod/bind_call.rb +9 -0
  26. data/lib/ruby-next/core_ext.rb +18 -0
  27. data/lib/ruby-next/language.rb +4 -2
  28. data/lib/ruby-next/language/parser.rb +5 -1
  29. data/lib/ruby-next/language/rewriters/base.rb +2 -2
  30. data/lib/ruby-next/language/rewriters/method_reference.rb +3 -1
  31. data/lib/ruby-next/language/rewriters/numbered_params.rb +2 -2
  32. data/lib/ruby-next/language/rewriters/pattern_matching.rb +36 -17
  33. data/lib/ruby-next/language/runtime.rb +2 -3
  34. data/lib/ruby-next/version.rb +1 -1
  35. metadata +13 -3
  36. data/lib/ruby-next/core/pattern_matching.rb +0 -37
@@ -7,13 +7,12 @@ require "ruby-next/utils"
7
7
  require "ruby-next/language"
8
8
  require "ruby-next/language/eval"
9
9
 
10
- using RubyNext
11
-
12
10
  module RubyNext
13
11
  module Language
14
12
  # Module responsible for runtime transformations
15
-
16
13
  module Runtime
14
+ using RubyNext
15
+
17
16
  class << self
18
17
  include Utils
19
18
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyNext
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
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.2.0
4
+ version: 0.3.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-01-13 00:00:00.000000000 Z
11
+ date: 2020-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-next-core
@@ -71,18 +71,28 @@ files:
71
71
  - lib/ruby-next.rb
72
72
  - lib/ruby-next/cli.rb
73
73
  - lib/ruby-next/commands/base.rb
74
+ - lib/ruby-next/commands/core_ext.rb
74
75
  - lib/ruby-next/commands/nextify.rb
75
76
  - lib/ruby-next/core.rb
77
+ - lib/ruby-next/core/array/deconstruct.rb
76
78
  - lib/ruby-next/core/array/difference_union_intersection.rb
79
+ - lib/ruby-next/core/constants/no_matching_pattern_error.rb
77
80
  - lib/ruby-next/core/enumerable/filter.rb
78
81
  - lib/ruby-next/core/enumerable/filter_map.rb
79
82
  - lib/ruby-next/core/enumerable/tally.rb
80
83
  - lib/ruby-next/core/enumerator/produce.rb
84
+ - lib/ruby-next/core/hash/deconstruct_keys.rb
81
85
  - lib/ruby-next/core/hash/merge.rb
82
86
  - lib/ruby-next/core/kernel/then.rb
83
- - lib/ruby-next/core/pattern_matching.rb
84
87
  - lib/ruby-next/core/proc/compose.rb
85
88
  - lib/ruby-next/core/runtime.rb
89
+ - lib/ruby-next/core/string/split.rb
90
+ - lib/ruby-next/core/struct/deconstruct.rb
91
+ - lib/ruby-next/core/struct/deconstruct_keys.rb
92
+ - lib/ruby-next/core/time/ceil.rb
93
+ - lib/ruby-next/core/time/floor.rb
94
+ - lib/ruby-next/core/unboundmethod/bind_call.rb
95
+ - lib/ruby-next/core_ext.rb
86
96
  - lib/ruby-next/language.rb
87
97
  - lib/ruby-next/language/bootsnap.rb
88
98
  - lib/ruby-next/language/eval.rb
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- unless defined?(NoMatchingPatternError)
4
- class NoMatchingPatternError < RuntimeError
5
- end
6
- end
7
-
8
- # Add `#deconstruct` and `#deconstruct_keys` to core classes
9
- unless [].respond_to?(:deconstruct)
10
- RubyNext.module_eval do
11
- refine Array do
12
- def deconstruct
13
- self
14
- end
15
- end
16
-
17
- refine Struct do
18
- alias deconstruct to_a
19
- end
20
- end
21
- end
22
-
23
- unless {}.respond_to?(:deconstruct_keys)
24
- RubyNext.module_eval do
25
- refine Hash do
26
- def deconstruct_keys(_)
27
- self
28
- end
29
- end
30
-
31
- refine Struct do
32
- def deconstruct_keys(_)
33
- to_h
34
- end
35
- end
36
- end
37
- end