sqm2json 0.0.5 → 0.0.7

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: f722dfb641b8674f1e73d490ce62a8b7c1ec426981d704f731c98642b43bd4ac
4
- data.tar.gz: d3644e0ad66ddff412c1b52609e20ec05ff795ac5b8e4244b22cfd993d6d1edb
3
+ metadata.gz: 2954c708f8f44d64b934232c85de7c028f59b747ed5e89521a78a81be1f64969
4
+ data.tar.gz: 420534725aad6aaff137e976ca264af8e1be4ba6e7b28b16e571002dc944b3ba
5
5
  SHA512:
6
- metadata.gz: 9f2e069d53a0efe9942b6fba3060ac9584c501374e411be08b58c465701506e20fcd1c8dd9529cc49a6c88402960f92b1b24937e93b6a3f9f2a37b651f4c4ca4
7
- data.tar.gz: 41ecb4372cce08f1b1d2657bf43b872f6cb0e0f089df3b3bda1c5764e4dd8757786999009ce5188f06e39774d526a1ffc3f30558d8e75d4d40f6814a7c20ec40
6
+ metadata.gz: 1f6235ed59b05c106c56858acc8355add681eaacf3748c1874a9d3a6065c2f4f4ba3b85854c43bd7af0f8b1f657d1eff2d3dc491948b796587a4f72886d879be
7
+ data.tar.gz: 6ad819ce7753daaa1c6dd60667edca7e72d3a788d3c0f8fbea62883a7984078e7c71a28264fce0cb4150a13e2cb8b9d065e833f82fe73ccb74a3d1e19e21dda8
data/CHANGELOG.md CHANGED
@@ -7,6 +7,16 @@
7
7
  @ bug fix
8
8
  !! security fix
9
9
 
10
+ ## [v0.0.6] - 2025-02-27
11
+ ~ change carriage return for SQM generation
12
+
13
+ ## [v0.0.5] - 2025-01-13
14
+ @ Fix parsing of field containing *""* as it can happen into _init_
15
+ ~ addition of test cases into spec
16
+
17
+ ## [v0.0.4] - 2024-04-28
18
+ ~ support SQM v54
19
+
10
20
  ## [v0.0.3] - 2016-08-22
11
21
  \+ changelog
12
22
  \+ supported SQM format versions provides *get_supported_versions* and *is_version_supported?*
@@ -23,20 +23,20 @@ module Sqm2Json
23
23
 
24
24
  case value
25
25
  when ::Numeric
26
- content << "#{key}=#{get_numeric(value)};\r\n"
26
+ content << "#{key}=#{get_numeric(value)};\n"
27
27
  when ::String
28
- content << "#{key}=\"#{value}\";\r\n"
28
+ content << "#{key}=\"#{value}\";\n"
29
29
  when ::Array
30
30
  content << get_array(key, value, level)
31
31
  when ::Hash
32
- content << "class #{key}\r\n"
32
+ content << "class #{key}\n"
33
33
  level.times { content << "\t" }
34
- content << "{\r\n"
34
+ content << "{\n"
35
35
  value.each { |k, v|
36
36
  content << get_element(k, v, level + 1)
37
37
  }
38
38
  level.times { content << "\t" }
39
- content << "};\r\n"
39
+ content << "};\n"
40
40
  else
41
41
  raise "Invalid JSON element type: #{value.class}"
42
42
  end
@@ -58,18 +58,18 @@ module Sqm2Json
58
58
  }
59
59
  content.chomp!(',')
60
60
  else
61
- content << "\r\n"
61
+ content << "\n"
62
62
  level.times { content << "\t" }
63
- content << "{\r\n"
63
+ content << "{\n"
64
64
  values.each do |v|
65
65
  (level + 1).times {content << "\t" }
66
- content << "\"#{v.to_s}\",\r\n"
66
+ content << "\"#{v.to_s}\",\n"
67
67
  end
68
- content.chomp!(",\r\n")
69
- content << "\r\n"
68
+ content.chomp!(",\n")
69
+ content << "\n"
70
70
  level.times { content << "\t" }
71
71
  end
72
- content << "};\r\n"
72
+ content << "};\n"
73
73
  content
74
74
  end
75
75
 
@@ -6,7 +6,10 @@ module Sqm2Json
6
6
  # @param [String] sqm_document valid and readable mission.sqm file path
7
7
  # @return [Hash] JSON document
8
8
  def to_json(sqm_document)
9
- content = sqm_document.delete("\r\n").delete("\t")
9
+ content = sqm_document.gsub(/^[\s\S]*version = (\d\d);/,'version=\1;')
10
+ #content = content.gsub!(/\/\/.*\n/, '')
11
+ content = content.delete("\r\n").delete("\t")
12
+ content = content.gsub!(/\s*=\s*/,'=')
10
13
  content.gsub!(/(?<key>\w*)\s*=\s*(?<val>"");/, '\k<key>="ʉ";') # replace empty string values
11
14
  protect_special_chars_into_values(content)
12
15
  content.gsub!(/class (?<val>\w+)\s*\{/, '"\k<val>" : {')
@@ -16,7 +19,9 @@ module Sqm2Json
16
19
  content.gsub!(/,\}/, '}')
17
20
  content.gsub!(/\}[;,]\}/, '}}')
18
21
  recover_special_chars_into_values(content)
19
- ::JSON.parse("{#{content.chomp('"').chomp(',')}}", symbolize_names: true)
22
+ content = "{#{content.chomp('"').chomp(',')}}"
23
+ #puts content
24
+ ::JSON.parse(content, symbolize_names: true)
20
25
  end
21
26
 
22
27
  # Replace special characters into init-like fields before processing the structure
@@ -1,5 +1,5 @@
1
1
  module Sqm2Json
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.7'
3
3
 
4
4
  def self.get_supported_versions
5
5
  [12, 51, 52, 54]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqm2json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas FLINOIS
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-13 00:00:00.000000000 Z
11
+ date: 2025-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  - !ruby/object:Gem::Version
120
120
  version: '0'
121
121
  requirements: []
122
- rubygems_version: 3.5.18
122
+ rubygems_version: 3.4.10
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: This library aims at converting Arma's missions SQM format to JSON and vice-versa