Permalink
Please sign in to comment.
Showing
with
8,577 additions
and 0 deletions.
- +8 −0 README
- +4 −0 store/.gitignore
- +8 −0 store/Gemfile
- +82 −0 store/Gemfile.lock
- +256 −0 store/README
- +7 −0 store/Rakefile
- +3 −0 store/app/controllers/application_controller.rb
- +44 −0 store/app/controllers/products_controller.rb
- +8 −0 store/app/helpers/application_helper.rb
- +23 −0 store/app/helpers/error_messages_helper.rb
- +22 −0 store/app/helpers/layout_helper.rb
- +2 −0 store/app/helpers/products_helper.rb
- +11 −0 store/app/models/product.rb
- +9 −0 store/app/views/kaminari/_current_page.html.erb
- +12 −0 store/app/views/kaminari/_first_page_link.html.erb
- +12 −0 store/app/views/kaminari/_last_page_link.html.erb
- +11 −0 store/app/views/kaminari/_next_link.html.erb
- +8 −0 store/app/views/kaminari/_next_span.html.erb
- +12 −0 store/app/views/kaminari/_page_link.html.erb
- +29 −0 store/app/views/kaminari/_paginator.html.erb
- +11 −0 store/app/views/kaminari/_prev_link.html.erb
- +8 −0 store/app/views/kaminari/_prev_span.html.erb
- +8 −0 store/app/views/kaminari/_truncated_span.html.erb
- +19 −0 store/app/views/layouts/application.html.erb
- +16 −0 store/app/views/products/_form.html.erb
- +8 −0 store/app/views/products/edit.html.erb
- +15 −0 store/app/views/products/index.html.erb
- +5 −0 store/app/views/products/new.html.erb
- +20 −0 store/app/views/products/show.html.erb
- +4 −0 store/config.ru
- +42 −0 store/config/application.rb
- +13 −0 store/config/boot.rb
- +22 −0 store/config/database.yml
- +5 −0 store/config/environment.rb
- +22 −0 store/config/environments/development.rb
- +49 −0 store/config/environments/production.rb
- +35 −0 store/config/environments/test.rb
- +7 −0 store/config/initializers/backtrace_silencers.rb
- +10 −0 store/config/initializers/inflections.rb
- +5 −0 store/config/initializers/mime_types.rb
- +4 −0 store/config/initializers/renderers.rb
- +7 −0 store/config/initializers/secret_token.rb
- +8 −0 store/config/initializers/session_store.rb
- +10 −0 store/config/locales/en.yml
- +61 −0 store/config/routes.rb
- +14 −0 store/db/migrate/20100823060835_create_products.rb
- +23 −0 store/db/schema.rb
- +7 −0 store/db/seeds.rb
- +2 −0 store/doc/README_FOR_APP
- 0 store/lib/tasks/.gitkeep
- +26 −0 store/public/404.html
- +26 −0 store/public/422.html
- +26 −0 store/public/500.html
- 0 store/public/favicon.ico
- BIN store/public/images/down_arrow.gif
- BIN store/public/images/rails.png
- BIN store/public/images/up_arrow.gif
- 0 store/public/javascripts/application.js
- +6,883 −0 store/public/javascripts/jquery.js
- +166 −0 store/public/javascripts/jquery.min.js
- +156 −0 store/public/javascripts/rails.js
- +5 −0 store/public/robots.txt
- 0 store/public/stylesheets/.gitkeep
- +116 −0 store/public/stylesheets/application.css
- +6 −0 store/script/rails
- +53 −0 store/test/fixtures/products.yml
- +54 −0 store/test/functional/products_controller_test.rb
- +9 −0 store/test/performance/browsing_test.rb
- +13 −0 store/test/test_helper.rb
- +7 −0 store/test/unit/product_test.rb
- 0 store/vendor/plugins/.gitkeep
8
README
@@ -0,0 +1,8 @@ | ||
+Railscasts Episode #254: Pagination with Kaminari | ||
+ | ||
+http://railscasts.com/episodes/254 | ||
+ | ||
+Commands | ||
+ | ||
+ bundle | ||
+ rails g kaminari:views default |
@@ -0,0 +1,4 @@ | ||
+.bundle | ||
+db/*.sqlite3 | ||
+log/*.log | ||
+tmp/**/* |
@@ -0,0 +1,8 @@ | ||
+source 'http://rubygems.org' | ||
+ | ||
+gem 'rails', '3.0.3' | ||
+gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' | ||
+gem 'nifty-generators' | ||
+gem 'jquery-rails' | ||
+ | ||
+gem 'kaminari' |
@@ -0,0 +1,82 @@ | ||
+GEM | ||
+ remote: http://rubygems.org/ | ||
+ specs: | ||
+ abstract (1.0.0) | ||
+ actionmailer (3.0.3) | ||
+ actionpack (= 3.0.3) | ||
+ mail (~> 2.2.9) | ||
+ actionpack (3.0.3) | ||
+ activemodel (= 3.0.3) | ||
+ activesupport (= 3.0.3) | ||
+ builder (~> 2.1.2) | ||
+ erubis (~> 2.6.6) | ||
+ i18n (~> 0.4) | ||
+ rack (~> 1.2.1) | ||
+ rack-mount (~> 0.6.13) | ||
+ rack-test (~> 0.5.6) | ||
+ tzinfo (~> 0.3.23) | ||
+ activemodel (3.0.3) | ||
+ activesupport (= 3.0.3) | ||
+ builder (~> 2.1.2) | ||
+ i18n (~> 0.4) | ||
+ activerecord (3.0.3) | ||
+ activemodel (= 3.0.3) | ||
+ activesupport (= 3.0.3) | ||
+ arel (~> 2.0.2) | ||
+ tzinfo (~> 0.3.23) | ||
+ activeresource (3.0.3) | ||
+ activemodel (= 3.0.3) | ||
+ activesupport (= 3.0.3) | ||
+ activesupport (3.0.3) | ||
+ arel (2.0.6) | ||
+ builder (2.1.2) | ||
+ erubis (2.6.6) | ||
+ abstract (>= 1.0.0) | ||
+ i18n (0.5.0) | ||
+ jquery-rails (0.2.6) | ||
+ rails (~> 3.0) | ||
+ thor (~> 0.14.4) | ||
+ kaminari (0.10.1) | ||
+ rails (>= 3.0.0) | ||
+ mail (2.2.12) | ||
+ activesupport (>= 2.3.6) | ||
+ i18n (>= 0.4.0) | ||
+ mime-types (~> 1.16) | ||
+ treetop (~> 1.4.8) | ||
+ mime-types (1.16) | ||
+ nifty-generators (0.4.2) | ||
+ polyglot (0.3.1) | ||
+ rack (1.2.1) | ||
+ rack-mount (0.6.13) | ||
+ rack (>= 1.0.0) | ||
+ rack-test (0.5.6) | ||
+ rack (>= 1.0) | ||
+ rails (3.0.3) | ||
+ actionmailer (= 3.0.3) | ||
+ actionpack (= 3.0.3) | ||
+ activerecord (= 3.0.3) | ||
+ activeresource (= 3.0.3) | ||
+ activesupport (= 3.0.3) | ||
+ bundler (~> 1.0) | ||
+ railties (= 3.0.3) | ||
+ railties (3.0.3) | ||
+ actionpack (= 3.0.3) | ||
+ activesupport (= 3.0.3) | ||
+ rake (>= 0.8.7) | ||
+ thor (~> 0.14.4) | ||
+ rake (0.8.7) | ||
+ sqlite3-ruby (1.2.5) | ||
+ thor (0.14.6) | ||
+ treetop (1.4.9) | ||
+ polyglot (>= 0.3.1) | ||
+ tzinfo (0.3.23) | ||
+ | ||
+PLATFORMS | ||
+ ruby | ||
+ | ||
+DEPENDENCIES | ||
+ jquery-rails | ||
+ kaminari | ||
+ nifty-generators | ||
+ rails (= 3.0.3) | ||
+ sqlite3-ruby (= 1.2.5) |
256
store/README
@@ -0,0 +1,256 @@ | ||
+== Welcome to Rails | ||
+ | ||
+Rails is a web-application framework that includes everything needed to create | ||
+database-backed web applications according to the Model-View-Control pattern. | ||
+ | ||
+This pattern splits the view (also called the presentation) into "dumb" | ||
+templates that are primarily responsible for inserting pre-built data in between | ||
+HTML tags. The model contains the "smart" domain objects (such as Account, | ||
+Product, Person, Post) that holds all the business logic and knows how to | ||
+persist themselves to a database. The controller handles the incoming requests | ||
+(such as Save New Account, Update Product, Show Post) by manipulating the model | ||
+and directing data to the view. | ||
+ | ||
+In Rails, the model is handled by what's called an object-relational mapping | ||
+layer entitled Active Record. This layer allows you to present the data from | ||
+database rows as objects and embellish these data objects with business logic | ||
+methods. You can read more about Active Record in | ||
+link:files/vendor/rails/activerecord/README.html. | ||
+ | ||
+The controller and view are handled by the Action Pack, which handles both | ||
+layers by its two parts: Action View and Action Controller. These two layers | ||
+are bundled in a single package due to their heavy interdependence. This is | ||
+unlike the relationship between the Active Record and Action Pack that is much | ||
+more separate. Each of these packages can be used independently outside of | ||
+Rails. You can read more about Action Pack in | ||
+link:files/vendor/rails/actionpack/README.html. | ||
+ | ||
+ | ||
+== Getting Started | ||
+ | ||
+1. At the command prompt, create a new Rails application: | ||
+ <tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name) | ||
+ | ||
+2. Change directory to <tt>myapp</tt> and start the web server: | ||
+ <tt>cd myapp; rails server</tt> (run with --help for options) | ||
+ | ||
+3. Go to http://localhost:3000/ and you'll see: | ||
+ "Welcome aboard: You're riding Ruby on Rails!" | ||
+ | ||
+4. Follow the guidelines to start developing your application. You can find | ||
+the following resources handy: | ||
+ | ||
+* The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html | ||
+* Ruby on Rails Tutorial Book: http://www.railstutorial.org/ | ||
+ | ||
+ | ||
+== Debugging Rails | ||
+ | ||
+Sometimes your application goes wrong. Fortunately there are a lot of tools that | ||
+will help you debug it and get it back on the rails. | ||
+ | ||
+First area to check is the application log files. Have "tail -f" commands | ||
+running on the server.log and development.log. Rails will automatically display | ||
+debugging and runtime information to these files. Debugging info will also be | ||
+shown in the browser on requests from 127.0.0.1. | ||
+ | ||
+You can also log your own messages directly into the log file from your code | ||
+using the Ruby logger class from inside your controllers. Example: | ||
+ | ||
+ class WeblogController < ActionController::Base | ||
+ def destroy | ||
+ @weblog = Weblog.find(params[:id]) | ||
+ @weblog.destroy | ||
+ logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") | ||
+ end | ||
+ end | ||
+ | ||
+The result will be a message in your log file along the lines of: | ||
+ | ||
+ Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! | ||
+ | ||
+More information on how to use the logger is at http://www.ruby-doc.org/core/ | ||
+ | ||
+Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are | ||
+several books available online as well: | ||
+ | ||
+* Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) | ||
+* Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) | ||
+ | ||
+These two books will bring you up to speed on the Ruby language and also on | ||
+programming in general. | ||
+ | ||
+ | ||
+== Debugger | ||
+ | ||
+Debugger support is available through the debugger command when you start your | ||
+Mongrel or WEBrick server with --debugger. This means that you can break out of | ||
+execution at any point in the code, investigate and change the model, and then, | ||
+resume execution! You need to install ruby-debug to run the server in debugging | ||
+mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example: | ||
+ | ||
+ class WeblogController < ActionController::Base | ||
+ def index | ||
+ @posts = Post.find(:all) | ||
+ debugger | ||
+ end | ||
+ end | ||
+ | ||
+So the controller will accept the action, run the first line, then present you | ||
+with a IRB prompt in the server window. Here you can do things like: | ||
+ | ||
+ >> @posts.inspect | ||
+ => "[#<Post:0x14a6be8 | ||
+ @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>, | ||
+ #<Post:0x14a6620 | ||
+ @attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]" | ||
+ >> @posts.first.title = "hello from a debugger" | ||
+ => "hello from a debugger" | ||
+ | ||
+...and even better, you can examine how your runtime objects actually work: | ||
+ | ||
+ >> f = @posts.first | ||
+ => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | ||
+ >> f. | ||
+ Display all 152 possibilities? (y or n) | ||
+ | ||
+Finally, when you're ready to resume execution, you can enter "cont". | ||
+ | ||
+ | ||
+== Console | ||
+ | ||
+The console is a Ruby shell, which allows you to interact with your | ||
+application's domain model. Here you'll have all parts of the application | ||
+configured, just like it is when the application is running. You can inspect | ||
+domain models, change values, and save to the database. Starting the script | ||
+without arguments will launch it in the development environment. | ||
+ | ||
+To start the console, run <tt>rails console</tt> from the application | ||
+directory. | ||
+ | ||
+Options: | ||
+ | ||
+* Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications | ||
+ made to the database. | ||
+* Passing an environment name as an argument will load the corresponding | ||
+ environment. Example: <tt>rails console production</tt>. | ||
+ | ||
+To reload your controllers and models after launching the console run | ||
+<tt>reload!</tt> | ||
+ | ||
+More information about irb can be found at: | ||
+link:http://www.rubycentral.com/pickaxe/irb.html | ||
+ | ||
+ | ||
+== dbconsole | ||
+ | ||
+You can go to the command line of your database directly through <tt>rails | ||
+dbconsole</tt>. You would be connected to the database with the credentials | ||
+defined in database.yml. Starting the script without arguments will connect you | ||
+to the development database. Passing an argument will connect you to a different | ||
+database, like <tt>rails dbconsole production</tt>. Currently works for MySQL, | ||
+PostgreSQL and SQLite 3. | ||
+ | ||
+== Description of Contents | ||
+ | ||
+The default directory structure of a generated Ruby on Rails application: | ||
+ | ||
+ |-- app | ||
+ | |-- controllers | ||
+ | |-- helpers | ||
+ | |-- models | ||
+ | `-- views | ||
+ | `-- layouts | ||
+ |-- config | ||
+ | |-- environments | ||
+ | |-- initializers | ||
+ | `-- locales | ||
+ |-- db | ||
+ |-- doc | ||
+ |-- lib | ||
+ | `-- tasks | ||
+ |-- log | ||
+ |-- public | ||
+ | |-- images | ||
+ | |-- javascripts | ||
+ | `-- stylesheets | ||
+ |-- script | ||
+ | `-- performance | ||
+ |-- test | ||
+ | |-- fixtures | ||
+ | |-- functional | ||
+ | |-- integration | ||
+ | |-- performance | ||
+ | `-- unit | ||
+ |-- tmp | ||
+ | |-- cache | ||
+ | |-- pids | ||
+ | |-- sessions | ||
+ | `-- sockets | ||
+ `-- vendor | ||
+ `-- plugins | ||
+ | ||
+app | ||
+ Holds all the code that's specific to this particular application. | ||
+ | ||
+app/controllers | ||
+ Holds controllers that should be named like weblogs_controller.rb for | ||
+ automated URL mapping. All controllers should descend from | ||
+ ApplicationController which itself descends from ActionController::Base. | ||
+ | ||
+app/models | ||
+ Holds models that should be named like post.rb. Models descend from | ||
+ ActiveRecord::Base by default. | ||
+ | ||
+app/views | ||
+ Holds the template files for the view that should be named like | ||
+ weblogs/index.html.erb for the WeblogsController#index action. All views use | ||
+ eRuby syntax by default. | ||
+ | ||
+app/views/layouts | ||
+ Holds the template files for layouts to be used with views. This models the | ||
+ common header/footer method of wrapping views. In your views, define a layout | ||
+ using the <tt>layout :default</tt> and create a file named default.html.erb. | ||
+ Inside default.html.erb, call <% yield %> to render the view using this | ||
+ layout. | ||
+ | ||
+app/helpers | ||
+ Holds view helpers that should be named like weblogs_helper.rb. These are | ||
+ generated for you automatically when using generators for controllers. | ||
+ Helpers can be used to wrap functionality for your views into methods. | ||
+ | ||
+config | ||
+ Configuration files for the Rails environment, the routing map, the database, | ||
+ and other dependencies. | ||
+ | ||
+db | ||
+ Contains the database schema in schema.rb. db/migrate contains all the | ||
+ sequence of Migrations for your schema. | ||
+ | ||
+doc | ||
+ This directory is where your application documentation will be stored when | ||
+ generated using <tt>rake doc:app</tt> | ||
+ | ||
+lib | ||
+ Application specific libraries. Basically, any kind of custom code that | ||
+ doesn't belong under controllers, models, or helpers. This directory is in | ||
+ the load path. | ||
+ | ||
+public | ||
+ The directory available for the web server. Contains subdirectories for | ||
+ images, stylesheets, and javascripts. Also contains the dispatchers and the | ||
+ default HTML files. This should be set as the DOCUMENT_ROOT of your web | ||
+ server. | ||
+ | ||
+script | ||
+ Helper scripts for automation and generation. | ||
+ | ||
+test | ||
+ Unit and functional tests along with fixtures. When using the rails generate | ||
+ command, template test files will be generated for you and placed in this | ||
+ directory. | ||
+ | ||
+vendor | ||
+ External libraries that the application depends on. Also includes the plugins | ||
+ subdirectory. If the app has frozen rails, those gems also go here, under | ||
+ vendor/rails/. This directory is in the load path. |
@@ -0,0 +1,7 @@ | ||
+# Add your own tasks in files placed in lib/tasks ending in .rake, | ||
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||
+ | ||
+require File.expand_path('../config/application', __FILE__) | ||
+require 'rake' | ||
+ | ||
+Store::Application.load_tasks |
@@ -0,0 +1,3 @@ | ||
+class ApplicationController < ActionController::Base | ||
+ protect_from_forgery | ||
+end |

Oops, something went wrong.
0 comments on commit
89a65ea