iaa 0.2.1 → 0.2.2
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/.gitignore +0 -1
- data/README.md +38 -0
- data/iaa.gemspec +3 -0
- data/lib/iaa/version.rb +1 -1
- data/lib/iaa.rb +1 -0
- data/lib/mappings/7600B.json +3 -3
- data/lib/server.rb +34 -0
- metadata +45 -2
- /data/tmp/{humans.txt → 7600A_1435792676.pdf} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 005ba6a20dff1422fdea89b8494f77d6ad29d4a5
|
4
|
+
data.tar.gz: 48686644bc8ef965d8640617aed3e5c989d7e459
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5bf4dfd816e1a569e8536d20daae82d7e2fab57cd7f957fcc418bb7006fcecf65a699b17d4a8f5813c1967128f94f6868ea9b79128585b727dfd19c04ed3171
|
7
|
+
data.tar.gz: 51933649d694db24e526c481cf92b00b3beb3e6519fc216981822f2e9826c074ad702ab9a06a028d7b2385fa929cd3e0c663f4792546cb61664d8f2a941179f8
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -78,6 +78,44 @@ You could also use these JSON files to create IAA form fillers in other language
|
|
78
78
|
|
79
79
|
The PDFs in `lib/pdfs` have been modified somewhat from their originals. Visually, nothing has changed, but a few of the underlying form field names have been changed. For example, one field, "GT & C #" caused a lot of trouble because of that pesky ampersand. So, the field value in the PDF was changed to "gt_and_c_number".
|
80
80
|
|
81
|
+
### API Server
|
82
|
+
|
83
|
+
This gem includes an API server! It's just a small, mountable Sinatra application.
|
84
|
+
|
85
|
+
To set up, just mount the server inside of a Rails app, for example--or just run it standalone:
|
86
|
+
|
87
|
+
Create a `Gemfile`:
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
source 'https://rubygems.org'
|
91
|
+
|
92
|
+
gem 'iaa'
|
93
|
+
gem 'thin'
|
94
|
+
```
|
95
|
+
|
96
|
+
Run `bundle`.
|
97
|
+
|
98
|
+
Create a `config.ru`:
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
require 'bundler/setup'
|
102
|
+
require 'iaa'
|
103
|
+
|
104
|
+
run Rack::URLMap.new(
|
105
|
+
'/iaa' => IAA::Server
|
106
|
+
)
|
107
|
+
```
|
108
|
+
|
109
|
+
And run with:
|
110
|
+
|
111
|
+
```sh
|
112
|
+
$ bundle exec thin start
|
113
|
+
```
|
114
|
+
|
115
|
+
#### POST /7600a
|
116
|
+
|
117
|
+
POST some JSON of keys and values that match the attributes in `lib/mappings/7600a.json` and get back a PDF response.
|
118
|
+
|
81
119
|
## Docker Compose Usage
|
82
120
|
|
83
121
|
1. Make sure that [Docker Compose](https://docs.docker.com/compose/install/) is installed.
|
data/iaa.gemspec
CHANGED
@@ -29,8 +29,11 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_runtime_dependency "pdf-forms"
|
30
30
|
spec.add_runtime_dependency "cliver"
|
31
31
|
spec.add_runtime_dependency "pry"
|
32
|
+
spec.add_runtime_dependency "sinatra"
|
32
33
|
|
33
34
|
spec.add_development_dependency "bundler", "~> 1.10"
|
34
35
|
spec.add_development_dependency "rake", "~> 10.0"
|
35
36
|
spec.add_development_dependency "rspec"
|
37
|
+
spec.add_development_dependency "rack-test"
|
38
|
+
spec.add_development_dependency "webmock"
|
36
39
|
end
|
data/lib/iaa/version.rb
CHANGED
data/lib/iaa.rb
CHANGED
data/lib/mappings/7600B.json
CHANGED
@@ -132,7 +132,7 @@
|
|
132
132
|
},
|
133
133
|
{
|
134
134
|
"name": "Cumulative Funding Changes3",
|
135
|
-
"attribute_name": "
|
135
|
+
"attribute_name": "cumulative_funding_changes3",
|
136
136
|
"type": "Text",
|
137
137
|
"value": null,
|
138
138
|
"options": null
|
@@ -202,7 +202,7 @@
|
|
202
202
|
},
|
203
203
|
{
|
204
204
|
"name": "Total Modified Obligation3",
|
205
|
-
"attribute_name": "
|
205
|
+
"attribute_name": "total_modified_obligation3",
|
206
206
|
"type": "Text",
|
207
207
|
"value": null,
|
208
208
|
"options": null
|
@@ -1247,7 +1247,7 @@
|
|
1247
1247
|
},
|
1248
1248
|
{
|
1249
1249
|
"name": "Additional POC Requesting Agency Name1",
|
1250
|
-
"attribute_name": "
|
1250
|
+
"attribute_name": "additional_point_of_contact_requesting_agency_name1",
|
1251
1251
|
"type": "Text",
|
1252
1252
|
"value": null,
|
1253
1253
|
"options": null
|
data/lib/server.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'sinatra'
|
2
|
+
require 'json'
|
3
|
+
require 'tempfile'
|
4
|
+
|
5
|
+
module IAA
|
6
|
+
class Server < Sinatra::Base
|
7
|
+
post '/7600a' do
|
8
|
+
# Get the params
|
9
|
+
json_params = JSON.parse(request.body.read)
|
10
|
+
|
11
|
+
# Create and fill the form
|
12
|
+
form = IAA::Form7600A.new
|
13
|
+
json_params.each_pair do |key, value|
|
14
|
+
form.send("#{key}=", value)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Save the form
|
18
|
+
file = form.save
|
19
|
+
|
20
|
+
# Get the bytes
|
21
|
+
bytes = File.read(file)
|
22
|
+
|
23
|
+
# Delete the file
|
24
|
+
File.delete(file)
|
25
|
+
|
26
|
+
# Put the bytes in a tempfile
|
27
|
+
tmpfile = Tempfile.new('response.pdf')
|
28
|
+
tmpfile.write(bytes)
|
29
|
+
|
30
|
+
# Let the user download the file
|
31
|
+
send_file(tmpfile)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iaa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alan deLevie
|
@@ -53,6 +53,20 @@ dependencies:
|
|
53
53
|
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: sinatra
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: bundler
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,6 +109,34 @@ dependencies:
|
|
95
109
|
- - ">="
|
96
110
|
- !ruby/object:Gem::Version
|
97
111
|
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rack-test
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: webmock
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
98
140
|
description: Helps you create IAAs
|
99
141
|
email:
|
100
142
|
- alan.delevie@gsa.gov
|
@@ -124,7 +166,8 @@ files:
|
|
124
166
|
- lib/mappings/7600B.json
|
125
167
|
- lib/pdfs/7600A.pdf
|
126
168
|
- lib/pdfs/7600B.pdf
|
127
|
-
-
|
169
|
+
- lib/server.rb
|
170
|
+
- tmp/7600A_1435792676.pdf
|
128
171
|
homepage: https://github.com/18f/iaa-gem
|
129
172
|
licenses:
|
130
173
|
- See LICENSE.md
|
File without changes
|