soaspec 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c0a3e540292329987ba8c0a2fd1e260b1331149c
4
- data.tar.gz: 23c0a28e63b2afb2005ed7966317758a93a8e074
3
+ metadata.gz: eeb96e8acb8549f09c9b3b11592a6d1642c0ce16
4
+ data.tar.gz: caee64c3c1c13dc5853c909aae35f4916ebe99ca
5
5
  SHA512:
6
- metadata.gz: 72f4b5a1a14c627b72439219494cc9166858961d6380b44ea62757d91ad6f9ba5592196e2f767e2ebf6752b7909af457f430eb989c18c38297a5cf7b49091421
7
- data.tar.gz: d57c6076794ab593d6962a56e16afeddf6cfe47f5a213fd386191ed6e7edeeaf4981911e3c89f96c28fb8d3b447779fb0486be5c626660e008e5d72b81d9f565
6
+ metadata.gz: a110b3ac2c135c9d8d72fe11feffe991394242c95de3f32f59396d1bb8b50789e6c8d52fb158b3142d1a91c5320705c494a81a80b82da11383abd99b0d252465
7
+ data.tar.gz: 7a411ac7056a140ed6287184a07d4c43851256cfe71039ce08c65517b2bdfeb3b03b156c302dc29b4c56986fd5e3f2783f4e1cfbf7bb00ac9ec59b13125be7f3
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ Version 0.0.13 / 2018-1-23
2
+ * Enhancements
3
+ * Executable to create xml file from yaml
4
+
1
5
  Version 0.0.12 / 2018/1-22
2
6
  * Enhancements
3
7
  * Example name added to log file
data/Gemfile CHANGED
@@ -12,3 +12,4 @@ gem 'rake', '12.2.1'
12
12
  gem 'rspec'
13
13
  gem 'rspec-its'
14
14
  gem 'rspec_junit_formatter'
15
+ gem 'xml-simple'
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- soaspec (0.0.11)
4
+ soaspec (0.0.12)
5
5
  rest-client (>= 2.0)
6
6
  rspec (~> 3.0)
7
7
  rspec-its (>= 1.2.0)
8
8
  savon (>= 2)
9
+ xml-simple (>= 1.1.5)
9
10
 
10
11
  GEM
11
12
  remote: https://rubygems.org/
@@ -81,6 +82,7 @@ GEM
81
82
  wasabi (3.5.0)
82
83
  httpi (~> 2.0)
83
84
  nokogiri (>= 1.4.2)
85
+ xml-simple (1.1.5)
84
86
 
85
87
  PLATFORMS
86
88
  ruby
@@ -97,6 +99,7 @@ DEPENDENCIES
97
99
  rspec_junit_formatter
98
100
  savon
99
101
  soaspec!
102
+ xml-simple
100
103
 
101
104
  BUNDLED WITH
102
105
  1.16.0
data/exe/soaspec-init CHANGED
@@ -5,13 +5,13 @@ require 'fileutils'
5
5
 
6
6
  def create_file(options)
7
7
  filename = options[:filename]
8
- fail 'Need to pass filename' unless filename
8
+ raise 'Need to pass filename' unless filename
9
9
  content = options[:content]
10
- fail 'Need to pass contents to insert into file' unless content
10
+ raise 'Need to pass contents to insert into file' unless content
11
11
  if File.exist? filename
12
12
  old_content = File.read(filename)
13
13
  if old_content != content
14
- $stderr.puts "!! #{filename} already exists and differs from template"
14
+ warn "!! #{filename} already exists and differs from template"
15
15
  end
16
16
  else
17
17
  File.open(filename, 'w') do |f|
@@ -0,0 +1,56 @@
1
+
2
+ require 'xmlsimple'
3
+ require 'yaml'
4
+ require 'fileutils'
5
+
6
+ default_output_file = 'output.yml'
7
+
8
+ # Create file if not present. If present but different give warning
9
+ def create_file(options)
10
+ filename = options[:filename]
11
+ raise 'Need to pass filename' unless filename
12
+ content = options[:content]
13
+ raise 'Need to pass contents to insert into file' unless content
14
+ if File.exist? filename
15
+ old_content = File.read(filename)
16
+ if old_content != content
17
+ warn "!! #{filename} already exists and differs from template"
18
+ end
19
+ else
20
+ File.open(filename, 'w') do |f|
21
+ f.puts content
22
+ end
23
+ puts 'Created: ' + filename
24
+ end
25
+ end
26
+
27
+ # Convert key in camelcase to underscore separated (snakecase)
28
+ def underscore_key(key)
29
+ key.to_s.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
30
+ .gsub(/([a-z\d])([A-Z])/,'\1_\2')
31
+ .tr('-', '_')
32
+ .gsub(/\s/, '_')
33
+ .gsub(/__+/, '_')
34
+ .downcase
35
+ end
36
+
37
+ # For all keys in a Hash, convert Camelcase to underscore separated
38
+ def convert_hash_keys(value)
39
+ case value
40
+ when Array
41
+ value.map { |v| convert_hash_keys(v) }
42
+ when Hash
43
+ Hash[value.map { |k, v| [underscore_key(k), convert_hash_keys(v)] }]
44
+ else
45
+ value
46
+ end
47
+ end
48
+
49
+ if ARGV[0]
50
+ warn "Using '#{default_output_file}' as default output file since no 2nd argument passed" unless ARGV[1]
51
+ hash = XmlSimple.xml_in(ARGV[0])
52
+ converted = convert_hash_keys hash
53
+ create_file(filename: ARGV[1] || default_output_file, content: converted.to_yaml)
54
+ else
55
+ puts 'usage: xml_to_yaml_file [input.xml] [output.yml] '
56
+ end
@@ -1,3 +1,3 @@
1
1
  module Soaspec
2
- VERSION = '0.0.12'
2
+ VERSION = '0.0.13'
3
3
  end
data/soaspec.gemspec CHANGED
@@ -29,5 +29,6 @@ the same configuration }
29
29
  spec.add_dependency 'rspec', '~> 3.0' # This framework is designed to work with RSpec
30
30
  spec.add_dependency 'rspec-its', '>= 1.2.0'
31
31
  spec.add_dependency 'savon', '>= 2' # SOAP
32
+ spec.add_dependency 'xml-simple', '>= 1.1.5'
32
33
 
33
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soaspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - SamuelGarrattIQA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-22 00:00:00.000000000 Z
11
+ date: 2018-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,12 +108,27 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: xml-simple
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 1.1.5
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 1.1.5
111
125
  description: "Helps to create RSpec specs for SOAP or REST apis. Easily represent
112
126
  multiple requests with\nthe same configuration "
113
127
  email:
114
128
  - samuel.garratt@integrationqa.com
115
129
  executables:
116
130
  - soaspec-init
131
+ - xml_to_yaml_file
117
132
  extensions: []
118
133
  extra_rdoc_files: []
119
134
  files:
@@ -130,6 +145,7 @@ files:
130
145
  - bin/console
131
146
  - bin/setup
132
147
  - exe/soaspec-init
148
+ - exe/xml_to_yaml_file
133
149
  - lib/soaspec.rb
134
150
  - lib/soaspec/basic_soap_handler.rb
135
151
  - lib/soaspec/exchange.rb