This commit is contained in:
Tommy Parnell
2016-01-24 00:45:40 -05:00
commit 48e2440f58
20 changed files with 4225 additions and 0 deletions

37
.gitignore vendored Normal file
View File

@@ -0,0 +1,37 @@
.idea
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/spec/examples.txt
/test/tmp/
/test/version_tmp/
/tmp/
## Specific to RubyMotion:
.dat*
.repl_history
build/
## Documentation cache and generated files:
/.yardoc/
/_yardoc/
/doc/
/rdoc/
## Environment normalization:
/.bundle/
/vendor/bundle
/lib/bundler/man/
# for a library or gem, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# Gemfile.lock
# .ruby-version
# .ruby-gemset
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc

12
Gemfile Normal file
View File

@@ -0,0 +1,12 @@
source "https://rubygems.org/"
# App Stack
gem "sinatra", "~> 1.4"
gem 'indico'
group :development do
gem "rake", "~> 10.0"
gem "minitest", "~> 5.2"
gem "rack-test", "~> 0.6"
end

35
Gemfile.lock Normal file
View File

@@ -0,0 +1,35 @@
GEM
remote: https://rubygems.org/
specs:
chunky_png (1.3.5)
indico (0.7.0)
inifile (~> 3.0.0)
oily_png (~> 1.2.0)
inifile (3.0.0)
minitest (5.8.3)
oily_png (1.2.0)
chunky_png (~> 1.3.1)
rack (1.6.4)
rack-protection (1.5.3)
rack
rack-test (0.6.3)
rack (>= 1.0)
rake (10.4.2)
sinatra (1.4.6)
rack (~> 1.4)
rack-protection (~> 1.4)
tilt (>= 1.3, < 3)
tilt (1.4.1)
PLATFORMS
x64-mingw32
DEPENDENCIES
indico
minitest (~> 5.2)
rack-test (~> 0.6)
rake (~> 10.0)
sinatra (~> 1.4)
BUNDLED WITH
1.10.6

1
README.md Normal file
View File

@@ -0,0 +1 @@
Simple Sinatra app to upload an image to indico and get any emotions in the file

9
Rakefile Normal file
View File

@@ -0,0 +1,9 @@
%w{ bundler find rake/testtask}.each { |lib| require lib }
task :default => :spec
Rake::TestTask.new(:spec) do |t|
t.test_files = FileList['spec/*_spec.rb']
end

3893
cacert.pem Normal file

File diff suppressed because it is too large Load Diff

18
config.ru Normal file
View File

@@ -0,0 +1,18 @@
# Load path and gems/bundler
$LOAD_PATH << File.expand_path(File.dirname(__FILE__))
require "bundler"
Bundler.require
# Local config
require "find"
%w{config/initializers lib}.each do |load_path|
Find.find(load_path) { |f|
require f unless f.match(/\/\..+$/) || File.directory?(f)
}
end
# Load app
require "happy_or_sad"
run HappyOrSad

View File

@@ -0,0 +1 @@

19
happy_or_sad.rb Normal file
View File

@@ -0,0 +1,19 @@
require 'indico'
require 'base64'
require 'openssl'
class HappyOrSad < Sinatra::Base
set :public_folder => "public", :static => true
get "/" do
erb :welcome
end
post '/upload' do
puts encoded = Base64.encode64(params['myfile'][:tempfile].read)
Indico.api_key = ENV['indicoApiKey']
Indico.fer(encoded)
end
end

0
lib/.gitkeep Normal file
View File

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

0
public/images/.gitkeep Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

116
public/stylesheets/main.css Normal file
View File

@@ -0,0 +1,116 @@
@media screen {
/* --- Reset Styles --- */
* {
list-style: none;
margin: 0;
padding: 0;
}
html, body {
height: 100%;
width: 100%;
}
/* --- Welcome Page Styles --- */
body {
background: #eee;
color: #333;
font-family: Sans-Serif;
line-height: 18px;
}
.wrapper {
background: #fff;
-moz-box-shadow: 0 0 10px rgba(0,0,0,.3);
-webkit-box-shadow: 0 0 10px rgba(0,0,0,.3);
box-shadow: 0 0 10px rgba(0,0,0,.3);
margin: 16px auto;
max-width: 960px;
padding: 2.25%; /* 18px / 800px */
width: 85%;
}
h1 {
font-size: 36px;
line-height: 54px;
}
h2 {
border-bottom: 2px solid #ccc;
font-size: 24px;
line-height: 36px;
margin-bottom: 16px;
}
h3 {
font-size: 18px;
line-height: 36px;
}
p {
margin-bottom: 18px;
}
.main {
overflow: hidden;
}
.content {
float: left;
width: 60%; /* 480px / 800px */
}
.sidebar {
background: #eee;
border: 1px solid #ccc;
float: right;
padding: 2.08333333333%; /* 5px / 240px */
width: 30%; /* 240px / 800px */
}
.sidebar ul {
font-size: 14px;
}
.branding {
clear: both;
}
footer.branding {
border-top: 2px solid #ccc;
margin-top: 20px;
padding-top: 20px;
}
}
@media screen and (max-width: 600px) {
.wrapper {
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
width: auto;
}
.content, .sidebar {
float: none;
width: 100%;
}
.sidebar {
background: transparent;
border: none;
border-top: 2px solid #ccc;
padding: 0;
}
h1 {
font-size: 24px;
line-height: 36px;
}
h2 {
font-size: 18px;
line-height: 24px;
}
}

14
spec/happy_or_sad_spec.rb Normal file
View File

@@ -0,0 +1,14 @@
require_relative "spec_helper"
require_relative "../happy_or_sad.rb"
def app
HappyOrSad
end
describe HappyOrSad do
it "responds with a welcome message" do
get '/'
last_response.body.must_include 'Welcome to the Sinatra Template!'
end
end

23
spec/spec_helper.rb Normal file
View File

@@ -0,0 +1,23 @@
# encoding: UTF-8
require 'bundler'
Bundler.setup
Bundler.require
ENV["RACK_ENV"] = "test"
require 'minitest/pride'
require 'minitest/autorun'
require 'minitest/spec'
require 'rack/test'
require "find"
%w{./config/initializers ./lib}.each do |load_path|
Find.find(load_path) { |f| require f if f.match(/\.rb$/) }
end
class MiniTest::Spec
include Rack::Test::Methods
end

37
views/layout.erb Normal file
View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
<title>HappyOrSad</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/stylesheets/main.css" />
</head>
<body>
<div class="wrapper">
<header class="branding">
<h1>HappyOrSad</h1>
</header>
<div class="main">
<%= yield %>
</div>
<footer class="branding">
<small>&copy; <%= Time.now.year %></small>
</footer>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<!--[if lt IE 7]>
<script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js"></script>
<script>window.attachEvent("onload",function(){CFInstall.check({mode:"overlay"})})</script>
<![endif]-->
</body>

10
views/welcome.erb Normal file
View File

@@ -0,0 +1,10 @@
<h2>Sinatra Template Default Page</h2>
<div class="content">
<h2>File Uploader</h2>
<form method="post" enctype="multipart/form-data" action="upload">
<input type="file" name="myfile" />
<br />
<input type="submit" value="Upload!" />
</form>
</div>