haveapi 0.29.7 → 0.29.8

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: f3555b00c36ae85444baaa5d2da5e69e70343a8d9528e6fee181ed947bf762d6
4
- data.tar.gz: 19613608cf068c2ec9ed2ecb8eda34fbdfab5da9515708a9786f8648059bfd48
3
+ metadata.gz: 95586ec69cf401aeed18079bfc5a7aecacc43f3be5ef7a40d2615561e57b7172
4
+ data.tar.gz: 5bec012deda81d4c2692cbb9bb3f765e3f025db2c861fd10a516df521413e720
5
5
  SHA512:
6
- metadata.gz: 8658ea7fb6d61350395fa2a3e9a7ac11467d732c27e4b460cb3105e53bbd2f3784f2426bcdc4760c672cce876af1ef111aaba61fa9a2b79be9bbda90fc7954a8
7
- data.tar.gz: c03998dc485dca010fc82ab5156e463c3c673b2365e8caed997d08393203907addbb86ae8a01faf280be5b0453cd323c165ed6b6bf428a009a4412114a593b6d
6
+ metadata.gz: c45317265ea0efa68b51a1f18c1200a44a4d430396c8e3f2f0b353f83754d5dce8ed12cc6c95e45b02370a77a7ec765748ec14f81e06ea541921c3aa4f6acf34
7
+ data.tar.gz: d5bae0700f7795dfad85cd974f4dda4ce2c56361b9e04ef5230b5d456d9ef66ebf3f0f8ddc52221b5341dbe314e22495c250fb55e58229078917bbbc0caf7ab6
data/haveapi.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.required_ruby_version = ">= #{File.read('../../.ruby-version').strip}"
16
16
 
17
17
  s.add_dependency 'activesupport', '>= 7.1'
18
- s.add_dependency 'haveapi-client', '~> 0.29.7'
18
+ s.add_dependency 'haveapi-client', '~> 0.29.8'
19
19
  s.add_dependency 'i18n', '>= 1.6', '< 2'
20
20
  s.add_dependency 'json'
21
21
  s.add_dependency 'mail'
@@ -148,20 +148,26 @@ module HaveAPI::ClientExamples
148
148
 
149
149
  def format_parameters(dir, params, prefix = '')
150
150
  ret = params.map do |k, v|
151
- if action[dir][:parameters][k][:type] == 'Custom'
152
- "#{prefix} \"#{k}\" => custom type}"
153
- else
154
- "#{prefix} \"#{k}\" => #{value(v)}"
155
- end
151
+ "#{prefix} #{value(k.to_s)} => #{value(v)}"
156
152
  end
157
153
 
158
154
  "#{prefix}[\n#{ret.join(",\n")}\n#{prefix}]"
159
155
  end
160
156
 
161
157
  def value(v)
162
- return v if v.is_a?(::Numeric) || v === true || v === false
163
-
164
- "\"#{v}\""
158
+ case v
159
+ when ::NilClass
160
+ 'null'
161
+ when ::Numeric, true, false
162
+ v.to_s
163
+ when ::Array
164
+ "[#{v.map { |item| value(item) }.join(', ')}]"
165
+ when ::Hash
166
+ "[#{v.map { |key, item| "#{value(key.to_s)} => #{value(item)}" }.join(', ')}]"
167
+ else
168
+ escaped = v.to_s.gsub(/[\\']/) { |char| "\\#{char}" }
169
+ "'#{escaped}'"
170
+ end
165
171
  end
166
172
  end
167
173
  end
@@ -1,4 +1,4 @@
1
1
  module HaveAPI
2
2
  PROTOCOL_VERSION = '2.0'.freeze
3
- VERSION = '0.29.7'.freeze
3
+ VERSION = '0.29.8'.freeze
4
4
  end
@@ -20,7 +20,8 @@ describe HaveAPI::ClientExamples do
20
20
  namespace: :widget,
21
21
  parameters: {
22
22
  name: { type: 'String' },
23
- enabled: { type: 'Boolean' }
23
+ enabled: { type: 'Boolean' },
24
+ group_by: { type: 'Custom' }
24
25
  }
25
26
  },
26
27
  output: {
@@ -36,7 +37,11 @@ describe HaveAPI::ClientExamples do
36
37
  let(:sample) do
37
38
  {
38
39
  path_params: [101],
39
- request: { name: 'documented widget', enabled: true },
40
+ request: {
41
+ name: "documented \"widget\" with $value and an apostrophe's backslash \\",
42
+ enabled: true,
43
+ group_by: ['vps_id', "owner's $group\\path"]
44
+ },
40
45
  response: { id: 101, name: 'documented widget' },
41
46
  status: true,
42
47
  message: nil,
@@ -77,6 +82,12 @@ describe HaveAPI::ClientExamples do
77
82
  status, output = syntax_check(%w[php -l], "<?php\n#{source}", '.php')
78
83
 
79
84
  expect(status).to be_success, output
85
+ expect(source).to include(
86
+ "'group_by' => ['vps_id', 'owner\\'s $group\\\\path']"
87
+ )
88
+ expect(source).to include(
89
+ "'name' => 'documented \"widget\" with $value and an apostrophe\\'s backslash \\\\'"
90
+ )
80
91
  end
81
92
 
82
93
  it 'generates valid Ruby' do
@@ -102,8 +113,9 @@ describe HaveAPI::ClientExamples do
102
113
  expect(request_lines).to include('Host: api.example.test', 'Content-Type: application/json')
103
114
  expect(JSON.parse(request_body)).to eq(
104
115
  'widget' => {
105
- 'name' => 'documented widget',
106
- 'enabled' => true
116
+ 'name' => "documented \"widget\" with $value and an apostrophe's backslash \\",
117
+ 'enabled' => true,
118
+ 'group_by' => ['vps_id', "owner's $group\\path"]
107
119
  }
108
120
  )
109
121
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haveapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.7
4
+ version: 0.29.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakub Skokan
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.29.7
32
+ version: 0.29.8
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.29.7
39
+ version: 0.29.8
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: i18n
42
42
  requirement: !ruby/object:Gem::Requirement