Skip to content

Commit 3c9db4f

Browse files
committed
init
0 parents  commit 3c9db4f

File tree

13,057 files changed

+1190670
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

13,057 files changed

+1190670
-0
lines changed

Diff for: .gitignore

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
2+
#
3+
# If you find yourself ignoring temporary files generated by your text editor
4+
# or operating system, you probably want to add a global ignore instead:
5+
# git config --global core.excludesfile '~/.gitignore_global'
6+
7+
# Ignore bundler config.
8+
/.bundle
9+
10+
# Ignore the default SQLite database.
11+
/db/*.sqlite3
12+
/db/*.sqlite3-journal
13+
14+
# Ignore all logfiles and tempfiles.
15+
/log/*
16+
!/log/.keep
17+
/tmp

Diff for: Gemfile

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
source 'https://rubygems.org'
2+
3+
4+
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5+
gem 'rails', '4.2.3'
6+
# Use sqlite3 as the database for Active Record
7+
gem 'sqlite3'
8+
# Use SCSS for stylesheets
9+
gem 'sass-rails', '~> 5.0'
10+
# Use Uglifier as compressor for JavaScript assets
11+
gem 'uglifier', '>= 1.3.0'
12+
# Use CoffeeScript for .coffee assets and views
13+
gem 'coffee-rails', '~> 4.1.0'
14+
# See https://github.com/rails/execjs#readme for more supported runtimes
15+
# gem 'therubyracer', platforms: :ruby
16+
17+
# Use jquery as the JavaScript library
18+
gem 'jquery-rails'
19+
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
20+
gem 'turbolinks'
21+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
22+
gem 'jbuilder', '~> 2.0'
23+
# bundle exec rake doc:rails generates the API under doc/api.
24+
gem 'sdoc', '~> 0.4.0', group: :doc
25+
26+
gem 'foreman', '~> 0.82.0'
27+
28+
# Use ActiveModel has_secure_password
29+
# gem 'bcrypt', '~> 3.1.7'
30+
31+
# Use Unicorn as the app server
32+
# gem 'unicorn'
33+
34+
# Use Capistrano for deployment
35+
# gem 'capistrano-rails', group: :development
36+
37+
group :development, :test do
38+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
39+
gem 'byebug'
40+
41+
# Access an IRB console on exception pages or by using <%= console %> in views
42+
gem 'web-console', '~> 2.0'
43+
44+
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
45+
gem 'spring'
46+
end

Diff for: Gemfile.lock

+163
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
actionmailer (4.2.3)
5+
actionpack (= 4.2.3)
6+
actionview (= 4.2.3)
7+
activejob (= 4.2.3)
8+
mail (~> 2.5, >= 2.5.4)
9+
rails-dom-testing (~> 1.0, >= 1.0.5)
10+
actionpack (4.2.3)
11+
actionview (= 4.2.3)
12+
activesupport (= 4.2.3)
13+
rack (~> 1.6)
14+
rack-test (~> 0.6.2)
15+
rails-dom-testing (~> 1.0, >= 1.0.5)
16+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
17+
actionview (4.2.3)
18+
activesupport (= 4.2.3)
19+
builder (~> 3.1)
20+
erubis (~> 2.7.0)
21+
rails-dom-testing (~> 1.0, >= 1.0.5)
22+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
23+
activejob (4.2.3)
24+
activesupport (= 4.2.3)
25+
globalid (>= 0.3.0)
26+
activemodel (4.2.3)
27+
activesupport (= 4.2.3)
28+
builder (~> 3.1)
29+
activerecord (4.2.3)
30+
activemodel (= 4.2.3)
31+
activesupport (= 4.2.3)
32+
arel (~> 6.0)
33+
activesupport (4.2.3)
34+
i18n (~> 0.7)
35+
json (~> 1.7, >= 1.7.7)
36+
minitest (~> 5.1)
37+
thread_safe (~> 0.3, >= 0.3.4)
38+
tzinfo (~> 1.1)
39+
arel (6.0.3)
40+
binding_of_caller (0.7.2)
41+
debug_inspector (>= 0.0.1)
42+
builder (3.2.2)
43+
byebug (9.0.5)
44+
coffee-rails (4.1.1)
45+
coffee-script (>= 2.2.0)
46+
railties (>= 4.0.0, < 5.1.x)
47+
coffee-script (2.4.1)
48+
coffee-script-source
49+
execjs
50+
coffee-script-source (1.10.0)
51+
concurrent-ruby (1.0.2)
52+
debug_inspector (0.0.2)
53+
erubis (2.7.0)
54+
execjs (2.7.0)
55+
foreman (0.82.0)
56+
thor (~> 0.19.1)
57+
globalid (0.3.7)
58+
activesupport (>= 4.1.0)
59+
i18n (0.7.0)
60+
jbuilder (2.6.0)
61+
activesupport (>= 3.0.0, < 5.1)
62+
multi_json (~> 1.2)
63+
jquery-rails (4.1.1)
64+
rails-dom-testing (>= 1, < 3)
65+
railties (>= 4.2.0)
66+
thor (>= 0.14, < 2.0)
67+
json (1.8.3)
68+
loofah (2.0.3)
69+
nokogiri (>= 1.5.9)
70+
mail (2.6.4)
71+
mime-types (>= 1.16, < 4)
72+
mime-types (3.1)
73+
mime-types-data (~> 3.2015)
74+
mime-types-data (3.2016.0521)
75+
mini_portile2 (2.1.0)
76+
minitest (5.9.0)
77+
multi_json (1.12.1)
78+
nokogiri (1.6.8)
79+
mini_portile2 (~> 2.1.0)
80+
pkg-config (~> 1.1.7)
81+
pkg-config (1.1.7)
82+
rack (1.6.4)
83+
rack-test (0.6.3)
84+
rack (>= 1.0)
85+
rails (4.2.3)
86+
actionmailer (= 4.2.3)
87+
actionpack (= 4.2.3)
88+
actionview (= 4.2.3)
89+
activejob (= 4.2.3)
90+
activemodel (= 4.2.3)
91+
activerecord (= 4.2.3)
92+
activesupport (= 4.2.3)
93+
bundler (>= 1.3.0, < 2.0)
94+
railties (= 4.2.3)
95+
sprockets-rails
96+
rails-deprecated_sanitizer (1.0.3)
97+
activesupport (>= 4.2.0.alpha)
98+
rails-dom-testing (1.0.7)
99+
activesupport (>= 4.2.0.beta, < 5.0)
100+
nokogiri (~> 1.6.0)
101+
rails-deprecated_sanitizer (>= 1.0.1)
102+
rails-html-sanitizer (1.0.3)
103+
loofah (~> 2.0)
104+
railties (4.2.3)
105+
actionpack (= 4.2.3)
106+
activesupport (= 4.2.3)
107+
rake (>= 0.8.7)
108+
thor (>= 0.18.1, < 2.0)
109+
rake (11.2.2)
110+
rdoc (4.2.2)
111+
json (~> 1.4)
112+
sass (3.4.22)
113+
sass-rails (5.0.6)
114+
railties (>= 4.0.0, < 6)
115+
sass (~> 3.1)
116+
sprockets (>= 2.8, < 4.0)
117+
sprockets-rails (>= 2.0, < 4.0)
118+
tilt (>= 1.1, < 3)
119+
sdoc (0.4.1)
120+
json (~> 1.7, >= 1.7.7)
121+
rdoc (~> 4.0)
122+
spring (1.7.2)
123+
sprockets (3.7.0)
124+
concurrent-ruby (~> 1.0)
125+
rack (> 1, < 3)
126+
sprockets-rails (3.1.1)
127+
actionpack (>= 4.0)
128+
activesupport (>= 4.0)
129+
sprockets (>= 3.0.0)
130+
sqlite3 (1.3.11)
131+
thor (0.19.1)
132+
thread_safe (0.3.5)
133+
tilt (2.0.5)
134+
turbolinks (5.0.1)
135+
turbolinks-source (~> 5)
136+
turbolinks-source (5.0.0)
137+
tzinfo (1.2.2)
138+
thread_safe (~> 0.1)
139+
uglifier (3.0.1)
140+
execjs (>= 0.3.0, < 3)
141+
web-console (2.3.0)
142+
activemodel (>= 4.0)
143+
binding_of_caller (>= 0.7.2)
144+
railties (>= 4.0)
145+
sprockets-rails (>= 2.0, < 4.0)
146+
147+
PLATFORMS
148+
ruby
149+
150+
DEPENDENCIES
151+
byebug
152+
coffee-rails (~> 4.1.0)
153+
foreman (~> 0.82.0)
154+
jbuilder (~> 2.0)
155+
jquery-rails
156+
rails (= 4.2.3)
157+
sass-rails (~> 5.0)
158+
sdoc (~> 0.4.0)
159+
spring
160+
sqlite3
161+
turbolinks
162+
uglifier (>= 1.3.0)
163+
web-console (~> 2.0)

Diff for: Procfile

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
web: cd client && npm start
2+
api: bundle exec rails s -p 3001

Diff for: README.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# `create-react-app` with a server example
2+
3+
[![Dolpins](https://cdn.rawgit.com/fullstackio/cq/master/doc/readme/dolphins-badge-ff00ff.svg)](https://www.fullstackreact.com)
4+
5+
This project demonstrates using the setup generated by `create-react-app` alongside a Rails API server.
6+
7+
## Running
8+
9+
```
10+
git clone [email protected]:fullstackreact/food-lookup-demo-rails.git
11+
cd food-lookup-demo-rails
12+
npm i
13+
npm start
14+
```
15+
16+
## Overview
17+
18+
`create-react-app` configures a Webpack development server to run on `localhost:3000`. This development server will bundle all static assets located under `client/src/`. All requests to `localhost:3000` will serve `client/index.html` which will include Webpack's `bundle.js`.
19+
20+
In this example, the React component `App` makes a request to an API server (`server.js`). The user's browser visits the Webpack dev server at `localhost:3000`. Then the React client communicates with the API server when needed at `localhost:3001`:
21+
22+
![Flow diagram](./flow-diagram.png)
23+
24+
This setup uses [node-foreman](https://github.com/strongloop/node-foreman) for process management. Executing `npm start` instructs Foreman to boot both the Webpack dev server and the API server.

Diff for: Rakefile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Add your own tasks in files placed in lib/tasks ending in .rake,
2+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3+
4+
require File.expand_path('../config/application', __FILE__)
5+
6+
Rails.application.load_tasks

Diff for: app/assets/images/.keep

Whitespace-only changes.

Diff for: app/assets/javascripts/application.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// This is a manifest file that'll be compiled into application.js, which will include all the files
2+
// listed below.
3+
//
4+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6+
//
7+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8+
// compiled file.
9+
//
10+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11+
// about supported directives.
12+
//
13+
//= require jquery
14+
//= require jquery_ujs
15+
//= require turbolinks
16+
//= require_tree .

Diff for: app/assets/stylesheets/application.css

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* This is a manifest file that'll be compiled into application.css, which will include all the files
3+
* listed below.
4+
*
5+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7+
*
8+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
9+
* compiled file so the styles you add here take precedence over styles defined in any styles
10+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11+
* file per style scope.
12+
*
13+
*= require_tree .
14+
*= require_self
15+
*/

Diff for: app/controllers/application_controller.rb

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class ApplicationController < ActionController::Base
2+
# Prevent CSRF attacks by raising an exception.
3+
# For APIs, you may want to use :null_session instead.
4+
protect_from_forgery with: :exception
5+
6+
before_filter :whitelist_webpack_dev_cors
7+
8+
private
9+
10+
def whitelist_webpack_dev_cors
11+
if Rails.env.development?
12+
headers['Access-Control-Allow-Origin'] = 'http://localhost:3000'
13+
headers['Access-Control-Allow-Methods'] = 'POST, GET, PUT, DELETE, OPTIONS'
14+
headers['Access-Control-Allow-Headers'] = 'Origin, Content-Type, Accept, Authorization, Token'
15+
end
16+
end
17+
end

Diff for: app/controllers/concerns/.keep

Whitespace-only changes.

Diff for: app/controllers/foods_controller.rb

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class FoodsController < ApplicationController
2+
def index
3+
q = params[:q]
4+
5+
if q.blank?
6+
render status: 400, json: { error: 'Expected parameter `q` '}
7+
else
8+
render(
9+
status: 200,
10+
json: Food.where(["description LIKE ?", "%#{q}%"]).limit(100)
11+
)
12+
end
13+
end
14+
end

Diff for: app/helpers/application_helper.rb

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module ApplicationHelper
2+
end

Diff for: app/mailers/.keep

Whitespace-only changes.

Diff for: app/models/.keep

Whitespace-only changes.

Diff for: app/models/concerns/.keep

Whitespace-only changes.

Diff for: app/models/food.rb

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Food < ActiveRecord::Base
2+
def fat_g
3+
(
4+
fa_sat_g.to_f + fa_mono_g.to_f + fa_poly_g.to_f
5+
).round(2)
6+
end
7+
8+
JSON_KEYS = %w{description kcal fat_g carbohydrate_g protein_g}
9+
def as_json(opts = {})
10+
super.tap do |e|
11+
e['fat_g'] = fat_g
12+
end.slice(*JSON_KEYS)
13+
end
14+
end

Diff for: app/views/layouts/application.html.erb

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>FoodLookupDemoRails</title>
5+
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6+
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7+
<%= csrf_meta_tags %>
8+
</head>
9+
<body>
10+
11+
<%= yield %>
12+
13+
</body>
14+
</html>

Diff for: bin/bundle

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env ruby
2+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3+
load Gem.bin_path('bundler', 'bundle')

Diff for: bin/rails

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env ruby
2+
begin
3+
load File.expand_path('../spring', __FILE__)
4+
rescue LoadError => e
5+
raise unless e.message.include?('spring')
6+
end
7+
APP_PATH = File.expand_path('../../config/application', __FILE__)
8+
require_relative '../config/boot'
9+
require 'rails/commands'

Diff for: bin/rake

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env ruby
2+
begin
3+
load File.expand_path('../spring', __FILE__)
4+
rescue LoadError => e
5+
raise unless e.message.include?('spring')
6+
end
7+
require_relative '../config/boot'
8+
require 'rake'
9+
Rake.application.run

0 commit comments

Comments
 (0)