blockspring 0.0.3
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 +1 -0
- data/README.md +18 -0
- data/blockspring.gemspec +22 -0
- data/lib/blockspring.rb +85 -0
- data/lib/blockspring/version.rb +3 -0
- metadata +78 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ec78e591f079dee66f3eb2ae395457ca9bff491a
|
4
|
+
data.tar.gz: 26c21db69c8b4c945b44c551fe42d4a03ca1f824
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3fc30637ddac01ad93f2b931e065aeca92a542687e8aa48dc6f1500c872a0f96a541910c8c2ae9ea3e3457caa3d3e3e20197e5c1e061b8e25a974fc8c5a9fd28
|
7
|
+
data.tar.gz: 4e81f5740e1917564204a0c58b40e3498677559c71605f0255468050daee5a036f61593be33a1de0408a94af44e1db163cc8d44ae333bbaa5205ac2d2ebbe3ca
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
.DS_Store
|
data/README.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
blockspring-ruby
|
2
|
+
================
|
3
|
+
|
4
|
+
Gem for local dev with Blockspring.
|
5
|
+
|
6
|
+
http://rubygems.org/gems/blockspring
|
7
|
+
|
8
|
+
To use
|
9
|
+
======
|
10
|
+
In a gemfile: `gem 'blockspring'`
|
11
|
+
|
12
|
+
Not in a gemfile:
|
13
|
+
```
|
14
|
+
$ gem install 'blockspring'
|
15
|
+
|
16
|
+
# In a ruby script
|
17
|
+
require 'blockspring'
|
18
|
+
```
|
data/blockspring.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'blockspring/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'blockspring'
|
7
|
+
spec.version = Blockspring::VERSION
|
8
|
+
spec.date = '2014-10-22'
|
9
|
+
spec.summary = "This gem lets you locally define a Blockspring function."
|
10
|
+
spec.description = "Gem for defining Blockspring functions locally."
|
11
|
+
spec.authors = ["Don Pinkus", "Paul Katsen", "Jason Tokoph"]
|
12
|
+
spec.email = 'founders@blockspring.com'
|
13
|
+
spec.files = `git ls-files -z`.split("\x0")
|
14
|
+
spec.homepage = 'https://www.blockspring.com'
|
15
|
+
spec.license = 'MIT'
|
16
|
+
|
17
|
+
spec.require_paths = ["lib"]
|
18
|
+
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
20
|
+
|
21
|
+
spec.add_dependency "rest-client", "= 1.6.7"
|
22
|
+
end
|
data/lib/blockspring.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'json'
|
3
|
+
require 'base64'
|
4
|
+
require 'mime/types'
|
5
|
+
|
6
|
+
module Blockspring
|
7
|
+
def self.run(block, data)
|
8
|
+
api_key = ENV['BLOCKSPRING_API_KEY']
|
9
|
+
|
10
|
+
if(!api_key)
|
11
|
+
raise "BLOCKSPRING_API_KEY environment variable not set"
|
12
|
+
end
|
13
|
+
|
14
|
+
block_parts = block.split("/")
|
15
|
+
block = block_parts[block_parts.length - 1]
|
16
|
+
|
17
|
+
response = RestClient.post "https://sender.blockspring.com/api_v1/blocks/#{block}?api_key=#{api_key}", data.to_json, :content_type => :json, :accept => :json
|
18
|
+
|
19
|
+
body = JSON.parse(response.body)
|
20
|
+
|
21
|
+
begin
|
22
|
+
body["results"] = JSON.parse(body["results"])
|
23
|
+
return body
|
24
|
+
rescue
|
25
|
+
return body
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.define(block)
|
30
|
+
@request = {
|
31
|
+
params: {}
|
32
|
+
}
|
33
|
+
|
34
|
+
# From STDIN
|
35
|
+
stdin = STDIN.tty? ? "{}" : $stdin.read
|
36
|
+
stdin_params = JSON.parse(stdin)
|
37
|
+
|
38
|
+
@request[:params] = stdin_params
|
39
|
+
|
40
|
+
# From sysargs
|
41
|
+
sys_args = Hash[ ARGV.flat_map{|s| s.scan(/--?([^=\s]+)(?:=(\S+))?/) } ]
|
42
|
+
|
43
|
+
sys_args.each do |param_name, param_value|
|
44
|
+
@request[:params][param_name] = param_value
|
45
|
+
end
|
46
|
+
|
47
|
+
# Set response
|
48
|
+
@response = Response.new
|
49
|
+
|
50
|
+
block.call(@request, @response)
|
51
|
+
end
|
52
|
+
|
53
|
+
class Response
|
54
|
+
def initialize
|
55
|
+
@result = {
|
56
|
+
data: {},
|
57
|
+
files: {},
|
58
|
+
errors: nil
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
def addOutput(name, value)
|
63
|
+
@result[:data][name] = value
|
64
|
+
return self
|
65
|
+
end
|
66
|
+
|
67
|
+
def addFileOutput(name, filepath)
|
68
|
+
filename = File.basename(filepath)
|
69
|
+
b64_file_contents = Base64.encode64(File.read(filepath))
|
70
|
+
mime_type_object = MIME::Types.of(filename).first
|
71
|
+
mime_type = mime_type_object ? mime_type_object.content_type : nil
|
72
|
+
|
73
|
+
@result[:files][name] = {
|
74
|
+
filename: filename,
|
75
|
+
mimeType: mime_type,
|
76
|
+
data: b64_file_contents
|
77
|
+
}
|
78
|
+
return self
|
79
|
+
end
|
80
|
+
|
81
|
+
def end
|
82
|
+
puts @result.to_json
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: blockspring
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Don Pinkus
|
8
|
+
- Paul Katsen
|
9
|
+
- Jason Tokoph
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2014-10-22 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bundler
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.6'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '1.6'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rest-client
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.6.7
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.6.7
|
43
|
+
description: Gem for defining Blockspring functions locally.
|
44
|
+
email: founders@blockspring.com
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- ".gitignore"
|
50
|
+
- README.md
|
51
|
+
- blockspring.gemspec
|
52
|
+
- lib/blockspring.rb
|
53
|
+
- lib/blockspring/version.rb
|
54
|
+
homepage: https://www.blockspring.com
|
55
|
+
licenses:
|
56
|
+
- MIT
|
57
|
+
metadata: {}
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
requirements: []
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 2.2.2
|
75
|
+
signing_key:
|
76
|
+
specification_version: 4
|
77
|
+
summary: This gem lets you locally define a Blockspring function.
|
78
|
+
test_files: []
|