ruby-miradore 1.0.0 → 1.1.0

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
  SHA256:
3
- metadata.gz: bbe3675a437a4f1a7db9f1970b5ffff9f49d7767f8f074212b1d4c115bb4a352
4
- data.tar.gz: d62031266909082c468a35bd316c642f46c7342bb788283aee194f13cc21c4a0
3
+ metadata.gz: 0a0d9f16881d0084b790f716f147d30a6c83ccd5e61c41aac6c3f4de3d5b9011
4
+ data.tar.gz: c1df3a2b189804ce4786bde6d7642560b84c337fa363a8de619815f4b8eb2deb
5
5
  SHA512:
6
- metadata.gz: 391f48e2cf12a8837494506f3badf713fa7c0ad27f3b29b67cedaa9f4cfcbea98f43d70cfa7bd810f9ab7526de9982b7139b77375dec7115d18b7b5b558b5e14
7
- data.tar.gz: a6c04e0cc89456c175855c73cbde0f7f6b172193fc612b828ae93dbf656c921f7ff41fe33cc72a2dec7708bbe2ac365620f0db28c4a6569cf53bd37d71c848b1
6
+ metadata.gz: ea9c4d455b6f4c17a5bc5c8145814e0d56b44353df5e74a2bef1179491c48dad7772b61ecac59af134b528b530493c86279ea1078ce3681e5af909cb583b4ffc
7
+ data.tar.gz: 23f81ab6559b89e6728ff29b228fd514a489a843819dc1482d8f9f67eacccb3e6c83c5f3b81296d9079bf77a5b99db84c1d951b565bd97978a428e4922dcb9f7
data/.rubocop.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.7.3
3
+ NewCops: disable
3
4
 
4
5
  Style/StringLiterals:
5
6
  Enabled: true
data/Gemfile CHANGED
@@ -6,6 +6,6 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  group :test do
9
- gem "webmock"
10
9
  gem "vcr"
11
- end
10
+ gem "webmock"
11
+ end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-miradore (1.0.0)
4
+ ruby-miradore (1.1.0)
5
5
  crack (~> 0.4.5)
6
6
  finest-builder (~> 0.0.4)
7
7
  httparty (~> 0.18.1)
@@ -17,6 +17,9 @@ GEM
17
17
  ast (2.4.2)
18
18
  crack (0.4.5)
19
19
  rexml
20
+ debase (2.3.2)
21
+ debase-ruby_core_source (~> 0.10.11)
22
+ debase-ruby_core_source (0.10.11)
20
23
  diff-lcs (1.4.4)
21
24
  finest-builder (0.0.5)
22
25
  hashdiff (1.0.1)
@@ -72,6 +75,8 @@ PLATFORMS
72
75
  x86_64-linux
73
76
 
74
77
  DEPENDENCIES
78
+ debase
79
+ debase-ruby_core_source
75
80
  ruby-miradore!
76
81
  vcr
77
82
  webmock
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rzilient.online.miradore.com/API/Device?auth=&filters=&select=ID,InvDevice.*
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - no-cache
23
+ Pragma:
24
+ - no-cache
25
+ Content-Type:
26
+ - text/xml
27
+ Expires:
28
+ - "-1"
29
+ Server:
30
+ - Microsoft-IIS/10.0
31
+ X-Aspnet-Version:
32
+ - 4.0.30319
33
+ X-Powered-By:
34
+ - ASP.NET
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ Date:
38
+ - Wed, 12 May 2021 14:31:33 GMT
39
+ Content-Length:
40
+ - '1165'
41
+ body:
42
+ encoding: UTF-8
43
+ string: '<?xml version="1.0" encoding="utf-8"?><Content><Items count="2"><Device><ID>1</ID><InvDevice><Model>Apple
44
+ iPhone9,3</Model><Manufacturer>Apple</Manufacturer><ProductName>iPhone9,3</ProductName><SoftwareVersion>iOS
45
+ 14.4.2</SoftwareVersion><SerialNumber>C76TLUEMHG7F</SerialNumber><IMEI>355332088433360</IMEI><WiFiMAC>d4:dc:cd:d6:09:be</WiFiMAC><BluetoothMAC>d4:dc:cd:d6:09:e1</BluetoothMAC><UDID>84c87a9edf0c577227b96dcbe7bf45713c358ede</UDID><StoreAccountActive>True</StoreAccountActive><DoNotDisturbActive>True</DoNotDisturbActive><DeviceType>MN8X2QL</DeviceType><EASIdentifier>LU1R1J5V0H73JCTEJ2A732LI8G</EASIdentifier><DeviceName>iPhone
46
+ de: Eduard</DeviceName><InventoryTime>11.05.2021 22:04:19</InventoryTime></InvDevice></Device><Device><ID>2</ID><InvDevice><Model>ASUSTeK
47
+ COMPUTER INC. VivoBook_ASUSLaptop X712FA_X712FA</Model><Manufacturer>ASUSTeK
48
+ COMPUTER INC.</Manufacturer><ProductName>VivoBook_ASUSLaptop X712FA_X712FA</ProductName><SoftwareVersion>Windows
49
+ 10 Home (20H2)</SoftwareVersion><SerialNumber>K8N0CV07315233B</SerialNumber><DeviceName>QUENTIN</DeviceName><InventoryTime>12.05.2021
50
+ 12:30:16</InventoryTime></InvDevice></Device></Items></Content>'
51
+ recorded_at: Wed, 12 May 2021 14:31:34 GMT
52
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,70 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rzilient.online.miradore.com/API/Device?auth=&filters=&select=*,Category.*,InvDevice.*,InvStorage.*,InvOS.*,Enrollment.*,Client.*,User.*,Location.*,Security.*,ReportedLocation.*
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - no-cache
23
+ Pragma:
24
+ - no-cache
25
+ Content-Type:
26
+ - text/xml
27
+ Expires:
28
+ - "-1"
29
+ Server:
30
+ - Microsoft-IIS/10.0
31
+ X-Aspnet-Version:
32
+ - 4.0.30319
33
+ X-Powered-By:
34
+ - ASP.NET
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ Date:
38
+ - Wed, 12 May 2021 14:00:01 GMT
39
+ Content-Length:
40
+ - '4612'
41
+ body:
42
+ encoding: UTF-8
43
+ string: '<?xml version="1.0" encoding="utf-8"?><Content><Items count="2"><Device><ID>1</ID><User><ID>2</ID><Email>edugarcas@gmail.com</Email><Source>GUI</Source><Status>Active</Status><Created>22.04.2021
44
+ 06:32:00</Created><Modified>22.04.2021 06:32:00</Modified></User><Category><ID>1</ID><Name>Smartphone</Name></Category><Enrollment><ID>5</ID><User><ID>2</ID></User><Created>22.04.2021
45
+ 06:32:00</Created><Completed>22.04.2021 06:33:20</Completed><Type>Email</Type><Sender>eduard@rzilient.club</Sender></Enrollment><OnlineStatus>Active</OnlineStatus><LastReported>12.05.2021
46
+ 12:25:30</LastReported><LastReportedDays>0</LastReportedDays><LastReportedHours>2</LastReportedHours><LastReportedMinutes>95</LastReportedMinutes><IPAddress>31.4.148.80</IPAddress><MACAddress>d4:dc:cd:d6:09:be</MACAddress><Platform>iOS</Platform><Client><ID>1</ID><ManagementType>iOSUnsupervised</ManagementType></Client><ConfigProfileDeployments><ConfigProfileDeployment><ID>1</ID><ConfigProfile><ID>5</ID></ConfigProfile></ConfigProfileDeployment><ConfigProfileDeployment><ID>2</ID><ConfigProfile><ID>6</ID></ConfigProfile></ConfigProfileDeployment></ConfigProfileDeployments><OSVersionName>iOS
47
+ 14.4.2</OSVersionName><Status>AutoGenerated</Status><Created>22.04.2021 06:33:20</Created><Modified>27.04.2021
48
+ 09:20:21</Modified><Source>MiradoreOnline</Source><InvDevice><Model>Apple
49
+ iPhone9,3</Model><Manufacturer>Apple</Manufacturer><ProductName>iPhone9,3</ProductName><SoftwareVersion>iOS
50
+ 14.4.2</SoftwareVersion><SerialNumber>C76TLUEMHG7F</SerialNumber><IMEI>355332088433360</IMEI><WiFiMAC>d4:dc:cd:d6:09:be</WiFiMAC><BluetoothMAC>d4:dc:cd:d6:09:e1</BluetoothMAC><UDID>84c87a9edf0c577227b96dcbe7bf45713c358ede</UDID><StoreAccountActive>True</StoreAccountActive><DoNotDisturbActive>True</DoNotDisturbActive><DeviceType>MN8X2QL</DeviceType><EASIdentifier>LU1R1J5V0H73JCTEJ2A732LI8G</EASIdentifier><DeviceName>iPhone
51
+ de: Eduard</DeviceName><InventoryTime>11.05.2021 22:04:19</InventoryTime></InvDevice><InvStorages><InvStorage><Type>Internal</Type><FreeSpace>16347488304</FreeSpace><TotalSpace>34359738368</TotalSpace><InventoryTime>11.05.2021
52
+ 22:04:19</InventoryTime></InvStorage></InvStorages><InvOS><Platform>iOS</Platform><Version>14.4.2</Version><Build>18D70</Build><InventoryTime>11.05.2021
53
+ 22:04:19</InventoryTime></InvOS><Security><PasscodeSet>Yes</PasscodeSet><EncryptionStatus>Enabled</EncryptionStatus></Security><ReportedLocation><Latitude>41.39850887104272</Latitude><Longitude>2.163043615588689</Longitude><Provider>Unknown</Provider><FixTime>29.04.2021
54
+ 13:55:02</FixTime><InventoryTime>29.04.2021 13:55:20</InventoryTime></ReportedLocation></Device><Device><ID>2</ID><User><ID>3</ID><Name>de
55
+ Lambert Quentin</Name><Email>quentin@rzilient.club</Email><Firstname>Quentin</Firstname><Lastname>de
56
+ Lambert</Lastname><Source>GUI</Source><Status>Active</Status><Created>22.04.2021
57
+ 06:51:53</Created><Modified>22.04.2021 06:51:53</Modified></User><Enrollment><ID>9</ID><User><ID>3</ID></User><Created>29.04.2021
58
+ 12:22:31</Created><Completed>29.04.2021 13:01:04</Completed><Type>Email</Type><Sender>eduard@rzilient.club</Sender></Enrollment><OnlineStatus>Active</OnlineStatus><LastReported>12.05.2021
59
+ 12:30:15</LastReported><LastReportedDays>0</LastReportedDays><LastReportedHours>2</LastReportedHours><LastReportedMinutes>90</LastReportedMinutes><IPAddress>37.223.114.163</IPAddress><MACAddress>DC:71:96:FB:8A:56</MACAddress><Platform>WindowsDesktop</Platform><Client><ID>2</ID><ManagementType>BuiltInMDM</ManagementType></Client><ConfigProfileDeployments
60
+ /><OSVersionName>Windows 10 Home (20H2)</OSVersionName><Status>AutoGenerated</Status><Created>29.04.2021
61
+ 13:01:04</Created><Modified>29.04.2021 13:01:04</Modified><Source>MiradoreOnline</Source><InvDevice><Model>ASUSTeK
62
+ COMPUTER INC. VivoBook_ASUSLaptop X712FA_X712FA</Model><Manufacturer>ASUSTeK
63
+ COMPUTER INC.</Manufacturer><ProductName>VivoBook_ASUSLaptop X712FA_X712FA</ProductName><SoftwareVersion>Windows
64
+ 10 Home (20H2)</SoftwareVersion><SerialNumber>K8N0CV07315233B</SerialNumber><DeviceName>QUENTIN</DeviceName><InventoryTime>12.05.2021
65
+ 12:30:16</InventoryTime></InvDevice><InvStorages><InvStorage><Type>Internal</Type><Volume>C:
66
+ OS</Volume><FreeSpace>382347399168</FreeSpace><TotalSpace>511137091584</TotalSpace><InventoryTime>12.05.2021
67
+ 12:30:16</InventoryTime></InvStorage></InvStorages><InvOS><Platform>WindowsDesktop</Platform><Version>10.0.19042.928</Version><Language>fr-FR</Language><InventoryTime>12.05.2021
68
+ 12:30:16</InventoryTime></InvOS><Security><PasscodeSet>Unknown</PasscodeSet><EncryptionStatus>Disabled</EncryptionStatus></Security></Device></Items></Content>'
69
+ recorded_at: Wed, 12 May 2021 14:00:02 GMT
70
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rzilient.online.miradore.com/API/Device?auth=&filters=(InvDevice.SerialNumber%20eq%20K8N0CV07315233B)&select=*,Category.*,InvDevice.*,InvStorage.*,InvOS.*,Enrollment.*,Client.*,User.*,Location.*,Security.*,ReportedLocation.*
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Cache-Control:
22
+ - no-cache
23
+ Pragma:
24
+ - no-cache
25
+ Content-Type:
26
+ - text/xml
27
+ Expires:
28
+ - "-1"
29
+ Server:
30
+ - Microsoft-IIS/10.0
31
+ X-Aspnet-Version:
32
+ - 4.0.30319
33
+ X-Powered-By:
34
+ - ASP.NET
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ Date:
38
+ - Wed, 12 May 2021 14:31:33 GMT
39
+ Content-Length:
40
+ - '2047'
41
+ body:
42
+ encoding: UTF-8
43
+ string: '<?xml version="1.0" encoding="utf-8"?><Content><Items count="1"><Device><ID>2</ID><User><ID>3</ID><Name>de
44
+ Lambert Quentin</Name><Email>quentin@rzilient.club</Email><Firstname>Quentin</Firstname><Lastname>de
45
+ Lambert</Lastname><Source>GUI</Source><Status>Active</Status><Created>22.04.2021
46
+ 06:51:53</Created><Modified>22.04.2021 06:51:53</Modified></User><Enrollment><ID>9</ID><User><ID>3</ID></User><Created>29.04.2021
47
+ 12:22:31</Created><Completed>29.04.2021 13:01:04</Completed><Type>Email</Type><Sender>eduard@rzilient.club</Sender></Enrollment><OnlineStatus>Active</OnlineStatus><LastReported>12.05.2021
48
+ 12:30:15</LastReported><LastReportedDays>0</LastReportedDays><LastReportedHours>2</LastReportedHours><LastReportedMinutes>121</LastReportedMinutes><IPAddress>37.223.114.163</IPAddress><MACAddress>DC:71:96:FB:8A:56</MACAddress><Platform>WindowsDesktop</Platform><Client><ID>2</ID><ManagementType>BuiltInMDM</ManagementType></Client><ConfigProfileDeployments
49
+ /><OSVersionName>Windows 10 Home (20H2)</OSVersionName><Status>AutoGenerated</Status><Created>29.04.2021
50
+ 13:01:04</Created><Modified>29.04.2021 13:01:04</Modified><Source>MiradoreOnline</Source><InvDevice><Model>ASUSTeK
51
+ COMPUTER INC. VivoBook_ASUSLaptop X712FA_X712FA</Model><Manufacturer>ASUSTeK
52
+ COMPUTER INC.</Manufacturer><ProductName>VivoBook_ASUSLaptop X712FA_X712FA</ProductName><SoftwareVersion>Windows
53
+ 10 Home (20H2)</SoftwareVersion><SerialNumber>K8N0CV07315233B</SerialNumber><DeviceName>QUENTIN</DeviceName><InventoryTime>12.05.2021
54
+ 12:30:16</InventoryTime></InvDevice><InvStorages><InvStorage><Type>Internal</Type><Volume>C:
55
+ OS</Volume><FreeSpace>382347399168</FreeSpace><TotalSpace>511137091584</TotalSpace><InventoryTime>12.05.2021
56
+ 12:30:16</InventoryTime></InvStorage></InvStorages><InvOS><Platform>WindowsDesktop</Platform><Version>10.0.19042.928</Version><Language>fr-FR</Language><InventoryTime>12.05.2021
57
+ 12:30:16</InventoryTime></InvOS><Security><PasscodeSet>Unknown</PasscodeSet><EncryptionStatus>Disabled</EncryptionStatus></Security></Device></Items></Content>'
58
+ recorded_at: Wed, 12 May 2021 14:31:34 GMT
59
+ recorded_with: VCR 6.0.0
data/lib/ruby/miradore.rb CHANGED
@@ -11,25 +11,14 @@ module Ruby
11
11
  class MspConnectionError < StandardError; end
12
12
 
13
13
  def self.api_key
14
- @@msp_api_key = ENV["MSP_API_KEY"]
14
+ ENV["MSP_API_KEY"]
15
15
  end
16
16
 
17
- def self.api_urls
17
+ def self.url
18
18
  {
19
- simple_v1: "https://%{subdomain}.online.miradore.com/API/Device?auth=%{auth}&select=ID,%{item}.*&filters=%{filter}",
20
- v1: "https://%{subdomain}.online.miradore.com/API/Device?auth=%{auth}&select=*,Category.*,InvDevice.*,InvStorage.*,InvOS.*,Enrollment.*,Client.*,User.*,Location.*,Security.*,ReportedLocation.*&filters=%{filter}",
21
- v2: "https://%{subdomain}.online.miradore.com/API/v2/Device/%{id}/%{method}"
22
- }
23
- end
24
-
25
- def self.url(version = :v1, *args)
26
- Miradore.api_urls[version] % {
27
- subdomain: args[0],
28
- item: args[1],
29
- id: args[1],
30
- method: args[2],
31
- filter: args[2][0].nil? ? nil : "(InvDevice.SerialNumber eq #{args[2][0]})",
32
- auth: Miradore.api_key
19
+ simple_v1: "https://%<subdomain>s.online.miradore.com/API/Device?auth=%<auth>s&select=ID,%<item>s.*&filters=%<filter>s",
20
+ v1: "https://%<subdomain>s.online.miradore.com/API/Device?auth=%<auth>s&select=*,Category.*,InvDevice.*,InvStorage.*,InvOS.*,Enrollment.*,Client.*,User.*,Location.*,Security.*,ReportedLocation.*&filters=%<filter>s",
21
+ v2: "https://%<subdomain>s.online.miradore.com/API/v2/Device/%<id>s/%<method>s"
33
22
  }
34
23
  end
35
24
 
@@ -39,24 +28,24 @@ module Ruby
39
28
 
40
29
  attr_reader :subdomain
41
30
 
42
- def self.all(subdomain, *args)
31
+ def self.all(**args)
43
32
  response = JSON.parse(
44
33
  Crack::XML.parse(
45
34
  get(
46
- Miradore.url(version, subdomain, class_name, args)
35
+ Miradore.url[version] % args.merge(item: class_name, auth: args.fetch(:auth, Miradore.api_key), filter: args.fetch(:filter, nil))
47
36
  ).body
48
37
  ).to_json,
49
38
  quirks_mode: true
50
39
  ).dig("Content", "Items", "Device")
51
- transform(response, subdomain)
40
+ transform(response, args)
52
41
  rescue StandardError
53
- raise MspConnectionError, "Error connecting to manager service provider"
42
+ raise MspConnectionError, "Error connecting Manager Service Provider"
54
43
  end
55
44
 
56
- def self.transform(response, subdomain)
57
- return response.map! { |e| Device.new(e.transform_keys(&:downcase), subdomain) } if response.is_a?(Array)
45
+ def self.transform(response, args = {})
46
+ return response.map! { |e| Device.new(e.transform_keys(&:downcase), args) } if response.is_a?(Array)
58
47
 
59
- Device.new(response.transform_keys(&:downcase), subdomain)
48
+ Device.new(response.transform_keys(&:downcase), args)
60
49
  end
61
50
 
62
51
  def self.version
@@ -73,11 +62,12 @@ module Ruby
73
62
  include HTTParty
74
63
  format :json
75
64
 
76
- attr_reader :subdomain
65
+ attr_reader :subdomain, :auth
77
66
 
78
- def initialize(json = nil, subdomain = nil)
67
+ def initialize(json = nil, args = {})
79
68
  super json
80
- @subdomain = subdomain
69
+ @subdomain = args[:subdomain]
70
+ @auth = args[:auth]
81
71
  remove_instance_variable(:@subdomain) if subdomain.nil?
82
72
  end
83
73
 
@@ -104,8 +94,9 @@ module Ruby
104
94
  private
105
95
 
106
96
  def http_method(*args)
107
- self.class.headers "X-API-Key" => Miradore.api_key
108
- self.class.method(args[0]).call(Miradore.url(:v2, subdomain, args[1], args[2]))
97
+ self.class.headers "X-API-Key" => auth || Miradore.api_key
98
+ url = Miradore.url[:v2] % { subdomain: subdomain, id: args[1], method: args[2] }
99
+ self.class.method(args[0]).call(url)
109
100
  rescue StandardError
110
101
  raise MspConnectionError, "Error connecting to manager service provider"
111
102
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ruby
4
4
  module Miradore
5
- VERSION = "1.0.0"
5
+ VERSION = "1.1.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-miradore
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduard
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-12 00:00:00.000000000 Z
11
+ date: 2021-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -114,6 +114,9 @@ files:
114
114
  - Rakefile
115
115
  - bin/console
116
116
  - bin/setup
117
+ - fixtures/vcr_cassettes/InvDevice.yml
118
+ - fixtures/vcr_cassettes/all_criteria.yml
119
+ - fixtures/vcr_cassettes/search_by_serial_number.yml
117
120
  - lib/ruby/miradore.rb
118
121
  - lib/ruby/miradore/version.rb
119
122
  - ruby-miradore-0.1.0.gem
@@ -127,7 +130,7 @@ metadata:
127
130
  homepage_uri: https://github.com/eddygarcas/ruby-miradore
128
131
  source_code_uri: https://github.com/eddygarcas/ruby-miradore
129
132
  changelog_uri: https://github.com/eddygarcas/ruby-miradore
130
- post_install_message:
133
+ post_install_message:
131
134
  rdoc_options: []
132
135
  require_paths:
133
136
  - lib
@@ -143,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
146
  version: '0'
144
147
  requirements: []
145
148
  rubygems_version: 3.1.6
146
- signing_key:
149
+ signing_key:
147
150
  specification_version: 4
148
151
  summary: Miradore is a MSP providing an API to get devices information as well s perform
149
152
  some security actions.