From 4c48a4b769de7ee0d1eae32a32dd461b6a9ae183 Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Mon, 19 Aug 2013 15:42:08 +0200 Subject: [PATCH] fetzneditions --- .../javascripts/fetzneditions.js.coffee | 3 + app/assets/stylesheets/fetzneditions.css.scss | 3 + app/controllers/fetzneditions_controller.rb | 83 +++++++++ app/helpers/fetzneditions_helper.rb | 2 + app/models/fetznedition.rb | 3 + app/views/fetzneditions/_form.html.erb | 12 ++ app/views/fetzneditions/edit.html.erb | 6 + app/views/fetzneditions/index.html.erb | 29 ++++ app/views/fetzneditions/new.html.erb | 5 + app/views/fetzneditions/show.html.erb | 25 +++ .../20130819134132_create_fetzneditions.rb | 12 ++ .../fetzneditions_controller_spec.rb | 160 ++++++++++++++++++ spec/factories/fetzneditions.rb | 10 ++ spec/helpers/fetzneditions_helper_spec.rb | 15 ++ spec/models/fetznedition_spec.rb | 5 + spec/requests/fetzneditions_spec.rb | 11 ++ spec/routing/fetzneditions_routing_spec.rb | 35 ++++ .../views/fetzneditions/edit.html.erb_spec.rb | 22 +++ .../fetzneditions/index.html.erb_spec.rb | 26 +++ spec/views/fetzneditions/new.html.erb_spec.rb | 22 +++ .../views/fetzneditions/show.html.erb_spec.rb | 19 +++ 21 files changed, 508 insertions(+) create mode 100644 app/assets/javascripts/fetzneditions.js.coffee create mode 100644 app/assets/stylesheets/fetzneditions.css.scss create mode 100644 app/controllers/fetzneditions_controller.rb create mode 100644 app/helpers/fetzneditions_helper.rb create mode 100644 app/models/fetznedition.rb create mode 100644 app/views/fetzneditions/_form.html.erb create mode 100644 app/views/fetzneditions/edit.html.erb create mode 100644 app/views/fetzneditions/index.html.erb create mode 100644 app/views/fetzneditions/new.html.erb create mode 100644 app/views/fetzneditions/show.html.erb create mode 100644 db/migrate/20130819134132_create_fetzneditions.rb create mode 100644 spec/controllers/fetzneditions_controller_spec.rb create mode 100644 spec/factories/fetzneditions.rb create mode 100644 spec/helpers/fetzneditions_helper_spec.rb create mode 100644 spec/models/fetznedition_spec.rb create mode 100644 spec/requests/fetzneditions_spec.rb create mode 100644 spec/routing/fetzneditions_routing_spec.rb create mode 100644 spec/views/fetzneditions/edit.html.erb_spec.rb create mode 100644 spec/views/fetzneditions/index.html.erb_spec.rb create mode 100644 spec/views/fetzneditions/new.html.erb_spec.rb create mode 100644 spec/views/fetzneditions/show.html.erb_spec.rb diff --git a/app/assets/javascripts/fetzneditions.js.coffee b/app/assets/javascripts/fetzneditions.js.coffee new file mode 100644 index 0000000..7615679 --- /dev/null +++ b/app/assets/javascripts/fetzneditions.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ diff --git a/app/assets/stylesheets/fetzneditions.css.scss b/app/assets/stylesheets/fetzneditions.css.scss new file mode 100644 index 0000000..db1edb7 --- /dev/null +++ b/app/assets/stylesheets/fetzneditions.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the fetzneditions controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/fetzneditions_controller.rb b/app/controllers/fetzneditions_controller.rb new file mode 100644 index 0000000..7b2de9e --- /dev/null +++ b/app/controllers/fetzneditions_controller.rb @@ -0,0 +1,83 @@ +class FetzneditionsController < ApplicationController + # GET /fetzneditions + # GET /fetzneditions.json + def index + @fetzneditions = Fetznedition.all + + respond_to do |format| + format.html # index.html.erb + format.json { render json: @fetzneditions } + end + end + + # GET /fetzneditions/1 + # GET /fetzneditions/1.json + def show + @fetznedition = Fetznedition.find(params[:id]) + + respond_to do |format| + format.html # show.html.erb + format.json { render json: @fetznedition } + end + end + + # GET /fetzneditions/new + # GET /fetzneditions/new.json + def new + @fetznedition = Fetznedition.new + + respond_to do |format| + format.html # new.html.erb + format.json { render json: @fetznedition } + end + end + + # GET /fetzneditions/1/edit + def edit + @fetznedition = Fetznedition.find(params[:id]) + end + + # POST /fetzneditions + # POST /fetzneditions.json + def create + @fetznedition = Fetznedition.new(params[:fetznedition]) + + respond_to do |format| + if @fetznedition.save + format.html { redirect_to @fetznedition, notice: 'Fetznedition was successfully created.' } + format.json { render json: @fetznedition, status: :created, location: @fetznedition } + else + format.html { render action: "new" } + format.json { render json: @fetznedition.errors, status: :unprocessable_entity } + end + end + end + + # PUT /fetzneditions/1 + # PUT /fetzneditions/1.json + def update + @fetznedition = Fetznedition.find(params[:id]) + + respond_to do |format| + if @fetznedition.update_attributes(params[:fetznedition]) + format.html { redirect_to @fetznedition, notice: 'Fetznedition was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @fetznedition.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /fetzneditions/1 + # DELETE /fetzneditions/1.json + def destroy + @fetznedition = Fetznedition.find(params[:id]) + @fetznedition.destroy + + respond_to do |format| + format.html { redirect_to fetzneditions_url } + format.json { head :no_content } + end + end +end diff --git a/app/helpers/fetzneditions_helper.rb b/app/helpers/fetzneditions_helper.rb new file mode 100644 index 0000000..ce72cd3 --- /dev/null +++ b/app/helpers/fetzneditions_helper.rb @@ -0,0 +1,2 @@ +module FetzneditionsHelper +end diff --git a/app/models/fetznedition.rb b/app/models/fetznedition.rb new file mode 100644 index 0000000..ff3046d --- /dev/null +++ b/app/models/fetznedition.rb @@ -0,0 +1,3 @@ +class Fetznedition < ActiveRecord::Base + attr_accessible :datei, :datum, :desc, :title +end diff --git a/app/views/fetzneditions/_form.html.erb b/app/views/fetzneditions/_form.html.erb new file mode 100644 index 0000000..217516a --- /dev/null +++ b/app/views/fetzneditions/_form.html.erb @@ -0,0 +1,12 @@ +<%= semantic_form_for @fetznedition do |f| %> + <%= f.inputs do %> + <%= f.input :title %> + <%= f.input :desc %> + <%= f.input :datum %> + <%= f.input :datei %> + <% end %> + + <%= f.actions do %> + <%= f.action :submit, :as => :input %> + <% end %> +<% end %> diff --git a/app/views/fetzneditions/edit.html.erb b/app/views/fetzneditions/edit.html.erb new file mode 100644 index 0000000..5fe0203 --- /dev/null +++ b/app/views/fetzneditions/edit.html.erb @@ -0,0 +1,6 @@ +

Editing fetznedition

+ +<%= render 'form' %> + +<%= link_to 'Show', @fetznedition %> | +<%= link_to 'Back', fetzneditions_path %> diff --git a/app/views/fetzneditions/index.html.erb b/app/views/fetzneditions/index.html.erb new file mode 100644 index 0000000..472810a --- /dev/null +++ b/app/views/fetzneditions/index.html.erb @@ -0,0 +1,29 @@ +

Listing fetzneditions

+ + + + + + + + + + + + +<% @fetzneditions.each do |fetznedition| %> + + + + + + + + + +<% end %> +
TitleDescDatumDatei
<%= fetznedition.title %><%= fetznedition.desc %><%= fetznedition.datum %><%= fetznedition.datei %><%= link_to 'Show', fetznedition %><%= link_to 'Edit', edit_fetznedition_path(fetznedition) %><%= link_to 'Destroy', fetznedition, method: :delete, data: { confirm: 'Are you sure?' } %>
+ +
+ +<%= link_to 'New Fetznedition', new_fetznedition_path %> diff --git a/app/views/fetzneditions/new.html.erb b/app/views/fetzneditions/new.html.erb new file mode 100644 index 0000000..51e30e3 --- /dev/null +++ b/app/views/fetzneditions/new.html.erb @@ -0,0 +1,5 @@ +

New fetznedition

+ +<%= render 'form' %> + +<%= link_to 'Back', fetzneditions_path %> diff --git a/app/views/fetzneditions/show.html.erb b/app/views/fetzneditions/show.html.erb new file mode 100644 index 0000000..33f1cf1 --- /dev/null +++ b/app/views/fetzneditions/show.html.erb @@ -0,0 +1,25 @@ +

<%= notice %>

+ +

+ Title: + <%= @fetznedition.title %> +

+ +

+ Desc: + <%= @fetznedition.desc %> +

+ +

+ Datum: + <%= @fetznedition.datum %> +

+ +

+ Datei: + <%= @fetznedition.datei %> +

+ + +<%= link_to 'Edit', edit_fetznedition_path(@fetznedition) %> | +<%= link_to 'Back', fetzneditions_path %> diff --git a/db/migrate/20130819134132_create_fetzneditions.rb b/db/migrate/20130819134132_create_fetzneditions.rb new file mode 100644 index 0000000..6246627 --- /dev/null +++ b/db/migrate/20130819134132_create_fetzneditions.rb @@ -0,0 +1,12 @@ +class CreateFetzneditions < ActiveRecord::Migration + def change + create_table :fetzneditions do |t| + t.string :title + t.text :desc + t.date :datum + t.string :datei + + t.timestamps + end + end +end diff --git a/spec/controllers/fetzneditions_controller_spec.rb b/spec/controllers/fetzneditions_controller_spec.rb new file mode 100644 index 0000000..9f5662f --- /dev/null +++ b/spec/controllers/fetzneditions_controller_spec.rb @@ -0,0 +1,160 @@ +require 'spec_helper' + +# This spec was generated by rspec-rails when you ran the scaffold generator. +# It demonstrates how one might use RSpec to specify the controller code that +# was generated by Rails when you ran the scaffold generator. +# +# It assumes that the implementation code is generated by the rails scaffold +# generator. If you are using any extension libraries to generate different +# controller code, this generated spec may or may not pass. +# +# It only uses APIs available in rails and/or rspec-rails. There are a number +# of tools you can use to make these specs even more expressive, but we're +# sticking to rails and rspec-rails APIs to keep things simple and stable. +# +# Compared to earlier versions of this generator, there is very limited use of +# stubs and message expectations in this spec. Stubs are only used when there +# is no simpler way to get a handle on the object needed for the example. +# Message expectations are only used when there is no simpler way to specify +# that an instance is receiving a specific message. + +describe FetzneditionsController do + + # This should return the minimal set of attributes required to create a valid + # Fetznedition. As you add validations to Fetznedition, be sure to + # adjust the attributes here as well. + let(:valid_attributes) { { "title" => "MyString" } } + + # This should return the minimal set of values that should be in the session + # in order to pass any filters (e.g. authentication) defined in + # FetzneditionsController. Be sure to keep this updated too. + let(:valid_session) { {} } + + describe "GET index" do + it "assigns all fetzneditions as @fetzneditions" do + fetznedition = Fetznedition.create! valid_attributes + get :index, {}, valid_session + assigns(:fetzneditions).should eq([fetznedition]) + end + end + + describe "GET show" do + it "assigns the requested fetznedition as @fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + get :show, {:id => fetznedition.to_param}, valid_session + assigns(:fetznedition).should eq(fetznedition) + end + end + + describe "GET new" do + it "assigns a new fetznedition as @fetznedition" do + get :new, {}, valid_session + assigns(:fetznedition).should be_a_new(Fetznedition) + end + end + + describe "GET edit" do + it "assigns the requested fetznedition as @fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + get :edit, {:id => fetznedition.to_param}, valid_session + assigns(:fetznedition).should eq(fetznedition) + end + end + + describe "POST create" do + describe "with valid params" do + it "creates a new Fetznedition" do + expect { + post :create, {:fetznedition => valid_attributes}, valid_session + }.to change(Fetznedition, :count).by(1) + end + + it "assigns a newly created fetznedition as @fetznedition" do + post :create, {:fetznedition => valid_attributes}, valid_session + assigns(:fetznedition).should be_a(Fetznedition) + assigns(:fetznedition).should be_persisted + end + + it "redirects to the created fetznedition" do + post :create, {:fetznedition => valid_attributes}, valid_session + response.should redirect_to(Fetznedition.last) + end + end + + describe "with invalid params" do + it "assigns a newly created but unsaved fetznedition as @fetznedition" do + # Trigger the behavior that occurs when invalid params are submitted + Fetznedition.any_instance.stub(:save).and_return(false) + post :create, {:fetznedition => { "title" => "invalid value" }}, valid_session + assigns(:fetznedition).should be_a_new(Fetznedition) + end + + it "re-renders the 'new' template" do + # Trigger the behavior that occurs when invalid params are submitted + Fetznedition.any_instance.stub(:save).and_return(false) + post :create, {:fetznedition => { "title" => "invalid value" }}, valid_session + response.should render_template("new") + end + end + end + + describe "PUT update" do + describe "with valid params" do + it "updates the requested fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + # Assuming there are no other fetzneditions in the database, this + # specifies that the Fetznedition created on the previous line + # receives the :update_attributes message with whatever params are + # submitted in the request. + Fetznedition.any_instance.should_receive(:update_attributes).with({ "title" => "MyString" }) + put :update, {:id => fetznedition.to_param, :fetznedition => { "title" => "MyString" }}, valid_session + end + + it "assigns the requested fetznedition as @fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + put :update, {:id => fetznedition.to_param, :fetznedition => valid_attributes}, valid_session + assigns(:fetznedition).should eq(fetznedition) + end + + it "redirects to the fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + put :update, {:id => fetznedition.to_param, :fetznedition => valid_attributes}, valid_session + response.should redirect_to(fetznedition) + end + end + + describe "with invalid params" do + it "assigns the fetznedition as @fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + # Trigger the behavior that occurs when invalid params are submitted + Fetznedition.any_instance.stub(:save).and_return(false) + put :update, {:id => fetznedition.to_param, :fetznedition => { "title" => "invalid value" }}, valid_session + assigns(:fetznedition).should eq(fetznedition) + end + + it "re-renders the 'edit' template" do + fetznedition = Fetznedition.create! valid_attributes + # Trigger the behavior that occurs when invalid params are submitted + Fetznedition.any_instance.stub(:save).and_return(false) + put :update, {:id => fetznedition.to_param, :fetznedition => { "title" => "invalid value" }}, valid_session + response.should render_template("edit") + end + end + end + + describe "DELETE destroy" do + it "destroys the requested fetznedition" do + fetznedition = Fetznedition.create! valid_attributes + expect { + delete :destroy, {:id => fetznedition.to_param}, valid_session + }.to change(Fetznedition, :count).by(-1) + end + + it "redirects to the fetzneditions list" do + fetznedition = Fetznedition.create! valid_attributes + delete :destroy, {:id => fetznedition.to_param}, valid_session + response.should redirect_to(fetzneditions_url) + end + end + +end diff --git a/spec/factories/fetzneditions.rb b/spec/factories/fetzneditions.rb new file mode 100644 index 0000000..13c3de2 --- /dev/null +++ b/spec/factories/fetzneditions.rb @@ -0,0 +1,10 @@ +# Read about factories at https://github.com/thoughtbot/factory_girl + +FactoryGirl.define do + factory :fetznedition do + title "MyString" + desc "MyText" + datum "2013-08-19" + datei "MyString" + end +end diff --git a/spec/helpers/fetzneditions_helper_spec.rb b/spec/helpers/fetzneditions_helper_spec.rb new file mode 100644 index 0000000..79232c0 --- /dev/null +++ b/spec/helpers/fetzneditions_helper_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +# Specs in this file have access to a helper object that includes +# the FetzneditionsHelper. For example: +# +# describe FetzneditionsHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +describe FetzneditionsHelper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/fetznedition_spec.rb b/spec/models/fetznedition_spec.rb new file mode 100644 index 0000000..afee13a --- /dev/null +++ b/spec/models/fetznedition_spec.rb @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe Fetznedition do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/requests/fetzneditions_spec.rb b/spec/requests/fetzneditions_spec.rb new file mode 100644 index 0000000..572d1ca --- /dev/null +++ b/spec/requests/fetzneditions_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe "Fetzneditions" do + describe "GET /fetzneditions" do + it "works! (now write some real specs)" do + # Run the generator again with the --webrat flag if you want to use webrat methods/matchers + get fetzneditions_path + response.status.should be(200) + end + end +end diff --git a/spec/routing/fetzneditions_routing_spec.rb b/spec/routing/fetzneditions_routing_spec.rb new file mode 100644 index 0000000..bb19f9c --- /dev/null +++ b/spec/routing/fetzneditions_routing_spec.rb @@ -0,0 +1,35 @@ +require "spec_helper" + +describe FetzneditionsController do + describe "routing" do + + it "routes to #index" do + get("/fetzneditions").should route_to("fetzneditions#index") + end + + it "routes to #new" do + get("/fetzneditions/new").should route_to("fetzneditions#new") + end + + it "routes to #show" do + get("/fetzneditions/1").should route_to("fetzneditions#show", :id => "1") + end + + it "routes to #edit" do + get("/fetzneditions/1/edit").should route_to("fetzneditions#edit", :id => "1") + end + + it "routes to #create" do + post("/fetzneditions").should route_to("fetzneditions#create") + end + + it "routes to #update" do + put("/fetzneditions/1").should route_to("fetzneditions#update", :id => "1") + end + + it "routes to #destroy" do + delete("/fetzneditions/1").should route_to("fetzneditions#destroy", :id => "1") + end + + end +end diff --git a/spec/views/fetzneditions/edit.html.erb_spec.rb b/spec/views/fetzneditions/edit.html.erb_spec.rb new file mode 100644 index 0000000..f27a6c4 --- /dev/null +++ b/spec/views/fetzneditions/edit.html.erb_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper' + +describe "fetzneditions/edit" do + before(:each) do + @fetznedition = assign(:fetznedition, stub_model(Fetznedition, + :title => "MyString", + :desc => "MyText", + :datei => "MyString" + )) + end + + it "renders the edit fetznedition form" do + render + + # Run the generator again with the --webrat flag if you want to use webrat matchers + assert_select "form[action=?][method=?]", fetznedition_path(@fetznedition), "post" do + assert_select "input#fetznedition_title[name=?]", "fetznedition[title]" + assert_select "textarea#fetznedition_desc[name=?]", "fetznedition[desc]" + assert_select "input#fetznedition_datei[name=?]", "fetznedition[datei]" + end + end +end diff --git a/spec/views/fetzneditions/index.html.erb_spec.rb b/spec/views/fetzneditions/index.html.erb_spec.rb new file mode 100644 index 0000000..db31c23 --- /dev/null +++ b/spec/views/fetzneditions/index.html.erb_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +describe "fetzneditions/index" do + before(:each) do + assign(:fetzneditions, [ + stub_model(Fetznedition, + :title => "Title", + :desc => "MyText", + :datei => "Datei" + ), + stub_model(Fetznedition, + :title => "Title", + :desc => "MyText", + :datei => "Datei" + ) + ]) + end + + it "renders a list of fetzneditions" do + render + # Run the generator again with the --webrat flag if you want to use webrat matchers + assert_select "tr>td", :text => "Title".to_s, :count => 2 + assert_select "tr>td", :text => "MyText".to_s, :count => 2 + assert_select "tr>td", :text => "Datei".to_s, :count => 2 + end +end diff --git a/spec/views/fetzneditions/new.html.erb_spec.rb b/spec/views/fetzneditions/new.html.erb_spec.rb new file mode 100644 index 0000000..2be1b98 --- /dev/null +++ b/spec/views/fetzneditions/new.html.erb_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper' + +describe "fetzneditions/new" do + before(:each) do + assign(:fetznedition, stub_model(Fetznedition, + :title => "MyString", + :desc => "MyText", + :datei => "MyString" + ).as_new_record) + end + + it "renders new fetznedition form" do + render + + # Run the generator again with the --webrat flag if you want to use webrat matchers + assert_select "form[action=?][method=?]", fetzneditions_path, "post" do + assert_select "input#fetznedition_title[name=?]", "fetznedition[title]" + assert_select "textarea#fetznedition_desc[name=?]", "fetznedition[desc]" + assert_select "input#fetznedition_datei[name=?]", "fetznedition[datei]" + end + end +end diff --git a/spec/views/fetzneditions/show.html.erb_spec.rb b/spec/views/fetzneditions/show.html.erb_spec.rb new file mode 100644 index 0000000..3559505 --- /dev/null +++ b/spec/views/fetzneditions/show.html.erb_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe "fetzneditions/show" do + before(:each) do + @fetznedition = assign(:fetznedition, stub_model(Fetznedition, + :title => "Title", + :desc => "MyText", + :datei => "Datei" + )) + end + + it "renders attributes in

" do + render + # Run the generator again with the --webrat flag if you want to use webrat matchers + rendered.should match(/Title/) + rendered.should match(/MyText/) + rendered.should match(/Datei/) + end +end