to_source 0.2.19 → 0.2.20
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.
- data/Changelog.md +58 -52
- data/lib/to_source/emitter/op_assign2.rb +17 -1
- data/spec/unit/to_source/class_methods/run_spec.rb +8 -5
- data/to_source.gemspec +1 -1
- metadata +2 -2
data/Changelog.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# v0.2.19 2013-03-30
|
2
|
+
|
3
|
+
* [fix] Op assign 2 operators (self.foo ||= bar, etc) [nevir]
|
4
|
+
|
5
|
+
[Compare v0.2.19..v0.2.20](https://github.com/mbj/to_source/compare/v0.2.18...v0.2.20)
|
6
|
+
|
1
7
|
# v0.2.19 2013-03-1
|
2
8
|
|
3
9
|
* [change] Bump dependencies
|
@@ -6,144 +12,144 @@
|
|
6
12
|
|
7
13
|
# v0.2.18 2013-01-29
|
8
14
|
|
9
|
-
* [
|
15
|
+
* [fix] Emit ranges in parantheses to resolve ambiguity
|
10
16
|
|
11
17
|
[Compare v0.2.17..v0.2.18](https://github.com/mbj/to_source/compare/v0.2.17...v0.2.18)
|
12
18
|
|
13
19
|
# v0.2.17 2013-01-26
|
14
20
|
|
15
|
-
* [
|
16
|
-
* [
|
17
|
-
* [
|
18
|
-
* [
|
19
|
-
* [
|
20
|
-
* [
|
21
|
-
* [
|
22
|
-
* [
|
23
|
-
* [
|
24
|
-
* [
|
25
|
-
* [
|
26
|
-
* [
|
27
|
-
* [
|
28
|
-
* [
|
29
|
-
* [
|
30
|
-
* [
|
31
|
-
* [
|
32
|
-
* [
|
33
|
-
* [
|
34
|
-
* [
|
35
|
-
* [
|
36
|
-
* [
|
37
|
-
* [
|
38
|
-
* [
|
21
|
+
* [fix] Fix op assign 1 operators with implicit index array[] ||= etc
|
22
|
+
* [fix] Fix op assign 1 operators with explicit index array[foo] ||= etc
|
23
|
+
* [fix] Add support regexp in if statements with implicit haystack (Rubinius::AST::Match)
|
24
|
+
* [fix] Add support for Rubionius::AST::Flip{2,3} (flip flops)
|
25
|
+
* [fix] Add support for Rubionius::AST::VAlias
|
26
|
+
* [fix] Fix multiple edge cases with array literals and splats
|
27
|
+
* [fix] Add support for mixed splat arguments
|
28
|
+
* [fix] Add support for __ENCODING__
|
29
|
+
* [fix] Fix emit of splat arguments to binary method operators
|
30
|
+
* [fix] Fix multiple assigments when assigning to element with splat index
|
31
|
+
* [fix] Add support for retry
|
32
|
+
* [fix] Add support for redo
|
33
|
+
* [fix] Add support rubinius specific type constant
|
34
|
+
* [fix] Add support for dynamic once literal
|
35
|
+
* [fix] Emit regexp options for single and dynamic literals
|
36
|
+
* [fix] Add support for undef keyword
|
37
|
+
* [fix] Add support toplevel module name
|
38
|
+
* [fix] Fix regexp emitter for edge cases
|
39
|
+
* [fix] Fix element reference with splat arguments
|
40
|
+
* [fix] Add support for construct
|
41
|
+
* [fix] Add support splat assigmnent in multiple assignment
|
42
|
+
* [fix] Add support for /s/ =~ foo (Rubinius::AST::Match2)
|
43
|
+
* [fix] Add support for $` (Rubinius::AST::BackRef)
|
44
|
+
* [fix] Support multiple assignments also for attribute and element assignments
|
39
45
|
|
40
46
|
[Compare v0.2.16..v0.2.17](https://github.com/mbj/to_source/compare/v0.2.16...v0.2.17)
|
41
47
|
|
42
48
|
# v0.2.16 2013-01-25
|
43
49
|
|
44
|
-
* [
|
50
|
+
* [fix] Handle Rubinius::AST::Case
|
45
51
|
|
46
52
|
[Compare v0.2.15..v0.2.16](https://github.com/mbj/to_source/compare/v0.2.15...v0.2.16)
|
47
53
|
|
48
54
|
# v0.2.15 2013-01-24
|
49
55
|
|
50
|
-
* [
|
56
|
+
* [fix] Emit dynamic regexp literals with split groups correctly
|
51
57
|
|
52
58
|
[Compare v0.2.14..v0.2.15](https://github.com/mbj/to_source/compare/v0.2.14...v0.2.15)
|
53
59
|
|
54
60
|
# v0.2.14 2013-01-09
|
55
61
|
|
56
|
-
* [
|
62
|
+
* [fix] Emit send with arguments and body correctly
|
57
63
|
|
58
64
|
[Compare v0.2.13..v0.2.14](https://github.com/mbj/to_source/compare/v0.2.13...v0.2.14)
|
59
65
|
|
60
66
|
# v0.2.13 2013-01-09
|
61
67
|
|
62
|
-
* [
|
68
|
+
* [fix] Emit send with arguments and body correctly
|
63
69
|
|
64
70
|
[Compare v0.2.12..v0.2.13](https://github.com/mbj/to_source/compare/v0.2.12...v0.2.13)
|
65
71
|
|
66
72
|
# v0.2.12 2013-01-09
|
67
73
|
|
68
|
-
* [
|
74
|
+
* [fix] Emit edge cases with dynamic literals correctly
|
69
75
|
|
70
76
|
[Compare v0.2.11..v0.2.12](https://github.com/mbj/to_source/compare/v0.2.11...v0.2.12)
|
71
77
|
|
72
78
|
# v0.2.11 2013-01-09
|
73
79
|
|
74
|
-
* [
|
80
|
+
* [fix] Allow all nodes to be entrypoints
|
75
81
|
|
76
82
|
[Compare v0.2.10..v0.2.11](https://github.com/mbj/to_source/compare/v0.2.10...v0.2.11)
|
77
83
|
|
78
84
|
# v0.2.10 2013-01-07
|
79
85
|
|
80
86
|
* [Changed] Rewrote internals compleatly, no outer API change
|
81
|
-
* [
|
87
|
+
* [fix] Emit indentation of complex nested structures with rescue statements correctly
|
82
88
|
|
83
89
|
[Compare v0.2.9..v0.2.10](https://github.com/mbj/to_source/compare/v0.2.9...v0.2.10)
|
84
90
|
|
85
91
|
# v0.2.9 2013-01-04
|
86
92
|
|
87
|
-
* [
|
93
|
+
* [fix] Handle regexp literals containing slashes in non shash delimiters %r(/) correctly
|
88
94
|
|
89
95
|
[Compare v0.2.8..v0.2.9](https://github.com/mbj/to_source/compare/v0.2.8...v0.2.9)
|
90
96
|
|
91
97
|
# v0.2.8 2013-01-03
|
92
98
|
|
93
99
|
* [Changed] Emit many times more ugly code, but correctnes > beautifulnes
|
94
|
-
* [
|
95
|
-
* [
|
96
|
-
* [
|
100
|
+
* [fix] Emit break with parantheses
|
101
|
+
* [fix] Emit op assign and as "&&="
|
102
|
+
* [fix] Emit op assign or as "||="
|
97
103
|
|
98
104
|
[Compare v0.2.7..v0.2.8](https://github.com/mbj/to_source/compare/v0.2.7...v0.2.8)
|
99
105
|
|
100
106
|
# v0.2.7 2013-01-02
|
101
107
|
|
102
|
-
* [
|
108
|
+
* [fix] Emit super with blocks correctly
|
103
109
|
|
104
110
|
[Compare v0.2.6..v0.2.7](https://github.com/mbj/to_source/compare/v0.2.6...v0.2.7)
|
105
111
|
|
106
112
|
# v0.2.6 2013-01-01
|
107
113
|
|
108
|
-
* [
|
114
|
+
* [fix] Emit super vs super() correctly
|
109
115
|
|
110
116
|
[Compare v0.2.5..v0.2.6](https://github.com/mbj/to_source/compare/v0.2.5...v0.2.6)
|
111
117
|
|
112
118
|
# v0.2.5 2012-12-14
|
113
119
|
|
114
|
-
* [
|
115
|
-
* [
|
116
|
-
* [
|
120
|
+
* [fix] Emit unary operators correctly
|
121
|
+
* [fix] Define with optional splat and block argument
|
122
|
+
* [fix] Emit arguments to break keyword
|
117
123
|
* [change] Uglify output of binary operators with unneded paranteses. Correct output > nice output.
|
118
|
-
* [
|
119
|
-
* [
|
124
|
+
* [fix] Emit nested binary operators correctly.
|
125
|
+
* [fix] Emit element reference on self correctly. self[foo].
|
120
126
|
|
121
127
|
[Compare v0.2.4..v0.2.5](https://github.com/mbj/to_source/compare/v0.2.4...v0.2.5)
|
122
128
|
|
123
129
|
# v0.2.4 2012-12-07
|
124
130
|
|
125
131
|
* [feature] Allow to emit pattern variables as root node
|
126
|
-
* [
|
132
|
+
* [fix] Emit send with splat and block argument correctly
|
127
133
|
|
128
134
|
[Compare v0.2.3..v0.2.4](https://github.com/mbj/to_source/compare/v0.2.3...v0.2.4)
|
129
135
|
|
130
136
|
# v0.2.3 2012-12-07
|
131
137
|
|
132
|
-
* [
|
138
|
+
* [fix] Nuke dangling require (sorry for not running specs after gemspec change)
|
133
139
|
|
134
140
|
[Compare v0.2.2..v0.2.3](https://github.com/mbj/to_source/compare/v0.2.2...v0.2.3)
|
135
141
|
|
136
142
|
# v0.2.2 2012-12-07
|
137
143
|
|
138
|
-
* [
|
139
|
-
* [
|
144
|
+
* [fix] Emit of pattern arguments with no formal arguments present
|
145
|
+
* [fix] Missed to require set
|
140
146
|
|
141
147
|
[Compare v0.2.1..v0.2.2](https://github.com/mbj/to_source/compare/v0.2.1...v0.2.2)
|
142
148
|
|
143
149
|
# v0.2.1 2012-12-07
|
144
150
|
|
145
|
-
* [
|
146
|
-
* [
|
151
|
+
* [fix] Emit of def on splat with block
|
152
|
+
* [fix] Emit of pattern args
|
147
153
|
|
148
154
|
[Compare v0.2.0..v0.2.1](https://github.com/mbj/to_source/compare/v0.2.0...v0.2.1)
|
149
155
|
|
@@ -151,10 +157,10 @@
|
|
151
157
|
|
152
158
|
* [BRAKING CHANGE] Remove core extension Rubinius::AST::Node#to_source (mbj)
|
153
159
|
* [feature] Add support for MRI via melbourne gem (mbj)
|
154
|
-
* [
|
155
|
-
* [
|
160
|
+
* [fix] 100% Yard covered documentation (mbj)
|
161
|
+
* [fix] Emit most binary operators without parantheses (mbj)
|
156
162
|
* [feature] Port tests to rspec2 and greatly improve coverage and layout of these.
|
157
163
|
* [feature] Introduce metric tools via devtools
|
158
|
-
* [
|
164
|
+
* [fix] Lots of transitvity edge cases
|
159
165
|
|
160
166
|
[Compare v0.1.3..v0.2.0](https://github.com/mbj/to_source/ompare/v0.1.3...v0.2.0)
|
@@ -18,10 +18,26 @@ module ToSource
|
|
18
18
|
visit(util.receiver)
|
19
19
|
emit('.')
|
20
20
|
emit(util.name)
|
21
|
-
emit(
|
21
|
+
emit(" #{operator} ")
|
22
22
|
visit(util.value)
|
23
23
|
end
|
24
24
|
|
25
|
+
MAPPING = {
|
26
|
+
:or => :'||',
|
27
|
+
:and => :'&&'
|
28
|
+
}.freeze
|
29
|
+
|
30
|
+
# Return operator
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
#
|
34
|
+
# @api private
|
35
|
+
#
|
36
|
+
def operator
|
37
|
+
op = node.op
|
38
|
+
"#{MAPPING.fetch(op, op)}="
|
39
|
+
end
|
40
|
+
|
25
41
|
end
|
26
42
|
end
|
27
43
|
end
|
@@ -182,12 +182,15 @@ describe ToSource,'.to_source' do
|
|
182
182
|
end
|
183
183
|
end
|
184
184
|
|
185
|
-
context 'conditional element assignment' do
|
186
|
-
assert_source 'foo[key] ||= bar'
|
187
|
-
end
|
188
185
|
|
189
|
-
|
190
|
-
|
186
|
+
%w(|= ||= &= &&= += -= *= /= **= %=).each do |op|
|
187
|
+
context "conditional attribute #{op} assignment" do
|
188
|
+
assert_source "self.foo #{op} bar"
|
189
|
+
end
|
190
|
+
|
191
|
+
context "conditional element #{op} assignment" do
|
192
|
+
assert_source "foo[key] #{op} bar"
|
193
|
+
end
|
191
194
|
end
|
192
195
|
|
193
196
|
|
data/to_source.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: to_source
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.20
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: adamantium
|