syntax_tree-array_brackets 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32271cf4a40462dee6524c5ef80b617bba879a4b7701034b0384fb8071bfae50
4
- data.tar.gz: a75742fcac0040125896a54fd74f7c7cebff711038d9d5702dcaa0faa192fdac
3
+ metadata.gz: 49b660457db14aff9dcbd80f2c32d80f90572e5eb29926649c5a917da00c283d
4
+ data.tar.gz: fdc99b74a18cd62d1b7f1aa447abdee845e7ffc64ffbd530cded7f0a34f0af37
5
5
  SHA512:
6
- metadata.gz: 2b1c534d7bb082f76e7ac4ed240ca9038b1a5cae42ea7a8d73e970382c65ba2ce9d57e88f383d9900878a9d60b837599f58776ba23e28b7390970a9ad5d6e59d
7
- data.tar.gz: 4f08569970a94ea6089d481086da9ef077b54a96f3b0aa9bcbec82630751308eef6fb65981154e7388487cae5637caec4458c4abd9ba4eb8b9745d29e2459ce8
6
+ metadata.gz: 299e44a474ec394a6acb7387c4bad12b299b3d8b9a43cc67327424cca01ae5d6686252771086e6b86cdfc2740cf298b73e58f785b23be0675ef4c4eb81da375d
7
+ data.tar.gz: 90f32e7ddb3d3902c574e9d0e0896e255239d1bc6e3d6609c07b8808b07bf42261263fc7bb7a7752efab5016ad1bdbc6cf2f618d4ea193c4a3e71865cf64bf39
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syntax_tree-array_brackets (0.1.1)
4
+ syntax_tree-array_brackets (0.1.2)
5
5
  syntax_tree (>= 2.0.1)
6
6
 
7
7
  GEM
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SyntaxTree
4
4
  module ArrayBrackets
5
- VERSION = "0.1.1"
5
+ VERSION = "0.1.2"
6
6
  end
7
7
  end
@@ -67,11 +67,8 @@ module SyntaxTree
67
67
 
68
68
  unless elements.empty?
69
69
  loc = elements.first.location.to(elements.last.location)
70
- str_contents =
71
- elements.map do |element|
72
- SymbolLiteral.new(value: element, location: nil)
73
- end
74
- contents = Args.new(parts: str_contents, location: loc)
70
+ literals = convert_to_literals(q, elements)
71
+ contents = Args.new(parts: literals, location: loc)
75
72
 
76
73
  q.indent do
77
74
  q.breakable_empty
@@ -84,5 +81,30 @@ module SyntaxTree
84
81
  q.text(closing)
85
82
  end
86
83
  end
84
+
85
+ private
86
+
87
+ def convert_to_literals(q, elements)
88
+ elements.map do |element|
89
+ value =
90
+ if element.value.intern.inspect.include?("\"") # consider symbols like :"foo:bar", :"?"
91
+ value = get_intern_representation(q, element.value)
92
+ element.copy(value: value, location: element.location)
93
+ else
94
+ element
95
+ end
96
+
97
+ SymbolLiteral.new(value: value, location: nil)
98
+ end
99
+ end
100
+
101
+ def get_intern_representation(q, value)
102
+ if value == q.quote
103
+ return "\"\\\"\"" if q.quote == "\""
104
+ return "\'\\\'\'" if q.quote == "'" # rubocop:disable Style/RedundantStringEscape
105
+ end
106
+
107
+ "#{q.quote}#{value}#{q.quote}"
108
+ end
87
109
  end
88
110
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syntax_tree-array_brackets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nobuo Takizawa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-12 00:00:00.000000000 Z
11
+ date: 2023-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: syntax_tree