wbzyl-rails3-tutorial 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. data/README.markdown +14 -0
  2. data/Rakefile +34 -0
  3. data/TODO +6 -0
  4. data/VERSION.yml +4 -0
  5. data/config.ru +15 -0
  6. data/lib/config.ru +12 -0
  7. data/lib/public/images/bradypus.jpg +0 -0
  8. data/lib/public/images/leniwce_controller.png +0 -0
  9. data/lib/public/images/leniwce_controller.svg +284 -0
  10. data/lib/public/images/leniwiec.png +0 -0
  11. data/lib/public/images/leniwiec.svg +284 -0
  12. data/lib/public/images/mvc.png +0 -0
  13. data/lib/public/images/mvc.svg +243 -0
  14. data/lib/public/images/pablo_picasso.jpg +0 -0
  15. data/lib/public/images/pastie.png +0 -0
  16. data/lib/public/images/rails3.png +0 -0
  17. data/lib/public/images/rails3.svg +125 -0
  18. data/lib/public/images/the_thinker.jpg +0 -0
  19. data/lib/public/javascripts/ruby3.js +1 -0
  20. data/lib/public/stylesheets/icons/doc.png +0 -0
  21. data/lib/public/stylesheets/icons/email.png +0 -0
  22. data/lib/public/stylesheets/icons/external.png +0 -0
  23. data/lib/public/stylesheets/icons/feed.png +0 -0
  24. data/lib/public/stylesheets/icons/im.png +0 -0
  25. data/lib/public/stylesheets/icons/pdf.png +0 -0
  26. data/lib/public/stylesheets/icons/visited.png +0 -0
  27. data/lib/public/stylesheets/icons/xls.png +0 -0
  28. data/lib/public/stylesheets/ie.css +27 -0
  29. data/lib/public/stylesheets/print.css +30 -0
  30. data/lib/public/stylesheets/rails3.css +139 -0
  31. data/lib/public/stylesheets/screen.css +249 -0
  32. data/lib/public/stylesheets/src/grid.png +0 -0
  33. data/lib/public/stylesheets/uv.css +121 -0
  34. data/lib/rails3-tutorial.rb +72 -0
  35. data/lib/views/answers.rdiscount +0 -0
  36. data/lib/views/authentication.rdiscount +10 -0
  37. data/lib/views/blog.rdiscount +365 -0
  38. data/lib/views/caching.rdiscount +4 -0
  39. data/lib/views/exercises.rdiscount +67 -0
  40. data/lib/views/fortune.rdiscount +592 -0
  41. data/lib/views/intro.rdiscount +68 -0
  42. data/lib/views/layout.rdiscount +38 -0
  43. data/lib/views/main.rdiscount +32 -0
  44. data/lib/views/pastie.rdiscount +371 -0
  45. data/lib/views/store.rdiscount +99 -0
  46. data/lib/views/todo.rdiscount +245 -0
  47. data/rails3-tutorial.gemspec +101 -0
  48. metadata +168 -0
@@ -0,0 +1,99 @@
1
+ #### {% title "Store" %}
2
+
3
+ # Aplikacja: Store
4
+
5
+ Aplikacja jest wykorzystywana w screencastach
6
+ R. Batesa. Repozytorium do ściągnięcia z Githuba:
7
+
8
+ git://github.com/ryanb/railscasts-episodes.git
9
+ cd railscasts-episodes/templates/store
10
+
11
+ Katalog: *app*:
12
+
13
+ |-- app
14
+ | |-- controllers
15
+ | | |-- application_controller.rb
16
+ | | |-- categories_controller.rb
17
+ | | `-- products_controller.rb
18
+ | |-- helpers
19
+ | | |-- application_helper.rb
20
+ | | |-- categories_helper.rb
21
+ | | |-- layout_helper.rb
22
+ | | `-- products_helper.rb
23
+ | |-- models
24
+ | | |-- category.rb
25
+ | | `-- product.rb
26
+ | `-- views
27
+ | |-- categories
28
+ | | |-- _form.html.erb
29
+ | | |-- edit.html.erb
30
+ | | |-- index.html.erb
31
+ | | |-- new.html.erb
32
+ | | `-- show.html.erb
33
+ | |-- layouts
34
+ | | `-- application.html.erb
35
+ | `-- products
36
+ | |-- _form.html.erb
37
+ | |-- edit.html.erb
38
+ | |-- index.html.erb
39
+ | |-- new.html.erb
40
+ | `-- show.html.erb
41
+ |-- config
42
+ .
43
+ .
44
+ |-- db
45
+ | |-- development.sqlite3
46
+ | |-- migrate
47
+ | | |-- 20080621194238_create_categories.rb
48
+ | | `-- 20080621194423_create_products.rb
49
+ | `-- schema.rb
50
+ .
51
+ .
52
+ `-- vendor
53
+ `-- plugins
54
+
55
+ 28 directories, 73 files
56
+
57
+ Tak jak w wypadku aplikacji *Blog*,
58
+ aplikację *Store* zaczniemy analizować
59
+ od pliku *schema.rb*.
60
+ Następnie obejrzymy plik *routes.rb*.
61
+
62
+ Schemat bazy:
63
+
64
+ :::ruby
65
+ ActiveRecord::Schema.define(:version => 20080621194423) do
66
+
67
+ create_table "categories", :force => true do |t|
68
+ t.string "name"
69
+ t.datetime "created_at"
70
+ t.datetime "updated_at"
71
+ end
72
+
73
+ create_table "products", :force => true do |t|
74
+ t.integer "category_id"
75
+ t.string "name"
76
+ t.decimal "price"
77
+ t.text "description"
78
+ t.datetime "created_at"
79
+ t.datetime "updated_at"
80
+ end
81
+
82
+ end
83
+
84
+ Routing:
85
+
86
+ :::ruby
87
+ ActionController::Routing::Routes.draw do |map|
88
+ map.resources :products
89
+ map.resources :categories
90
+ map.root :products
91
+ end
92
+
93
+ Czy aplikacja *Store* chowa jakieś niespodzianki? TAK.
94
+
95
+
96
+ No to idziemy na poszukiwania:
97
+
98
+ rake db:migrate
99
+ script/server thin -p 3000
@@ -0,0 +1,245 @@
1
+ #### {% title "TODO" %}
2
+
3
+ # Aplikacja: Todo
4
+
5
+ Aplikacja jest wykorzystywana w screencastach
6
+ R. Batesa. Repozytorium do ściągnięcia z Githuba:
7
+
8
+ git://github.com/ryanb/railscasts-episodes.git
9
+ cd railscasts-episodes/templates/todo
10
+
11
+ Katalog: *app*:
12
+
13
+ |-- controllers
14
+ | |-- application_controller.rb
15
+ | |-- projects_controller.rb
16
+ | `-- tasks_controller.rb
17
+ |-- helpers
18
+ | |-- application_helper.rb
19
+ | |-- layout_helper.rb
20
+ | |-- projects_helper.rb
21
+ | `-- tasks_helper.rb
22
+ |-- models
23
+ | |-- project.rb
24
+ | `-- task.rb
25
+ `-- views
26
+ |-- layouts
27
+ | `-- application.html.erb
28
+ |-- projects
29
+ | |-- _form.html.erb
30
+ | |-- edit.html.erb
31
+ | |-- index.html.erb
32
+ | |-- new.html.erb
33
+ | `-- show.html.erb
34
+ `-- tasks
35
+ |-- _form.html.erb
36
+ |-- edit.html.erb
37
+ `-- new.html.erb
38
+
39
+ Migracje:
40
+
41
+ :::ruby
42
+ class CreateProjects < ActiveRecord::Migration
43
+ def self.up
44
+ create_table :projects do |t|
45
+ t.string :name
46
+ t.timestamps
47
+ end
48
+ end
49
+
50
+ def self.down
51
+ drop_table :projects
52
+ end
53
+ end
54
+
55
+ class CreateTasks < ActiveRecord::Migration
56
+ def self.up
57
+ create_table :tasks do |t|
58
+ t.integer :project_id
59
+ t.string :name
60
+ t.boolean :complete
61
+ t.timestamps
62
+ end
63
+ end
64
+
65
+ def self.down
66
+ drop_table :tasks
67
+ end
68
+ end
69
+
70
+ Modele:
71
+
72
+ :::ruby
73
+ class Project < ActiveRecord::Base
74
+ has_many :tasks
75
+ end
76
+
77
+ class Task < ActiveRecord::Base
78
+ belongs_to :project
79
+ end
80
+
81
+ Routing:
82
+
83
+ :::ruby
84
+ ActionController::Routing::Routes.draw do |map|
85
+ map.resources :projects, :tasks
86
+ map.root :projects
87
+ end
88
+
89
+ Kontroler *Project*:
90
+
91
+ :::ruby
92
+ class ProjectsController < ApplicationController
93
+ def index
94
+ @projects = Project.find(:all)
95
+ end
96
+
97
+ def show
98
+ @project = Project.find(params[:id])
99
+ end
100
+
101
+ def new
102
+ @project = Project.new
103
+ end
104
+
105
+ def create
106
+ @project = Project.new(params[:project])
107
+ if @project.save
108
+ flash[:notice] = "Successfully created project."
109
+ redirect_to @project
110
+ else
111
+ render :action => 'new'
112
+ end
113
+ end
114
+
115
+ def edit
116
+ @project = Project.find(params[:id])
117
+ end
118
+
119
+ def update
120
+ @project = Project.find(params[:id])
121
+ if @project.update_attributes(params[:project])
122
+ flash[:notice] = "Successfully updated project."
123
+ redirect_to @project
124
+ else
125
+ render :action => 'edit'
126
+ end
127
+ end
128
+
129
+ def destroy
130
+ @project = Project.find(params[:id])
131
+ @project.destroy
132
+ flash[:notice] = "Successfully destroyed project."
133
+ redirect_to projects_url
134
+ end
135
+ end
136
+
137
+ Kontroler *Task*:
138
+
139
+ :::ruby
140
+ class TasksController < ApplicationController
141
+ def new
142
+ @task = Task.new(:project_id => params[:project_id])
143
+ end
144
+
145
+ def create
146
+ @task = Task.new(params[:task])
147
+ if @task.save
148
+ flash[:notice] = "Successfully created task."
149
+ redirect_to @task.project
150
+ else
151
+ render :action => 'new'
152
+ end
153
+ end
154
+
155
+ def edit
156
+ @task = Task.find(params[:id])
157
+ end
158
+
159
+ def update
160
+ @task = Task.find(params[:id])
161
+ if @task.update_attributes(params[:task])
162
+ flash[:notice] = "Successfully updated task."
163
+ redirect_to @task.project
164
+ else
165
+ render :action => 'edit'
166
+ end
167
+ end
168
+
169
+ def destroy
170
+ @task = Task.find(params[:id])
171
+ @task.destroy
172
+ flash[:notice] = "Successfully destroyed task."
173
+ redirect_to @task.project
174
+ end
175
+ end
176
+
177
+ ## Widoki dla kontrolera *Projects*
178
+
179
+ Widok *index.html.erb*
180
+
181
+ :::html_rails
182
+ <% title "Projects" %>
183
+
184
+ <table>
185
+ <tr>
186
+ <th>Name</th>
187
+ </tr>
188
+ <% for project in @projects %>
189
+ <tr>
190
+ <td><%= link_to h(project.name), project %></td>
191
+ <td><%= link_to "Edit", edit_project_path(project) %></td>
192
+ <td><%= link_to "Destroy", project, :confirm => 'Are you sure?', :method => :delete %></td>
193
+ </tr>
194
+ <% end %>
195
+ </table>
196
+
197
+ <p><%= link_to "New Project", new_project_path %></p>
198
+
199
+ Widok: *show.html.erb*:
200
+
201
+ :::html_rails
202
+ <% title @project.name %>
203
+
204
+ <h2>Tasks</h2>
205
+ <ul>
206
+ <% for task in @project.tasks %>
207
+ <li>
208
+ <%=h task.name %>
209
+ (<%= link_to "Edit", edit_task_path(task) %> |
210
+ <%= link_to "Destroy", task, :confirm => "Are you sure?", :method => :delete %>)
211
+ </li>
212
+ <% end %>
213
+ </ul>
214
+
215
+ <p>
216
+ <!-- kluczowy wiersz kodu -->
217
+ <%= link_to "New Task", new_task_path(:project_id => @project) %> |
218
+ <%= link_to "View All Projects", projects_path %>
219
+ </p>
220
+
221
+ Reszta widoków jest standardowa.
222
+
223
+
224
+ ## Widoki dla kontrolera *Tasks*
225
+
226
+ Implemetujemy tylko widoki: *edit.html.erb* i *new.html.erb*.
227
+ Więcej widoków nie potrzebujemy.
228
+
229
+ Najciekawszy, ze wzgledu na *hidden_filed* jest widok częściowy
230
+ *_form.html.erb* dla widoków *edit.html.erb* i *new.html.erb*:
231
+
232
+ :::html_rails
233
+ <%= error_messages_for :task %>
234
+ <% form_for @task do |f| %>
235
+ <%= f.hidden_field :project_id %>
236
+ <p>
237
+ <%= f.label :name %><br />
238
+ <%= f.text_field :name %>
239
+ </p>
240
+ <p>
241
+ <%= f.check_box :complete %> <!-- niewykorzystane -->
242
+ <%= f.label :complete %>
243
+ </p>
244
+ <p><%= f.submit "Submit" %></p>
245
+ <% end %>
@@ -0,0 +1,101 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{rails3-tutorial}
5
+ s.version = "0.0.2"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Wlodek Bzyl"]
9
+ s.date = %q{2009-06-24}
10
+ s.description = %q{Notatki do frameworka Rails3
11
+ }
12
+ s.email = %q{matwb@univ.gda.pl}
13
+ s.extra_rdoc_files = [
14
+ "README.markdown"
15
+ ]
16
+ s.files = [
17
+ "Rakefile",
18
+ "TODO",
19
+ "VERSION.yml",
20
+ "config.ru",
21
+ "lib/config.ru",
22
+ "lib/public/images/bradypus.jpg",
23
+ "lib/public/images/leniwce_controller.png",
24
+ "lib/public/images/leniwce_controller.svg",
25
+ "lib/public/images/leniwiec.png",
26
+ "lib/public/images/leniwiec.svg",
27
+ "lib/public/images/mvc.png",
28
+ "lib/public/images/mvc.svg",
29
+ "lib/public/images/pablo_picasso.jpg",
30
+ "lib/public/images/pastie.png",
31
+ "lib/public/images/rails3.png",
32
+ "lib/public/images/rails3.svg",
33
+ "lib/public/images/the_thinker.jpg",
34
+ "lib/public/javascripts/ruby3.js",
35
+ "lib/public/stylesheets/icons/doc.png",
36
+ "lib/public/stylesheets/icons/email.png",
37
+ "lib/public/stylesheets/icons/external.png",
38
+ "lib/public/stylesheets/icons/feed.png",
39
+ "lib/public/stylesheets/icons/im.png",
40
+ "lib/public/stylesheets/icons/pdf.png",
41
+ "lib/public/stylesheets/icons/visited.png",
42
+ "lib/public/stylesheets/icons/xls.png",
43
+ "lib/public/stylesheets/ie.css",
44
+ "lib/public/stylesheets/print.css",
45
+ "lib/public/stylesheets/rails3.css",
46
+ "lib/public/stylesheets/screen.css",
47
+ "lib/public/stylesheets/src/grid.png",
48
+ "lib/public/stylesheets/uv.css",
49
+ "lib/rails3-tutorial.rb",
50
+ "lib/views/answers.rdiscount",
51
+ "lib/views/authentication.rdiscount",
52
+ "lib/views/blog.rdiscount",
53
+ "lib/views/caching.rdiscount",
54
+ "lib/views/exercises.rdiscount",
55
+ "lib/views/fortune.rdiscount",
56
+ "lib/views/intro.rdiscount",
57
+ "lib/views/layout.rdiscount",
58
+ "lib/views/main.rdiscount",
59
+ "lib/views/pastie.rdiscount",
60
+ "lib/views/store.rdiscount",
61
+ "lib/views/todo.rdiscount",
62
+ "rails3-tutorial.gemspec"
63
+ ]
64
+ s.homepage = %q{http://github.com/wbzyl/rails3-tutorial}
65
+ s.rdoc_options = ["--charset=UTF-8"]
66
+ s.require_paths = ["lib"]
67
+ s.rubyforge_project = %q{rails3-tutorial}
68
+ s.rubygems_version = %q{1.3.4}
69
+ s.summary = %q{Prosta aplikacja Sinatry do notatek.}
70
+
71
+ if s.respond_to? :specification_version then
72
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
73
+ s.specification_version = 3
74
+
75
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
76
+ s.add_runtime_dependency(%q<rack>, [">= 0"])
77
+ s.add_runtime_dependency(%q<sinatra>, [">= 0"])
78
+ s.add_runtime_dependency(%q<rdiscount>, [">= 0"])
79
+ s.add_runtime_dependency(%q<ultraviolet>, [">= 0"])
80
+ s.add_runtime_dependency(%q<coderay>, [">= 0"])
81
+ s.add_runtime_dependency(%q<wbzyl-sinatra-rdiscount>, [">= 0"])
82
+ s.add_runtime_dependency(%q<wbzyl-rack-codehighlighter>, [">= 0"])
83
+ else
84
+ s.add_dependency(%q<rack>, [">= 0"])
85
+ s.add_dependency(%q<sinatra>, [">= 0"])
86
+ s.add_dependency(%q<rdiscount>, [">= 0"])
87
+ s.add_dependency(%q<ultraviolet>, [">= 0"])
88
+ s.add_dependency(%q<coderay>, [">= 0"])
89
+ s.add_dependency(%q<wbzyl-sinatra-rdiscount>, [">= 0"])
90
+ s.add_dependency(%q<wbzyl-rack-codehighlighter>, [">= 0"])
91
+ end
92
+ else
93
+ s.add_dependency(%q<rack>, [">= 0"])
94
+ s.add_dependency(%q<sinatra>, [">= 0"])
95
+ s.add_dependency(%q<rdiscount>, [">= 0"])
96
+ s.add_dependency(%q<ultraviolet>, [">= 0"])
97
+ s.add_dependency(%q<coderay>, [">= 0"])
98
+ s.add_dependency(%q<wbzyl-sinatra-rdiscount>, [">= 0"])
99
+ s.add_dependency(%q<wbzyl-rack-codehighlighter>, [">= 0"])
100
+ end
101
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wbzyl-rails3-tutorial
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Wlodek Bzyl
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-24 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: sinatra
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rdiscount
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: ultraviolet
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: coderay
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: wbzyl-sinatra-rdiscount
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: wbzyl-rack-codehighlighter
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ description: Notatki do frameworka Rails3
86
+ email: matwb@univ.gda.pl
87
+ executables: []
88
+
89
+ extensions: []
90
+
91
+ extra_rdoc_files:
92
+ - README.markdown
93
+ files:
94
+ - Rakefile
95
+ - TODO
96
+ - VERSION.yml
97
+ - config.ru
98
+ - lib/config.ru
99
+ - lib/public/images/bradypus.jpg
100
+ - lib/public/images/leniwce_controller.png
101
+ - lib/public/images/leniwce_controller.svg
102
+ - lib/public/images/leniwiec.png
103
+ - lib/public/images/leniwiec.svg
104
+ - lib/public/images/mvc.png
105
+ - lib/public/images/mvc.svg
106
+ - lib/public/images/pablo_picasso.jpg
107
+ - lib/public/images/pastie.png
108
+ - lib/public/images/rails3.png
109
+ - lib/public/images/rails3.svg
110
+ - lib/public/images/the_thinker.jpg
111
+ - lib/public/javascripts/ruby3.js
112
+ - lib/public/stylesheets/icons/doc.png
113
+ - lib/public/stylesheets/icons/email.png
114
+ - lib/public/stylesheets/icons/external.png
115
+ - lib/public/stylesheets/icons/feed.png
116
+ - lib/public/stylesheets/icons/im.png
117
+ - lib/public/stylesheets/icons/pdf.png
118
+ - lib/public/stylesheets/icons/visited.png
119
+ - lib/public/stylesheets/icons/xls.png
120
+ - lib/public/stylesheets/ie.css
121
+ - lib/public/stylesheets/print.css
122
+ - lib/public/stylesheets/rails3.css
123
+ - lib/public/stylesheets/screen.css
124
+ - lib/public/stylesheets/src/grid.png
125
+ - lib/public/stylesheets/uv.css
126
+ - lib/rails3-tutorial.rb
127
+ - lib/views/answers.rdiscount
128
+ - lib/views/authentication.rdiscount
129
+ - lib/views/blog.rdiscount
130
+ - lib/views/caching.rdiscount
131
+ - lib/views/exercises.rdiscount
132
+ - lib/views/fortune.rdiscount
133
+ - lib/views/intro.rdiscount
134
+ - lib/views/layout.rdiscount
135
+ - lib/views/main.rdiscount
136
+ - lib/views/pastie.rdiscount
137
+ - lib/views/store.rdiscount
138
+ - lib/views/todo.rdiscount
139
+ - rails3-tutorial.gemspec
140
+ - README.markdown
141
+ has_rdoc: false
142
+ homepage: http://github.com/wbzyl/rails3-tutorial
143
+ post_install_message:
144
+ rdoc_options:
145
+ - --charset=UTF-8
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: "0"
153
+ version:
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: "0"
159
+ version:
160
+ requirements: []
161
+
162
+ rubyforge_project: rails3-tutorial
163
+ rubygems_version: 1.2.0
164
+ signing_key:
165
+ specification_version: 3
166
+ summary: Prosta aplikacja Sinatry do notatek.
167
+ test_files: []
168
+