apidragon 1.4.6 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/VERSION +1 -1
- data/bin/apidragon +5 -3
- data/lib/apidragon/api.rb +4 -2
- data/lib/apidragon/macro.rb +3 -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: 1e0f39b383c33aa089b2dfec841bb0c1fbccab02
|
4
|
+
data.tar.gz: 722bb336398f57a3aa589ead8134b657a2981c2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 933e6b5c0377f74690915af568f781f2f2891f10b6ee367d869e318444c7421fcaaf0aa5402999f26d48d68ba792bfc1797658b743753d661f45d2f36f0a08f2
|
7
|
+
data.tar.gz: 64b0793f3aa9c7475391e9f58384c07dfd687d957c6264e9c3258be213f1c9bedfc9942370eaf4264d3239978616136be0d423ca15861af99b3e2db1a099ea8e
|
data/README.md
CHANGED
@@ -17,6 +17,8 @@ These classes run a sequence of API calls using a configuration file.
|
|
17
17
|
`[command]` is the name of one of the `macros` defined in the config file. So if I was using the config in the example,
|
18
18
|
I could run `apidragon do macro_1`, which would then call `testcall` and `testcall2` in the order specified.
|
19
19
|
- You can specify your own config file path by running `apidragon do [command] --config [filepath]`
|
20
|
+
- You can specify you password or username from the command line with `apidragon do [command] --username [username] --password [password]` (recommended if you don't want to store credentials in a file)
|
21
|
+
|
20
22
|
# Configuration:
|
21
23
|
Create `/tmp/apidragonconf.yaml`. It can contain any variables you need to access the API you are using, as well as `macros`.
|
22
24
|
- Example config:
|
@@ -99,6 +101,14 @@ Evaluates the given line of ruby code through `eval()`.
|
|
99
101
|
|
100
102
|
# Further Options
|
101
103
|
|
104
|
+
## stdout
|
105
|
+
Setting `stdout: true` for any call will ouput its response to STDOUT. Defaults to false.
|
106
|
+
- e.g.:
|
107
|
+
```yaml
|
108
|
+
testcall:
|
109
|
+
stdout: true
|
110
|
+
```
|
111
|
+
|
102
112
|
## record
|
103
113
|
Each call can have a `record` option, where you can specify what output variables you want to record to your config.
|
104
114
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
data/bin/apidragon
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'commander'
|
4
|
-
require 'apidragon'
|
4
|
+
#require 'apidragon'
|
5
5
|
require_relative '../lib/apidragon.rb'
|
6
6
|
|
7
7
|
Commander.configure do
|
8
8
|
program :name, 'apidragon'
|
9
|
-
program :version, '1.
|
9
|
+
program :version, '1.5.0'
|
10
10
|
program :description, 'CLI for automating api requests'
|
11
11
|
program :help, 'Author', 'Isaiah Thiessen <isaiah.thiessen@telus.com>'
|
12
12
|
|
@@ -14,8 +14,10 @@ Commander.configure do
|
|
14
14
|
c.syntax = 'apidragon do [options]'
|
15
15
|
c.description = 'Run "apidragon do [command]" to run the specified "command" defined in the config file.'
|
16
16
|
c.option '--config STRING', String, 'config file path'
|
17
|
+
c.option '--username STRING', String, 'pass your api username as an option'
|
18
|
+
c.option '--password STRING', String, 'pass your api password as an option'
|
17
19
|
c.action do |args, options|
|
18
|
-
api = Api.new args.first, options.config
|
20
|
+
api = Api.new args.first, options.config, options.username, options.password
|
19
21
|
api.go
|
20
22
|
end
|
21
23
|
end
|
data/lib/apidragon/api.rb
CHANGED
@@ -14,10 +14,12 @@ class Api < ArgBucket
|
|
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
16
|
|
17
|
-
def initialize(macro_name, config)
|
17
|
+
def initialize(macro_name, config, username, password)
|
18
18
|
@config_file = config
|
19
19
|
`mkdir #{PLUGINS}` unless Dir.exist? PLUGINS
|
20
20
|
@arg_bucket = {}
|
21
|
+
set 'username', username unless username.nil?
|
22
|
+
set 'password', password unless password.nil?
|
21
23
|
@config = load_config @config_file
|
22
24
|
import @config['vars']
|
23
25
|
@macro = @config['macros'][macro_name]
|
@@ -35,7 +37,7 @@ class Api < ArgBucket
|
|
35
37
|
@arg_bucket = call.run
|
36
38
|
if !value['record'].nil?
|
37
39
|
value['record'].each do |var|
|
38
|
-
add_config_var var, get(var)
|
40
|
+
add_config_var var, get(var) unless var=='function'
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
data/lib/apidragon/macro.rb
CHANGED
@@ -19,6 +19,7 @@ class Call < ArgBucket
|
|
19
19
|
check_constraints
|
20
20
|
@output = value['output']
|
21
21
|
@logging = value['logging']
|
22
|
+
@stdout = value['stdout']
|
22
23
|
set_call_args value['input'] unless value['input'].nil?
|
23
24
|
end
|
24
25
|
|
@@ -61,7 +62,7 @@ class Call < ArgBucket
|
|
61
62
|
@code = @response.code unless @response.is_a? String
|
62
63
|
xml_to_json
|
63
64
|
run_plugin_script unless @plugin.nil?
|
64
|
-
log_response unless @logging ==
|
65
|
+
log_response unless @logging == 'true'
|
65
66
|
parse_response unless @output.nil?
|
66
67
|
end
|
67
68
|
return @arg_bucket
|
@@ -104,6 +105,7 @@ class Call < ArgBucket
|
|
104
105
|
|
105
106
|
def parse_response
|
106
107
|
@response = JSON.parse @response
|
108
|
+
if @stdout==true then puts JSON.pretty_generate @response end
|
107
109
|
@output.each do |var|
|
108
110
|
if var.is_a? String
|
109
111
|
parser = Parser.new(var, nil, @response)
|
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.5.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-12-
|
11
|
+
date: 2015-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|