lm_rest 1.0.1
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 +7 -0
- data/.gitignore +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +8 -0
- data/LICENSE +20 -0
- data/README.md +132 -0
- data/Rakefile +10 -0
- data/api.json +386 -0
- data/bin/console +11 -0
- data/bin/ds_checker.rb +261 -0
- data/bin/setup +7 -0
- data/lib/lm_rest.rb +7 -0
- data/lib/lm_rest/api_client.rb +326 -0
- data/lib/lm_rest/request_params.rb +12 -0
- data/lib/lm_rest/resource.rb +47 -0
- data/lib/lm_rest/version.rb +3 -0
- data/lm_rest.gemspec +34 -0
- metadata +131 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
module LMRest
|
2
|
+
module RequestParams
|
3
|
+
def self.parameterize(params_hash)
|
4
|
+
unless params_hash.empty?
|
5
|
+
params_hash.keys.each.with_index.reduce('?') do |string, (key, index)|
|
6
|
+
index > 0 ? string << '&' : ''
|
7
|
+
string << "#{key}=#{params_hash.fetch(key)}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module LMRest
|
2
|
+
class Resource
|
3
|
+
|
4
|
+
def initialize(properties)
|
5
|
+
properties.each do |key, value|
|
6
|
+
instance_variable_set(:"@#{key}", value)
|
7
|
+
define_singleton_method(key.intern) { instance_variable_get("@#{key}") }
|
8
|
+
define_singleton_method("#{key}=".intern) do |new_value|
|
9
|
+
instance_variable_set("@#{key}", new_value)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_h
|
15
|
+
instance_variables.map do |var|
|
16
|
+
[var[1..-1].to_s, instance_variable_get(var)]
|
17
|
+
end.to_h
|
18
|
+
end
|
19
|
+
|
20
|
+
class << self
|
21
|
+
|
22
|
+
def parse(body)
|
23
|
+
begin
|
24
|
+
if body.key? 'items'
|
25
|
+
parse_collection(body['items'])
|
26
|
+
else
|
27
|
+
parse_object(body)
|
28
|
+
end
|
29
|
+
|
30
|
+
rescue => e
|
31
|
+
puts e
|
32
|
+
puts "Response body: " + body
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def parse_collection(items)
|
37
|
+
items.map do |item|
|
38
|
+
new(item)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def parse_object(item)
|
43
|
+
new(item)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lm_rest.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'lm_rest/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'lm_rest'
|
8
|
+
spec.version = LMRest::VERSION
|
9
|
+
spec.authors = ['Michael Rodrigues']
|
10
|
+
spec.email = ['mikebrodrigues@gmail.com']
|
11
|
+
|
12
|
+
spec.summary = 'API Wrapper for LogicMonitor Rest API v2.'
|
13
|
+
spec.description = 'Interact programmatically with your LogicMonitor account via the REST API.'
|
14
|
+
spec.homepage = 'https://github.com/mikerodrigues/lm_rest'
|
15
|
+
|
16
|
+
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
17
|
+
# delete this section to allow pushing this gem to any host.
|
18
|
+
if spec.respond_to?(:metadata)
|
19
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
20
|
+
else
|
21
|
+
fail 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
22
|
+
end
|
23
|
+
|
24
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
|
+
spec.bindir = 'bin'
|
26
|
+
spec.executables = 'ds_checker.rb'
|
27
|
+
spec.require_paths = ['lib']
|
28
|
+
|
29
|
+
spec.add_development_dependency 'bundler'
|
30
|
+
spec.add_development_dependency 'rake'
|
31
|
+
spec.add_development_dependency 'minitest'
|
32
|
+
spec.add_dependency 'rest-client'
|
33
|
+
spec.add_dependency 'json', '~> 2.1.0'
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lm_rest
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michael Rodrigues
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-03-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rest-client
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.1.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.1.0
|
83
|
+
description: Interact programmatically with your LogicMonitor account via the REST
|
84
|
+
API.
|
85
|
+
email:
|
86
|
+
- mikebrodrigues@gmail.com
|
87
|
+
executables:
|
88
|
+
- ds_checker.rb
|
89
|
+
extensions: []
|
90
|
+
extra_rdoc_files: []
|
91
|
+
files:
|
92
|
+
- ".gitignore"
|
93
|
+
- ".travis.yml"
|
94
|
+
- Gemfile
|
95
|
+
- LICENSE
|
96
|
+
- README.md
|
97
|
+
- Rakefile
|
98
|
+
- api.json
|
99
|
+
- bin/console
|
100
|
+
- bin/ds_checker.rb
|
101
|
+
- bin/setup
|
102
|
+
- lib/lm_rest.rb
|
103
|
+
- lib/lm_rest/api_client.rb
|
104
|
+
- lib/lm_rest/request_params.rb
|
105
|
+
- lib/lm_rest/resource.rb
|
106
|
+
- lib/lm_rest/version.rb
|
107
|
+
- lm_rest.gemspec
|
108
|
+
homepage: https://github.com/mikerodrigues/lm_rest
|
109
|
+
licenses: []
|
110
|
+
metadata:
|
111
|
+
allowed_push_host: https://rubygems.org
|
112
|
+
post_install_message:
|
113
|
+
rdoc_options: []
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
requirements: []
|
127
|
+
rubygems_version: 3.0.3
|
128
|
+
signing_key:
|
129
|
+
specification_version: 4
|
130
|
+
summary: API Wrapper for LogicMonitor Rest API v2.
|
131
|
+
test_files: []
|