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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cbfdc4c99664b9240ec86476fe451d3b31908463
4
- data.tar.gz: fcbf2bc976782fd71608493c588d484fb9993ca0
3
+ metadata.gz: 005ba6a20dff1422fdea89b8494f77d6ad29d4a5
4
+ data.tar.gz: 48686644bc8ef965d8640617aed3e5c989d7e459
5
5
  SHA512:
6
- metadata.gz: 0879a001ae584ff43a4fa34abd8cbd4d410dad31d7a3d781c04651e3db8e9d388a3c4f76569734badfa4a2e9e2a16129119f60b7567795d6552a54f9b91647ae
7
- data.tar.gz: 442210b053b480f0614cca0055da3df30386ca682aa5038f37dfb1e7a0c2b626a0ab57a89c780488702d1641473b5979d41e2f5f69f215ed81dc3d6c6ca2770b
6
+ metadata.gz: b5bf4dfd816e1a569e8536d20daae82d7e2fab57cd7f957fcc418bb7006fcecf65a699b17d4a8f5813c1967128f94f6868ea9b79128585b727dfd19c04ed3171
7
+ data.tar.gz: 51933649d694db24e526c481cf92b00b3beb3e6519fc216981822f2e9826c074ad702ab9a06a028d7b2385fa929cd3e0c663f4792546cb61664d8f2a941179f8
data/.gitignore CHANGED
@@ -6,5 +6,4 @@
6
6
  /doc/
7
7
  /pkg/
8
8
  /spec/reports/
9
- /tmp/*
10
9
  !/tmp/humans.txt
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
@@ -1,3 +1,3 @@
1
1
  module IAA
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
data/lib/iaa.rb CHANGED
@@ -6,6 +6,7 @@ require 'pry'
6
6
  require 'base_form'
7
7
  require 'form_7600a'
8
8
  require 'form_7600b'
9
+ require 'server'
9
10
 
10
11
  module IAA
11
12
  module Util
@@ -132,7 +132,7 @@
132
132
  },
133
133
  {
134
134
  "name": "Cumulative Funding Changes3",
135
- "attribute_name": "cumulative_funding_changes1",
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": "total_modified_obligation2",
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": "additional_point_of_contact_requesting_agency_name2",
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.1
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
- - tmp/humans.txt
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