From 9af4142548dc395407c7a4a1564bacd55fde672d Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Wed, 14 Nov 2012 15:33:29 -0500
Subject: [PATCH 01/57] class example
---
examples/week2/examples/.htaccess | 4 ++
examples/week2/examples/app.rb | 61 +++++++++++++++++++
examples/week2/examples/config.ru | 9 +++
.../week2/examples/tmp/always_restart.txt | 0
examples/week2/examples/views/form.erb | 35 +++++++++++
5 files changed, 109 insertions(+)
create mode 100644 examples/week2/examples/.htaccess
create mode 100644 examples/week2/examples/app.rb
create mode 100644 examples/week2/examples/config.ru
create mode 100644 examples/week2/examples/tmp/always_restart.txt
create mode 100644 examples/week2/examples/views/form.erb
diff --git a/examples/week2/examples/.htaccess b/examples/week2/examples/.htaccess
new file mode 100644
index 0000000..9f3f895
--- /dev/null
+++ b/examples/week2/examples/.htaccess
@@ -0,0 +1,4 @@
+PassengerEnabled on
+RackBaseURI /sinatra
+PassengerAppRoot /home/zr279/sinatra/example1
+RackEnv development
diff --git a/examples/week2/examples/app.rb b/examples/week2/examples/app.rb
new file mode 100644
index 0000000..78592b1
--- /dev/null
+++ b/examples/week2/examples/app.rb
@@ -0,0 +1,61 @@
+require 'sinatra'
+
+# Main route - this is the form is shown
+get '/' do
+ "Hello"
+end
+
+get '/html' do
+
+ "This is an example of simple routes. Check out the Home
Done
"
+
+end
+
+get '/form' do
+
+ #@title = "This is passing a variable"
+ erb :form
+
+end
+
+
+post '/form' do
+
+ var = params[:yourname]
+ "This is my name #{var}"
+ ##"This is my name" + params[:yourname]
+
+end
+
+get '/urlparams' do
+
+
+ id = params[:id]
+ name = params[:name]
+
+ "This is the id: #{id} name: #{name}"
+
+
+end
+
+get '/name/:id' do
+
+ "This is the id #{params[:id]}"
+
+end
+
+get '/name' do
+
+ "Name"
+
+end
+
+
+
+get '/same_route' do
+ "Same route #1"
+end
+
+get '/same_route' do
+ "Same route #2"
+end
diff --git a/examples/week2/examples/config.ru b/examples/week2/examples/config.ru
new file mode 100644
index 0000000..c462621
--- /dev/null
+++ b/examples/week2/examples/config.ru
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/app.rb'
+
+before do
+ s = request.path_info
+ s[/^\/~(\w)+(\d)+\/sinatra\/[^\/|?]+/i] = ""
+ request.path_info = s
+end
+
+run Sinatra::Application
diff --git a/examples/week2/examples/tmp/always_restart.txt b/examples/week2/examples/tmp/always_restart.txt
new file mode 100644
index 0000000..e69de29
diff --git a/examples/week2/examples/views/form.erb b/examples/week2/examples/views/form.erb
new file mode 100644
index 0000000..fc175e2
--- /dev/null
+++ b/examples/week2/examples/views/form.erb
@@ -0,0 +1,35 @@
+
+
+
+ Simple Form Example
+
+
+
+
+
<%=@title%>
+
Simple form
+
This is a simple form example.
+
+
+
+
+
From d8d745ce190812705886cc9ef9306ea315d164e3 Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Wed, 14 Nov 2012 15:34:46 -0500
Subject: [PATCH 02/57] class examples
---
examples/week2/{examples => week2 class examples}/.htaccess | 0
examples/week2/{examples => week2 class examples}/app.rb | 0
examples/week2/{examples => week2 class examples}/config.ru | 0
.../{examples => week2 class examples}/tmp/always_restart.txt | 0
examples/week2/{examples => week2 class examples}/views/form.erb | 0
5 files changed, 0 insertions(+), 0 deletions(-)
rename examples/week2/{examples => week2 class examples}/.htaccess (100%)
rename examples/week2/{examples => week2 class examples}/app.rb (100%)
rename examples/week2/{examples => week2 class examples}/config.ru (100%)
rename examples/week2/{examples => week2 class examples}/tmp/always_restart.txt (100%)
rename examples/week2/{examples => week2 class examples}/views/form.erb (100%)
diff --git a/examples/week2/examples/.htaccess b/examples/week2/week2 class examples/.htaccess
similarity index 100%
rename from examples/week2/examples/.htaccess
rename to examples/week2/week2 class examples/.htaccess
diff --git a/examples/week2/examples/app.rb b/examples/week2/week2 class examples/app.rb
similarity index 100%
rename from examples/week2/examples/app.rb
rename to examples/week2/week2 class examples/app.rb
diff --git a/examples/week2/examples/config.ru b/examples/week2/week2 class examples/config.ru
similarity index 100%
rename from examples/week2/examples/config.ru
rename to examples/week2/week2 class examples/config.ru
diff --git a/examples/week2/examples/tmp/always_restart.txt b/examples/week2/week2 class examples/tmp/always_restart.txt
similarity index 100%
rename from examples/week2/examples/tmp/always_restart.txt
rename to examples/week2/week2 class examples/tmp/always_restart.txt
diff --git a/examples/week2/examples/views/form.erb b/examples/week2/week2 class examples/views/form.erb
similarity index 100%
rename from examples/week2/examples/views/form.erb
rename to examples/week2/week2 class examples/views/form.erb
From 90ccd1f9391539639a3df4a46b1a6bf7d848cc2e Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Wed, 14 Nov 2012 15:37:40 -0500
Subject: [PATCH 03/57] update title
---
examples/week2/week2 class examples/app.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/week2/week2 class examples/app.rb b/examples/week2/week2 class examples/app.rb
index 78592b1..41a2fd2 100644
--- a/examples/week2/week2 class examples/app.rb
+++ b/examples/week2/week2 class examples/app.rb
@@ -13,7 +13,7 @@
get '/form' do
- #@title = "This is passing a variable"
+ @title = "This is passing a variable"
erb :form
end
From 064285c3160ea01ab6b4f22ca6436b6bb7ad9ed5 Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Wed, 14 Nov 2012 15:38:19 -0500
Subject: [PATCH 04/57] final change
---
.../week2/{week2 class examples => week2classexamples}/.htaccess | 0
.../week2/{week2 class examples => week2classexamples}/app.rb | 0
.../week2/{week2 class examples => week2classexamples}/config.ru | 0
.../tmp/always_restart.txt | 0
.../{week2 class examples => week2classexamples}/views/form.erb | 0
5 files changed, 0 insertions(+), 0 deletions(-)
rename examples/week2/{week2 class examples => week2classexamples}/.htaccess (100%)
rename examples/week2/{week2 class examples => week2classexamples}/app.rb (100%)
rename examples/week2/{week2 class examples => week2classexamples}/config.ru (100%)
rename examples/week2/{week2 class examples => week2classexamples}/tmp/always_restart.txt (100%)
rename examples/week2/{week2 class examples => week2classexamples}/views/form.erb (100%)
diff --git a/examples/week2/week2 class examples/.htaccess b/examples/week2/week2classexamples/.htaccess
similarity index 100%
rename from examples/week2/week2 class examples/.htaccess
rename to examples/week2/week2classexamples/.htaccess
diff --git a/examples/week2/week2 class examples/app.rb b/examples/week2/week2classexamples/app.rb
similarity index 100%
rename from examples/week2/week2 class examples/app.rb
rename to examples/week2/week2classexamples/app.rb
diff --git a/examples/week2/week2 class examples/config.ru b/examples/week2/week2classexamples/config.ru
similarity index 100%
rename from examples/week2/week2 class examples/config.ru
rename to examples/week2/week2classexamples/config.ru
diff --git a/examples/week2/week2 class examples/tmp/always_restart.txt b/examples/week2/week2classexamples/tmp/always_restart.txt
similarity index 100%
rename from examples/week2/week2 class examples/tmp/always_restart.txt
rename to examples/week2/week2classexamples/tmp/always_restart.txt
diff --git a/examples/week2/week2 class examples/views/form.erb b/examples/week2/week2classexamples/views/form.erb
similarity index 100%
rename from examples/week2/week2 class examples/views/form.erb
rename to examples/week2/week2classexamples/views/form.erb
From eefbff4125182f340a3984c39a93566716c4cd0c Mon Sep 17 00:00:00 2001
From: zeven
Date: Wed, 14 Nov 2012 15:41:16 -0500
Subject: [PATCH 05/57] Update README.md
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index efc8385..41c3f63 100644
--- a/README.md
+++ b/README.md
@@ -83,6 +83,8 @@ Sinatra Up and Running, p. 15-21 (It’s not much, so please read it thoroughly)
* Functions
* Loops
* Gems
+
+* [Week 2 Class Examples](https://github.com/zevenwolf/CommLabWeb/tree/master/examples/week2/week2classexamples)
* [Basic Sinatra App](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/basic_sinatra_app)
* [Routes](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/routes)
* [Returning something](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/returning_something)
From c1b38122f5eb140948f1f16c4689338763001634 Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Fri, 16 Nov 2012 14:36:53 -0500
Subject: [PATCH 06/57] datamapper example
---
examples/week3/datamapperexample1/.htaccess | 4 +
examples/week3/datamapperexample1/app.rb | 131 ++++++++++++++++++
examples/week3/datamapperexample1/config.ru | 9 ++
.../week3/datamapperexample1/db/visitors.yml | 5 +
.../datamapperexample1/tmp/always_restart.txt | 0
.../week3/datamapperexample1/views/all.erb | 5 +
.../week3/datamapperexample1/views/edit.erb | 33 +++++
.../week3/datamapperexample1/views/form.erb | 34 +++++
8 files changed, 221 insertions(+)
create mode 100644 examples/week3/datamapperexample1/.htaccess
create mode 100644 examples/week3/datamapperexample1/app.rb
create mode 100644 examples/week3/datamapperexample1/config.ru
create mode 100644 examples/week3/datamapperexample1/db/visitors.yml
create mode 100644 examples/week3/datamapperexample1/tmp/always_restart.txt
create mode 100644 examples/week3/datamapperexample1/views/all.erb
create mode 100644 examples/week3/datamapperexample1/views/edit.erb
create mode 100644 examples/week3/datamapperexample1/views/form.erb
diff --git a/examples/week3/datamapperexample1/.htaccess b/examples/week3/datamapperexample1/.htaccess
new file mode 100644
index 0000000..d93ccf0
--- /dev/null
+++ b/examples/week3/datamapperexample1/.htaccess
@@ -0,0 +1,4 @@
+PassengerEnabled on
+RackBaseURI /sinatra
+PassengerAppRoot /home/zr279/sinatra/datamapperexample1
+RackEnv development
diff --git a/examples/week3/datamapperexample1/app.rb b/examples/week3/datamapperexample1/app.rb
new file mode 100644
index 0000000..40f78b0
--- /dev/null
+++ b/examples/week3/datamapperexample1/app.rb
@@ -0,0 +1,131 @@
+require 'sinatra'
+require 'dm-core'
+
+DataMapper::setup(:default, {:adapter => 'yaml', :path => 'db'})
+
+#Create the class the Datamapper will base off of
+class Visitor
+ include DataMapper::Resource
+
+ property :id, Serial
+ property :username, String
+end
+
+DataMapper.finalize
+
+# Main route - this is the form is shown
+get '/' do
+ erb :form
+end
+
+post '/username' do
+
+ # create a new visitor
+ user = Visitor.new
+ user.username = params[:username]
+ user.save
+
+ # or you could have done it like this
+ # user = Visitor.create(:name => params[:yourname])
+
+ "User name saved."
+end
+
+get '/first-visitor' do
+ user = Visitor.first
+ "User name is #{user.username}"
+end
+
+get '/edit-visitor' do
+
+ erb :edit
+end
+
+post '/edit-visitor' do
+ user = Visitor.first
+ user.update(:username => params[:username])
+ "Users new name is #{user.username}"
+end
+
+get '/delete-first-visitor' do
+ user = Visitor.first
+ user.destroy
+ "User was deleted"
+end
+
+
+
+
+get '/find' do
+ user = Visitor.first
+
+ # get a user by id
+ #user = Visitor.get(1)
+
+ # get first user with name "rune"
+ #users = Visitor.first(:username => "rune")
+
+ # get last user with name "rune"
+ #user = Visitor.last(:name => "rune")
+
+ # get all users with name "rune"
+ #user = Visitor.all(:name => "rune")
+
+ # Find all users with age between 18 and 60
+ #user = Visitor.all(:age.gt => 18, :age.lt => 60)
+
+ # You can use all of these conditions
+ # gt, greater than
+ # lt, less than
+ # gte, greater than or equal
+ # lte, less than or equal
+ # not, not equal
+ # eql, equal
+ # like, like
+
+ # order visitors by age (you also use .asc)
+ #user = Visitor.all(:order => [ :age.desc ])
+
+ # find the number of visitors in your database with age greater than 18
+ #count = Visitor.count(:age.gt => 18)
+
+ # find the youngest age in the database
+ #min_age = Visitor.min(:age)
+
+ # find the oldest age in the database
+ #max_age = Visitor.max(:age)
+
+ "User is #{user.username}"
+
+end
+
+
+
+get '/all' do
+
+ @userList = Visitor.all
+ #Look here to look at how to itterate through the object array
+ erb :all
+
+end
+
+
+# Remember that sinatra finds the best match of what you put in the url
+get '/:name/home' do
+
+"This is #{params[:name]}'s home page"
+
+end
+
+get '/:name/:cat' do
+
+ name = params[:name]
+ cat = params[:cat]
+
+
+ "This is the Name: #{name} and the cat: #{cat}"
+
+end
+
+
+
diff --git a/examples/week3/datamapperexample1/config.ru b/examples/week3/datamapperexample1/config.ru
new file mode 100644
index 0000000..c462621
--- /dev/null
+++ b/examples/week3/datamapperexample1/config.ru
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/app.rb'
+
+before do
+ s = request.path_info
+ s[/^\/~(\w)+(\d)+\/sinatra\/[^\/|?]+/i] = ""
+ request.path_info = s
+end
+
+run Sinatra::Application
diff --git a/examples/week3/datamapperexample1/db/visitors.yml b/examples/week3/datamapperexample1/db/visitors.yml
new file mode 100644
index 0000000..c2b8ddd
--- /dev/null
+++ b/examples/week3/datamapperexample1/db/visitors.yml
@@ -0,0 +1,5 @@
+---
+- username: hello
+ id: 2
+- username: goodbye
+ id: 3
diff --git a/examples/week3/datamapperexample1/tmp/always_restart.txt b/examples/week3/datamapperexample1/tmp/always_restart.txt
new file mode 100644
index 0000000..e69de29
diff --git a/examples/week3/datamapperexample1/views/all.erb b/examples/week3/datamapperexample1/views/all.erb
new file mode 100644
index 0000000..1239c29
--- /dev/null
+++ b/examples/week3/datamapperexample1/views/all.erb
@@ -0,0 +1,5 @@
+<%@userList.each do |users|%>
+
+
+
+<%end%>
\ No newline at end of file
diff --git a/examples/week3/datamapperexample1/views/edit.erb b/examples/week3/datamapperexample1/views/edit.erb
new file mode 100644
index 0000000..b995ba7
--- /dev/null
+++ b/examples/week3/datamapperexample1/views/edit.erb
@@ -0,0 +1,33 @@
+
+
+
+ Simple Form Example
+
+
+
+
+
Update Username
+
+
+
+
diff --git a/examples/week3/datamapperexample1/views/form.erb b/examples/week3/datamapperexample1/views/form.erb
new file mode 100644
index 0000000..25eb66a
--- /dev/null
+++ b/examples/week3/datamapperexample1/views/form.erb
@@ -0,0 +1,34 @@
+
+
+
+ Simple Form Example
+
+
+
+
+
Simple form
+
This is a simple form example.
+
+
+
+
From a14befa37caeb575901676bc9e236ea191c13336 Mon Sep 17 00:00:00 2001
From: zeven
Date: Fri, 16 Nov 2012 14:44:50 -0500
Subject: [PATCH 07/57] Update README.md
---
README.md | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/README.md b/README.md
index 41c3f63..278a605 100644
--- a/README.md
+++ b/README.md
@@ -85,16 +85,6 @@ Sinatra Up and Running, p. 15-21 (It’s not much, so please read it thoroughly)
* Gems
* [Week 2 Class Examples](https://github.com/zevenwolf/CommLabWeb/tree/master/examples/week2/week2classexamples)
-* [Basic Sinatra App](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/basic_sinatra_app)
-* [Routes](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/routes)
-* [Returning something](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/returning_something)
-* [Returning something with views](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week4/views)
-* [Params](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/params)
- * GET request in URL params
- * POST request
- * Params in route
-* [First route gets picked up](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week2/first_route)
-
### HTML Forms
From 9c2afb7218a00e744154563353b33bf686d52971 Mon Sep 17 00:00:00 2001
From: zeven
Date: Fri, 16 Nov 2012 14:47:03 -0500
Subject: [PATCH 08/57] Update README.md
---
README.md | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 278a605..d5a185e 100644
--- a/README.md
+++ b/README.md
@@ -103,6 +103,16 @@ Sinatra Up and Running, p. 15-21 (It’s not much, so please read it thoroughly)
Create a new Sinatra application on the ITP Server. Create a GET “/form” route that returns an HTML form with a few different input types. Create a POST “/form” route that reads these parameters and sends back a dynamic HTML page. This HTML page should at least have an image that changes depending on the input from the form.
+
+###Putting images into your app directory.
+
+You need to make a folder called public. Inside of that make a folder called images and place your images there. Double click into your app folder. Right click and add new folder. Type public. Double click to go into the new public folder you created. Right click and add new folder called images. Put your images in there. You should put the full path to your file in the image src. It will look something like this:
+``
+
+If your image does not appear there could be another issue with permissions. Right click on your public folder you just created and select info. Click on the permissions tab. Where it says unix permissions type 755 and click apply changes recursively.
+
+
+
## Week 3: Basics of Datamapper
### Readings For This Week
@@ -121,12 +131,8 @@ Create a new Sinatra application on the ITP Server. Create a GET “/form” rou
* Setup Datamapper
* Write your Datamapper class
* Properties: Serial, Boolean, String, Text, Float, Integer, Datetime,
-* [Create](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week3/create)
-* [Read](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week3/read)
-* [Update](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week3/update)
-* [Delete](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week3/delete)
-* [Find](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week3/find)
-* [Example with everything](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week3/everything)
+
+* [Datamapper Class Example](https://github.com/zevenwolf/CommLabWeb/tree/master/examples/week3/datamapperexample1)
### Using Datamapper with Forms
From 98d9f7371537018e6042e9aadbd5ee2ae0bb563f Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Thu, 29 Nov 2012 20:51:46 -0500
Subject: [PATCH 09/57] blog
---
examples/blog/.htaccess | 4 ++
examples/blog/app.rb | 90 ++++++++++++++++++++++++++++
examples/blog/config.ru | 9 +++
examples/blog/db/blog_posts.yml | 13 ++++
examples/blog/tmp/always_restart.txt | 0
examples/blog/views/admin.erb | 10 ++++
examples/blog/views/blog.erb | 5 ++
examples/blog/views/blog_new.erb | 5 ++
examples/blog/views/blog_save.erb | 2 +
examples/blog/views/edit.erb | 5 ++
examples/blog/views/form.erb | 34 +++++++++++
examples/blog/views/front.erb | 3 +
examples/blog/views/layout.erb | 9 +++
examples/blog/views/post.erb | 5 ++
14 files changed, 194 insertions(+)
create mode 100644 examples/blog/.htaccess
create mode 100644 examples/blog/app.rb
create mode 100644 examples/blog/config.ru
create mode 100644 examples/blog/db/blog_posts.yml
create mode 100644 examples/blog/tmp/always_restart.txt
create mode 100644 examples/blog/views/admin.erb
create mode 100644 examples/blog/views/blog.erb
create mode 100644 examples/blog/views/blog_new.erb
create mode 100644 examples/blog/views/blog_save.erb
create mode 100644 examples/blog/views/edit.erb
create mode 100644 examples/blog/views/form.erb
create mode 100644 examples/blog/views/front.erb
create mode 100644 examples/blog/views/layout.erb
create mode 100644 examples/blog/views/post.erb
diff --git a/examples/blog/.htaccess b/examples/blog/.htaccess
new file mode 100644
index 0000000..2065ead
--- /dev/null
+++ b/examples/blog/.htaccess
@@ -0,0 +1,4 @@
+PassengerEnabled on
+RackBaseURI /sinatra
+PassengerAppRoot /home/zr279/sinatra/blog
+RackEnv development
diff --git a/examples/blog/app.rb b/examples/blog/app.rb
new file mode 100644
index 0000000..8f09474
--- /dev/null
+++ b/examples/blog/app.rb
@@ -0,0 +1,90 @@
+require 'sinatra'
+require 'dm-core'
+
+DataMapper::setup(:default, {:adapter => 'yaml', :path => 'db'})
+
+class BlogPost
+ include DataMapper::Resource
+ property :id, Serial
+ property :title, String
+ property :body, Text
+end
+
+DataMapper.finalize
+
+get "/" do
+ @nav = "Splash page"
+ erb :front
+end
+
+get "/blog" do
+ @nav = "Zeven's Blog"
+ @posts = BlogPost.all
+ erb :blog
+end
+
+get "/blog/new" do
+ erb :blog_new
+end
+
+post "/blog/save" do
+ myPost = BlogPost.new
+ myPost.title = params[:title]
+ myPost.body = params[:body]
+
+ if(myPost.save)
+ @message = "Your post was saved!"
+ else
+ @message = "Your post was NOT SAVED!!!!!!!"
+ end
+
+ erb :blog_save
+end
+
+get "/blog/admin" do
+ @nav = "Admin"
+ @posts = BlogPost.all
+ erb :admin
+end
+
+get "/blog/:id/edit" do
+ @nav = "You are on the edit username page"
+ @updatePost = BlogPost.get(params[:id])
+ @id = params[:id]
+ erb :edit
+end
+
+post "/blog/:id/edit" do
+ updatePost = BlogPost.get(params[:id])
+ updatePost.title = params[:title]
+ updatePost.body = params[:body]
+
+ if(updatePost.save)
+ redirect to("http://itp.nyu.edu/~zr279/sinatra/blog/blog")
+ else
+ "Your post was NOT SAVED!!!!!!!"
+ end
+
+
+end
+
+get "/blog/:id/delete" do
+
+ deletePost = BlogPost.get(params[:id])
+
+
+ deletePost.destroy
+
+ redirect to("http://itp.nyu.edu/~zr279/sinatra/blog/blog/admin")
+
+
+end
+
+get "/blog/:id" do
+ @post = BlogPost.get(params[:id])
+ erb :post, :layout => false
+end
+
+
+
+
diff --git a/examples/blog/config.ru b/examples/blog/config.ru
new file mode 100644
index 0000000..c462621
--- /dev/null
+++ b/examples/blog/config.ru
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/app.rb'
+
+before do
+ s = request.path_info
+ s[/^\/~(\w)+(\d)+\/sinatra\/[^\/|?]+/i] = ""
+ request.path_info = s
+end
+
+run Sinatra::Application
diff --git a/examples/blog/db/blog_posts.yml b/examples/blog/db/blog_posts.yml
new file mode 100644
index 0000000..1a01081
--- /dev/null
+++ b/examples/blog/db/blog_posts.yml
@@ -0,0 +1,13 @@
+---
+- title: this is no longer a test
+ body: this is no longer a test
+ id: 2
+- title: Hello this my first post
+ body: Hello i love sintar
+ id: 4
+- title: this is a post
+ body: this is a post
+ id: 3
+- title: this is another post
+ body: this is another post
+ id: 4
diff --git a/examples/blog/tmp/always_restart.txt b/examples/blog/tmp/always_restart.txt
new file mode 100644
index 0000000..e69de29
diff --git a/examples/blog/views/admin.erb b/examples/blog/views/admin.erb
new file mode 100644
index 0000000..5c42f91
--- /dev/null
+++ b/examples/blog/views/admin.erb
@@ -0,0 +1,10 @@
+
+
+
Posts
+
+<% @posts.each do |thisPost| %>
+
<%=thisPost.title%>
+Edit
+Delete
+
+<% end %>
\ No newline at end of file
diff --git a/examples/blog/views/blog.erb b/examples/blog/views/blog.erb
new file mode 100644
index 0000000..085ab70
--- /dev/null
+++ b/examples/blog/views/blog.erb
@@ -0,0 +1,5 @@
+<% for thisPost in @posts %>
+
<%= thisPost.title %>
+
<%= thisPost.body %>
+ Permalink
+<% end %>
\ No newline at end of file
diff --git a/examples/blog/views/blog_new.erb b/examples/blog/views/blog_new.erb
new file mode 100644
index 0000000..8638f3c
--- /dev/null
+++ b/examples/blog/views/blog_new.erb
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/examples/blog/views/blog_save.erb b/examples/blog/views/blog_save.erb
new file mode 100644
index 0000000..06a5a38
--- /dev/null
+++ b/examples/blog/views/blog_save.erb
@@ -0,0 +1,2 @@
+
<%= @message %>
+Go to the blog
\ No newline at end of file
diff --git a/examples/blog/views/edit.erb b/examples/blog/views/edit.erb
new file mode 100644
index 0000000..2788271
--- /dev/null
+++ b/examples/blog/views/edit.erb
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/examples/blog/views/form.erb b/examples/blog/views/form.erb
new file mode 100644
index 0000000..bf5cf76
--- /dev/null
+++ b/examples/blog/views/form.erb
@@ -0,0 +1,34 @@
+
+
+
+ Simple Form Example
+
+
+
+
+
+ Go to the blog
diff --git a/examples/blog/views/layout.erb b/examples/blog/views/layout.erb
new file mode 100644
index 0000000..5d9c75f
--- /dev/null
+++ b/examples/blog/views/layout.erb
@@ -0,0 +1,9 @@
+
+
+ Zeven's Blog
+
+
+
<%=@nav%>
+ <%= yield %>
+
+
\ No newline at end of file
diff --git a/examples/blog/views/post.erb b/examples/blog/views/post.erb
new file mode 100644
index 0000000..12c7bd6
--- /dev/null
+++ b/examples/blog/views/post.erb
@@ -0,0 +1,5 @@
+
<%= @post.title %>
+
<%= @post.body %>
+
+
+Return to blog
\ No newline at end of file
From d4ea0f33468d92b93eef3543d4dc7b0c94617549 Mon Sep 17 00:00:00 2001
From: zeven
Date: Thu, 29 Nov 2012 20:54:23 -0500
Subject: [PATCH 10/57] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d5a185e..3b7215e 100644
--- a/README.md
+++ b/README.md
@@ -153,7 +153,7 @@ Sinatra Up and Running, p. 21-30
### Creating a Blog in Sinatra
-* [A full blog in Sinatra and Datamapper](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week4/full_blog)
+* [A full blog in Sinatra and Datamapper](https://github.com/zevenwolf/CommLabWeb/tree/master/examples/blog)
### Advanced routes
From 38aa96249a471aa8842ec40e9b1fe371104debd8 Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Wed, 5 Dec 2012 16:50:57 -0500
Subject: [PATCH 11/57] week5
---
examples/week5/advancedatamapper/.htaccess | 4 ++
examples/week5/advancedatamapper/app.rb | 53 +++++++++++++++++++
examples/week5/advancedatamapper/config.ru | 9 ++++
.../week5/advancedatamapper/db/visitors.yml | 31 +++++++++++
.../advancedatamapper/tmp/always_restart.txt | 0
.../advancedatamapper/views/allentries.erb | 10 ++++
.../week5/advancedatamapper/views/form.erb | 14 +++++
examples/week5/advancesearch/.htaccess | 4 ++
examples/week5/advancesearch/app.rb | 50 +++++++++++++++++
examples/week5/advancesearch/config.ru | 9 ++++
examples/week5/advancesearch/db/people.yml | 41 ++++++++++++++
.../advancesearch/tmp/always_restart.txt | 0
examples/week5/advancesearch/views/form.erb | 34 ++++++++++++
examples/week5/advancesearch/views/front.erb | 31 +++++++++++
examples/week5/advancesearch/views/person.erb | 2 +
examples/week6/image_upload/app.rb | 17 ++++++
examples/week6/image_upload/views/form.erb | 13 +++++
.../week6/image_upload/views/show_image.erb | 9 ++++
18 files changed, 331 insertions(+)
create mode 100644 examples/week5/advancedatamapper/.htaccess
create mode 100644 examples/week5/advancedatamapper/app.rb
create mode 100644 examples/week5/advancedatamapper/config.ru
create mode 100644 examples/week5/advancedatamapper/db/visitors.yml
create mode 100644 examples/week5/advancedatamapper/tmp/always_restart.txt
create mode 100644 examples/week5/advancedatamapper/views/allentries.erb
create mode 100644 examples/week5/advancedatamapper/views/form.erb
create mode 100644 examples/week5/advancesearch/.htaccess
create mode 100644 examples/week5/advancesearch/app.rb
create mode 100644 examples/week5/advancesearch/config.ru
create mode 100644 examples/week5/advancesearch/db/people.yml
create mode 100644 examples/week5/advancesearch/tmp/always_restart.txt
create mode 100644 examples/week5/advancesearch/views/form.erb
create mode 100644 examples/week5/advancesearch/views/front.erb
create mode 100644 examples/week5/advancesearch/views/person.erb
create mode 100755 examples/week6/image_upload/app.rb
create mode 100755 examples/week6/image_upload/views/form.erb
create mode 100755 examples/week6/image_upload/views/show_image.erb
diff --git a/examples/week5/advancedatamapper/.htaccess b/examples/week5/advancedatamapper/.htaccess
new file mode 100644
index 0000000..45853dd
--- /dev/null
+++ b/examples/week5/advancedatamapper/.htaccess
@@ -0,0 +1,4 @@
+PassengerEnabled on
+RackBaseURI /sinatra
+PassengerAppRoot /home/zr279/sinatra/advancedatamapper
+RackEnv development
diff --git a/examples/week5/advancedatamapper/app.rb b/examples/week5/advancedatamapper/app.rb
new file mode 100644
index 0000000..b280eb4
--- /dev/null
+++ b/examples/week5/advancedatamapper/app.rb
@@ -0,0 +1,53 @@
+require 'sinatra'
+require 'dm-core'
+require 'dm-validations'
+require 'date'
+
+DataMapper::setup(:default, {:adapter => 'yaml', :path => 'db'})
+
+
+
+class Visitor
+ include DataMapper::Resource
+
+ property :id, Serial
+ property :firstname, String, :required => true
+ property :lastname, String
+ property :catlover, Boolean, :default => false
+ property :petno, Integer
+ property :time, DateTime
+end
+
+DataMapper.finalize
+
+get '/' do
+ erb :form
+end
+
+post '/save_info' do
+ user = Visitor.new
+
+ user.firstname = params[:fname]
+ user.lastname = params[:lname]
+
+ if (params[:catlover] == "true")
+ user.catlover = true;
+ end
+
+ user.petno = Integer(params[:pets])
+ user.time = DateTime.now
+
+ uservalid = user.save
+ if uservalid == true
+ "User name saved. Take a look at all the entries."
+else
+ "User not saved! Return Home"
+ end
+
+end
+
+get '/all_entries' do
+ @visitors = Visitor.all
+
+ erb :allentries
+end
\ No newline at end of file
diff --git a/examples/week5/advancedatamapper/config.ru b/examples/week5/advancedatamapper/config.ru
new file mode 100644
index 0000000..c462621
--- /dev/null
+++ b/examples/week5/advancedatamapper/config.ru
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/app.rb'
+
+before do
+ s = request.path_info
+ s[/^\/~(\w)+(\d)+\/sinatra\/[^\/|?]+/i] = ""
+ request.path_info = s
+end
+
+run Sinatra::Application
diff --git a/examples/week5/advancedatamapper/db/visitors.yml b/examples/week5/advancedatamapper/db/visitors.yml
new file mode 100644
index 0000000..e856951
--- /dev/null
+++ b/examples/week5/advancedatamapper/db/visitors.yml
@@ -0,0 +1,31 @@
+---
+- time: 2012-12-03 16:45:33 -05:00
+ firstname: zeven
+ catlover: false
+ lastname: rodriguez
+ petno: 1
+ id: 1
+- time: 2012-12-03 17:06:19 -05:00
+ firstname: zeven
+ catlover: false
+ lastname: rodriguez
+ petno: 1
+ id: 2
+- time: 2012-12-04 09:56:40 -05:00
+ firstname: zeven
+ catlover: false
+ lastname: rodriguez
+ id: 3
+ petno: 0
+- time: 2012-12-04 09:57:30 -05:00
+ firstname: Ju Young
+ catlover: false
+ lastname: Park
+ id: 4
+ petno: 0
+- time: 2012-12-04T09:58:34-05:00
+ firstname: Myriam
+ catlover: true
+ lastname: ""
+ petno: 2
+ id: 5
diff --git a/examples/week5/advancedatamapper/tmp/always_restart.txt b/examples/week5/advancedatamapper/tmp/always_restart.txt
new file mode 100644
index 0000000..e69de29
diff --git a/examples/week5/advancedatamapper/views/allentries.erb b/examples/week5/advancedatamapper/views/allentries.erb
new file mode 100644
index 0000000..2056952
--- /dev/null
+++ b/examples/week5/advancedatamapper/views/allentries.erb
@@ -0,0 +1,10 @@
+
+<%for entry in @visitors%>
+
Name: <%=entry.firstname%>, <%entry.lastname%>
+
Loves cats -> <%=entry.catlover%>
+
Has <%=entry.petno%> pets
+
When? <%=entry.time.strftime('%a %d %b %Y')%>
+
___________________
+
+<%end%>
+
\ No newline at end of file
diff --git a/examples/week5/advancedatamapper/views/form.erb b/examples/week5/advancedatamapper/views/form.erb
new file mode 100644
index 0000000..e9a551e
--- /dev/null
+++ b/examples/week5/advancedatamapper/views/form.erb
@@ -0,0 +1,14 @@
+
diff --git a/examples/week5/advancesearch/.htaccess b/examples/week5/advancesearch/.htaccess
new file mode 100644
index 0000000..3973ba6
--- /dev/null
+++ b/examples/week5/advancesearch/.htaccess
@@ -0,0 +1,4 @@
+PassengerEnabled on
+RackBaseURI /sinatra
+PassengerAppRoot /home/zr279/sinatra/advancesearch
+RackEnv development
diff --git a/examples/week5/advancesearch/app.rb b/examples/week5/advancesearch/app.rb
new file mode 100644
index 0000000..36ac3d6
--- /dev/null
+++ b/examples/week5/advancesearch/app.rb
@@ -0,0 +1,50 @@
+require 'sinatra'
+require 'dm-core'
+
+DataMapper::setup(:default, {:adapter => 'yaml', :path => 'db'})
+
+class Person
+ include DataMapper::Resource
+ property :id, Serial
+ property :name, String
+ property :email, String
+ property :age, Integer
+ property :created_at, DateTime
+end
+
+DataMapper.finalize
+
+get "/" do
+ @people = Person.all(:order => [:created_at.desc])
+ erb :front
+end
+
+get '/person/:personid' do
+ @person = Person.get(params[:personid])
+ erb :person
+end
+
+
+post '/save' do
+
+ p = Person.new
+ p.name = params[:name]
+ p.age = params[:age]
+ p.email = params[:email]
+ p.created_at = Time.now
+
+ if p.save
+ redirect "http://itp.nyu.edu/~zr279/sinatra/advancesearch/"
+ else
+ "IT DIDNT WORK"
+ end
+
+end
+
+get '/stats' do
+ @first = Person.first()
+ @last = Person.last()
+ @age20 = Person.all(:age.gte =>20, :age.lte => 29)
+
+ "First visitor: #{@first.name}, Last Visitor: #{@last.name}, Visitors in 20s: #{@age20.length}"
+end
\ No newline at end of file
diff --git a/examples/week5/advancesearch/config.ru b/examples/week5/advancesearch/config.ru
new file mode 100644
index 0000000..c462621
--- /dev/null
+++ b/examples/week5/advancesearch/config.ru
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/app.rb'
+
+before do
+ s = request.path_info
+ s[/^\/~(\w)+(\d)+\/sinatra\/[^\/|?]+/i] = ""
+ request.path_info = s
+end
+
+run Sinatra::Application
diff --git a/examples/week5/advancesearch/db/people.yml b/examples/week5/advancesearch/db/people.yml
new file mode 100644
index 0000000..9a188c1
--- /dev/null
+++ b/examples/week5/advancesearch/db/people.yml
@@ -0,0 +1,41 @@
+---
+- name: zeven
+ created_at: 2012-12-03 17:59:33 -05:00
+ age: 26
+ email: zeven@zevenwolf.com
+ id: 1
+- name: z
+ created_at: 2012-12-03 18:10:41 -05:00
+ age: 25
+ email: z
+ id: 2
+- name: a
+ created_at: 2012-12-03 18:10:52 -05:00
+ age: 15
+ email: a
+ id: 3
+- name: b
+ created_at: 2012-12-03 18:11:05 -05:00
+ age: 45
+ email: b
+ id: 4
+- name: c
+ created_at: 2012-12-03 18:11:57 -05:00
+ age: 20
+ email: c
+ id: 5
+- name: d
+ created_at: 2012-12-03 18:12:26 -05:00
+ age: 41
+ email: d
+ id: 6
+- name: ben
+ created_at: 2012-12-04 10:25:52 -05:00
+ age: 29
+ email: ben@ben.com
+ id: 7
+- name: Hey
+ created_at: 2012-12-04T10:30:14-05:00
+ age: 22
+ id: 8
+ email: "no"
diff --git a/examples/week5/advancesearch/tmp/always_restart.txt b/examples/week5/advancesearch/tmp/always_restart.txt
new file mode 100644
index 0000000..e69de29
diff --git a/examples/week5/advancesearch/views/form.erb b/examples/week5/advancesearch/views/form.erb
new file mode 100644
index 0000000..365f4dc
--- /dev/null
+++ b/examples/week5/advancesearch/views/form.erb
@@ -0,0 +1,34 @@
+
+
+
+ Simple Form Example
+
+
+
+
+
+ Profile page
+
+<% end %>
\ No newline at end of file
diff --git a/examples/week5/advancesearch/views/person.erb b/examples/week5/advancesearch/views/person.erb
new file mode 100644
index 0000000..0f61484
--- /dev/null
+++ b/examples/week5/advancesearch/views/person.erb
@@ -0,0 +1,2 @@
+
<%= @person.name %>
+
<%= @person.email %>
\ No newline at end of file
diff --git a/examples/week6/image_upload/app.rb b/examples/week6/image_upload/app.rb
new file mode 100755
index 0000000..f7f1287
--- /dev/null
+++ b/examples/week6/image_upload/app.rb
@@ -0,0 +1,17 @@
+require 'sinatra'
+
+get "/" do
+ erb :form
+end
+
+post '/save_image' do
+
+ @filename = params[:file][:filename]
+ file = params[:file][:tempfile]
+
+ File.open("./public/#{@filename}", 'wb') do |f|
+ f.write(file.read)
+ end
+
+ erb :show_image
+end
\ No newline at end of file
diff --git a/examples/week6/image_upload/views/form.erb b/examples/week6/image_upload/views/form.erb
new file mode 100755
index 0000000..df2c566
--- /dev/null
+++ b/examples/week6/image_upload/views/form.erb
@@ -0,0 +1,13 @@
+
+
+ Image Upload
+
+
+
Upload Image
+
+
+
+
\ No newline at end of file
diff --git a/examples/week6/image_upload/views/show_image.erb b/examples/week6/image_upload/views/show_image.erb
new file mode 100755
index 0000000..57418fd
--- /dev/null
+++ b/examples/week6/image_upload/views/show_image.erb
@@ -0,0 +1,9 @@
+
+
+ Show Image
+
+
+
See Image
+
+
+
\ No newline at end of file
From a1470c0b784ffc90161b470be819bbfecd3ab0b7 Mon Sep 17 00:00:00 2001
From: zeven
Date: Wed, 5 Dec 2012 16:54:27 -0500
Subject: [PATCH 12/57] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 3b7215e..8bcecb0 100644
--- a/README.md
+++ b/README.md
@@ -178,14 +178,14 @@ What do you want to do? What is preventing you from doing it?
### Advanced Datamapper
-* [Birthday Registration Example](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week5/birthdays)
+* [Birthday Registration Example](https://github.com/zevenwolf/CommLabWeb/tree/master/examples/week5/advancesearch)
* More Datatypes
* Serial
* String
* Boolean
* Integer
* DateTime
- * [Example of all of these](https://github.com/ITPNYU/CommLabWeb/tree/master/examples/week5/datatypes)
+ * [Example of all of these](https://github.com/zevenwolf/CommLabWeb/tree/master/examples/week5/advancedatamapper)
* Datatype options
* Required
* Default
From c7ac9c763e312f8fb7e02e3b377a2c1cdb47ee9c Mon Sep 17 00:00:00 2001
From: Zevensuy Rodriguez
Date: Wed, 5 Dec 2012 17:16:58 -0500
Subject: [PATCH 13/57] week6
---
.../code/jsoup-1.7.1.jar | Bin 0 -> 278273 bytes
.../httprocessingjsoupGet.pde | 38 ++++++++++++++++++
.../httprocessingpost/code/jsoup-1.7.1.jar | Bin 0 -> 278273 bytes
.../httprocessingpost/httprocessingpost.pde | 17 ++++++++
.../code/jsoup-1.7.1.jar | Bin 0 -> 278273 bytes
.../httprocessingpostimage/data/narwhal.jpeg | Bin 0 -> 4928 bytes
.../httprocessingpostimage.pde | 17 ++++++++
examples/week6/imageupload/.htaccess | 4 ++
examples/week6/imageupload/app.rb | 17 ++++++++
examples/week6/imageupload/config.ru | 9 +++++
.../imageupload/public/images/penguin.jpeg | Bin 0 -> 3938 bytes
.../week6/imageupload/tmp/always_restart.txt | 0
examples/week6/imageupload/views/form.erb | 13 ++++++
.../week6/imageupload/views/show_image.erb | 9 +++++
14 files changed, 124 insertions(+)
create mode 100644 examples/week6/httprocessingjsoupGet/code/jsoup-1.7.1.jar
create mode 100644 examples/week6/httprocessingjsoupGet/httprocessingjsoupGet.pde
create mode 100644 examples/week6/httprocessingpost/code/jsoup-1.7.1.jar
create mode 100644 examples/week6/httprocessingpost/httprocessingpost.pde
create mode 100644 examples/week6/httprocessingpostimage/code/jsoup-1.7.1.jar
create mode 100644 examples/week6/httprocessingpostimage/data/narwhal.jpeg
create mode 100644 examples/week6/httprocessingpostimage/httprocessingpostimage.pde
create mode 100755 examples/week6/imageupload/.htaccess
create mode 100755 examples/week6/imageupload/app.rb
create mode 100755 examples/week6/imageupload/config.ru
create mode 100644 examples/week6/imageupload/public/images/penguin.jpeg
create mode 100755 examples/week6/imageupload/tmp/always_restart.txt
create mode 100755 examples/week6/imageupload/views/form.erb
create mode 100644 examples/week6/imageupload/views/show_image.erb
diff --git a/examples/week6/httprocessingjsoupGet/code/jsoup-1.7.1.jar b/examples/week6/httprocessingjsoupGet/code/jsoup-1.7.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..75d9f6adc79ec007652f2df2a61bb6f37519def3
GIT binary patch
literal 278273
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