apidragon 1.1.2 → 1.2.0
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 +4 -4
- data/README.md +21 -1
- data/VERSION +1 -1
- data/apidragon.gemspec +3 -3
- data/lib/apidragon/api.rb +0 -1
- data/lib/apidragon/macro.rb +16 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acb768a3cd899d976484f3512f5980991c528119
|
4
|
+
data.tar.gz: 1d9fcba41c065e6b6b1c62b00aef7b69af90031f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81fc3a0bd3bef83826c3ca21c21e919e67b52c90480111585f688b92dff6fba42720d37d149115f632a2da72169ff416ab250c5d721abe7cc984a7056ed1d395
|
7
|
+
data.tar.gz: 58374a6e4d1740c0681ff3150624e7ff6e9e8f163e9af859e7087f75b136a47179d697b2ba0bf9ec646dbae21e5c57906df93f5a62195f202294698fb618093f
|
data/README.md
CHANGED
@@ -53,7 +53,6 @@ Currently supported modes:
|
|
53
53
|
- `put`
|
54
54
|
- `delete`
|
55
55
|
- `curl_get`, `curl_post` (uses curl instead of the `rest-client` gem for special cases)
|
56
|
-
- `eval` (not yet stable)
|
57
56
|
- Planned: `curl_put`, `curl_delete`
|
58
57
|
|
59
58
|
# Further Options
|
@@ -92,9 +91,30 @@ For each call, set `logging` to `true` to enable or `false` to disable.
|
|
92
91
|
logging: true
|
93
92
|
```
|
94
93
|
|
94
|
+
## plugin
|
95
|
+
Each call can refer to a plugin file. The Plugin class should follow the structure outlined below.
|
96
|
+
- e.g.:
|
97
|
+
- example.rb (@ /tmp/apidragonplugins/)
|
98
|
+
```ruby
|
99
|
+
class Plugin # class must be named Plugin
|
100
|
+
def initialize(message) # pass only one parameter, which will be equal to the body of the call's http response
|
101
|
+
@message = message
|
102
|
+
end
|
103
|
+
|
104
|
+
def run # main function must be named run and take no parameters. Run all your operations from here
|
105
|
+
puts @message
|
106
|
+
end
|
107
|
+
end
|
108
|
+
```
|
109
|
+
```yaml
|
110
|
+
testcall:
|
111
|
+
plugin: example #name of file minus .rb extension
|
112
|
+
```
|
113
|
+
|
95
114
|
|
96
115
|
# Planned Features
|
97
116
|
- The ability to include custom scripts at the end of a call for extensibility
|
117
|
+
- Support for multiple instances of variable names for different api's
|
98
118
|
|
99
119
|
#License
|
100
120
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/apidragon.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: apidragon 1.
|
5
|
+
# stub: apidragon 1.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "apidragon"
|
9
|
-
s.version = "1.
|
9
|
+
s.version = "1.2.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["isaiah thiessen"]
|
14
|
-
s.date = "2015-
|
14
|
+
s.date = "2015-12-01"
|
15
15
|
s.description = "Ruby based CLI for accessing veracode's api"
|
16
16
|
s.email = "isaiah.thiessen@live.ca"
|
17
17
|
s.executables = ["apidragon"]
|
data/lib/apidragon/api.rb
CHANGED
@@ -13,7 +13,6 @@ class Api < ArgBucket
|
|
13
13
|
# Uses the configuration data in config.yaml to run a sequence of api calls.
|
14
14
|
# All variables are dumped into a variable bucket (@arg_bucket)
|
15
15
|
# so that they can be used as parameters for function calls.
|
16
|
-
attr_accessor :macro
|
17
16
|
|
18
17
|
def initialize(macro_name)
|
19
18
|
@arg_bucket = {}
|
data/lib/apidragon/macro.rb
CHANGED
@@ -6,7 +6,13 @@ class Call < ArgBucket
|
|
6
6
|
|
7
7
|
def initialize(input, output, mode, function, args, logging=false, plugin=nil)
|
8
8
|
@arg_bucket = args
|
9
|
-
|
9
|
+
@plugin = plugin
|
10
|
+
begin
|
11
|
+
require_relative "#{PLUGINS}#{plugin}" unless plugin.nil?
|
12
|
+
rescue LoadError
|
13
|
+
puts 'Plugin failed to load. Custom functions will not be run.'
|
14
|
+
@plugin = nil
|
15
|
+
end
|
10
16
|
username = get 'username'
|
11
17
|
password = get 'password'
|
12
18
|
check_constraints mode, function
|
@@ -76,12 +82,21 @@ class Call < ArgBucket
|
|
76
82
|
puts 'Internal Error or requested resource was not found.'
|
77
83
|
end
|
78
84
|
if !@response.nil?
|
85
|
+
run_plugin_script unless @plugin.nil?
|
79
86
|
log_response unless @logging == false
|
80
87
|
parse_response unless @output.nil?
|
81
88
|
end
|
82
89
|
return @arg_bucket
|
83
90
|
end
|
84
91
|
|
92
|
+
def run_plugin_script
|
93
|
+
if !@response.is_a? String
|
94
|
+
custom = Plugin.new(@response.body).run
|
95
|
+
else
|
96
|
+
custom = Plugin.new(@response).run
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
85
100
|
def log_response
|
86
101
|
logger = ResponseLogger.new
|
87
102
|
if !@response.is_a? String
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apidragon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- isaiah thiessen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|