bumble 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. data/.gitignore +16 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +4 -0
  4. data/Rakefile +1 -0
  5. data/Readme.mdown +8 -0
  6. data/app/controllers/bumble_controller.rb +45 -0
  7. data/app/controllers/comments_controller.rb +99 -0
  8. data/app/controllers/password_resets_controller.rb +34 -0
  9. data/app/controllers/posts_controller.rb +103 -0
  10. data/app/controllers/user_sessions_controller.rb +22 -0
  11. data/app/controllers/users_controller.rb +60 -0
  12. data/app/helpers/bumble_helper.rb +50 -0
  13. data/app/models/asset.rb +57 -0
  14. data/app/models/comment.rb +78 -0
  15. data/app/models/notifier.rb +35 -0
  16. data/app/models/post.rb +57 -0
  17. data/app/models/posts/blog.rb +3 -0
  18. data/app/models/posts/code.rb +3 -0
  19. data/app/models/posts/image.rb +3 -0
  20. data/app/models/posts/link.rb +7 -0
  21. data/app/models/posts/quote.rb +3 -0
  22. data/app/models/posts/video.rb +4 -0
  23. data/app/models/user.rb +35 -0
  24. data/app/models/user_session.rb +2 -0
  25. data/app/views/comments/_comment.html.haml +14 -0
  26. data/app/views/comments/_form.html.haml +9 -0
  27. data/app/views/comments/edit.html.haml +7 -0
  28. data/app/views/comments/index.atom.builder +15 -0
  29. data/app/views/comments/new.html.haml +7 -0
  30. data/app/views/layouts/_sidebar.html.haml +20 -0
  31. data/app/views/layouts/bumble.html.haml +35 -0
  32. data/app/views/notifier/activation_confirmation.erb +5 -0
  33. data/app/views/notifier/activation_instructions.erb +5 -0
  34. data/app/views/notifier/new_comment_alert.erb +8 -0
  35. data/app/views/notifier/password_reset_instructions.erb +8 -0
  36. data/app/views/password_resets/edit.html.haml +10 -0
  37. data/app/views/password_resets/new.html.haml +7 -0
  38. data/app/views/posts/_form.html.haml +10 -0
  39. data/app/views/posts/_post.html.haml +16 -0
  40. data/app/views/posts/_preview.html.haml +8 -0
  41. data/app/views/posts/edit.html.haml +10 -0
  42. data/app/views/posts/forms/_blog.html.haml +4 -0
  43. data/app/views/posts/forms/_code.html.haml +6 -0
  44. data/app/views/posts/forms/_image.html.haml +9 -0
  45. data/app/views/posts/forms/_link.html.haml +6 -0
  46. data/app/views/posts/forms/_quote.html.haml +4 -0
  47. data/app/views/posts/forms/_video.html.haml +6 -0
  48. data/app/views/posts/index.atom.builder +15 -0
  49. data/app/views/posts/index.html.haml +21 -0
  50. data/app/views/posts/new.html.haml +8 -0
  51. data/app/views/posts/search.html.haml +27 -0
  52. data/app/views/posts/show.html.haml +22 -0
  53. data/app/views/posts/types/_blog.html.haml +4 -0
  54. data/app/views/posts/types/_code.html.haml +7 -0
  55. data/app/views/posts/types/_image.html.haml +3 -0
  56. data/app/views/posts/types/_link.html.haml +3 -0
  57. data/app/views/posts/types/_quote.html.haml +2 -0
  58. data/app/views/posts/types/_video.html.haml +5 -0
  59. data/app/views/user_sessions/new.html.haml +10 -0
  60. data/app/views/users/_form.html.haml +12 -0
  61. data/app/views/users/_user.html.haml +3 -0
  62. data/app/views/users/delete.html.haml +5 -0
  63. data/app/views/users/edit.html.haml +8 -0
  64. data/app/views/users/index.html.haml +3 -0
  65. data/app/views/users/new.html.haml +7 -0
  66. data/app/views/users/show.html.haml +6 -0
  67. data/bumble.gemspec +31 -0
  68. data/config/initializers/bumble.rb +9 -0
  69. data/config/initializers/haml.rb +2 -0
  70. data/config/initializers/html5_forms.rb +163 -0
  71. data/config/initializers/inflections.rb +10 -0
  72. data/config/initializers/mime_types.rb +5 -0
  73. data/config/initializers/will_paginate.rb +3 -0
  74. data/config/routes.rb +29 -0
  75. data/lib/bumble.rb +18 -0
  76. data/lib/bumble/version.rb +3 -0
  77. data/lib/generators/bumble/assets_generator.rb +10 -0
  78. data/lib/generators/bumble/migrations_generator.rb +40 -0
  79. data/lib/generators/bumble/templates/assets/images/.gitignore +0 -0
  80. data/lib/generators/bumble/templates/assets/images/close.png +0 -0
  81. data/lib/generators/bumble/templates/assets/images/email.png +0 -0
  82. data/lib/generators/bumble/templates/assets/images/feed.png +0 -0
  83. data/lib/generators/bumble/templates/assets/images/image.png +0 -0
  84. data/lib/generators/bumble/templates/assets/images/loading.gif +0 -0
  85. data/lib/generators/bumble/templates/assets/images/preview.png +0 -0
  86. data/lib/generators/bumble/templates/assets/images/shortcut.png +0 -0
  87. data/lib/generators/bumble/templates/assets/images/youtube.png +0 -0
  88. data/lib/generators/bumble/templates/assets/javascripts/admin.js +95 -0
  89. data/lib/generators/bumble/templates/assets/javascripts/bumble.js +76 -0
  90. data/lib/generators/bumble/templates/assets/javascripts/iphone.js +7 -0
  91. data/lib/generators/bumble/templates/assets/javascripts/jquery.autogrow.js +37 -0
  92. data/lib/generators/bumble/templates/assets/javascripts/jquery.cookie.js +96 -0
  93. data/lib/generators/bumble/templates/assets/javascripts/jquery.form.js +665 -0
  94. data/lib/generators/bumble/templates/assets/javascripts/jquery.hint.js +44 -0
  95. data/lib/generators/bumble/templates/assets/javascripts/jquery.jgrow.js +85 -0
  96. data/lib/generators/bumble/templates/assets/javascripts/jquery.js +154 -0
  97. data/lib/generators/bumble/templates/assets/javascripts/jquery.ui.core.js +18 -0
  98. data/lib/generators/bumble/templates/assets/javascripts/jquery.ui.tabs.js +13 -0
  99. data/lib/generators/bumble/templates/assets/javascripts/jquery.ui.widget.js +18 -0
  100. data/lib/generators/bumble/templates/assets/javascripts/jquery.validate.js +16 -0
  101. data/lib/generators/bumble/templates/assets/javascripts/modernizr.js +13 -0
  102. data/lib/generators/bumble/templates/assets/javascripts/ui.core.js +289 -0
  103. data/lib/generators/bumble/templates/assets/javascripts/ui.tabs.js +593 -0
  104. data/lib/generators/bumble/templates/migrations/add_approved_to_comments.rb +15 -0
  105. data/lib/generators/bumble/templates/migrations/add_delta_to_posts.rb +9 -0
  106. data/lib/generators/bumble/templates/migrations/add_missing_indexes.rb +24 -0
  107. data/lib/generators/bumble/templates/migrations/add_url_to_users.rb +9 -0
  108. data/lib/generators/bumble/templates/migrations/create_assets.rb +18 -0
  109. data/lib/generators/bumble/templates/migrations/create_comments.rb +19 -0
  110. data/lib/generators/bumble/templates/migrations/create_posts.rb +25 -0
  111. data/lib/generators/bumble/templates/migrations/create_users.rb +28 -0
  112. data/lib/generators/bumble/templates/migrations/full_text_search.rb +13 -0
  113. data/public/stylesheets/sass/bumble.sass +423 -0
  114. data/public/stylesheets/sass/iphone.sass +79 -0
  115. data/public/stylesheets/sass/print.sass +2 -0
  116. data/public/stylesheets/sass/reset.sass +49 -0
  117. data/test/factories.rb +28 -0
  118. data/test/functional/comments_controller_test.rb +177 -0
  119. data/test/functional/password_resets_controller_test.rb +61 -0
  120. data/test/functional/posts_controller_test.rb +181 -0
  121. data/test/test_helper.rb +113 -0
  122. data/test/unit/comment_test.rb +18 -0
  123. data/test/unit/post_test.rb +18 -0
  124. data/test/unit/user_test.rb +37 -0
  125. metadata +403 -0
@@ -0,0 +1,113 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
+ require 'test_help'
4
+ require "authlogic/test_case"
5
+
6
+ class ActiveSupport::TestCase
7
+ # Transactional fixtures accelerate your tests by wrapping each test method
8
+ # in a transaction that's rolled back on completion. This ensures that the
9
+ # test database remains unchanged so your fixtures don't have to be reloaded
10
+ # between every test method. Fewer database queries means faster tests.
11
+ #
12
+ # Read Mike Clark's excellent walkthrough at
13
+ # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
14
+ #
15
+ # Every Active Record database supports transactions except MyISAM tables
16
+ # in MySQL. Turn off transactional fixtures in this case; however, if you
17
+ # don't care one way or the other, switching from MyISAM to InnoDB tables
18
+ # is recommended.
19
+ #
20
+ # The only drawback to using transactional fixtures is when you actually
21
+ # need to test transactions. Since your test is bracketed by a transaction,
22
+ # any transactions started in your code will be automatically rolled back.
23
+ self.use_transactional_fixtures = true
24
+
25
+ # Instantiated fixtures are slow, but give you @david where otherwise you
26
+ # would need people(:david). If you don't want to migrate your existing
27
+ # test cases which use the @david style and don't mind the speed hit (each
28
+ # instantiated fixtures translates to a database query per test method),
29
+ # then set this back to true.
30
+ self.use_instantiated_fixtures = false
31
+
32
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
33
+ #
34
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
35
+ # -- they do not yet inherit this setting
36
+ fixtures :all
37
+
38
+ # Add more helper methods to be used by all tests here...
39
+ def self.should_have_timestamps
40
+ should_have_db_columns :created_at, :updated_at, :type => :datetime
41
+ end
42
+
43
+ def self.should_accept_nested_attributes_for(*attr_names)
44
+ klass = self.name.gsub(/Test$/, '').constantize
45
+
46
+ context "#{klass}" do
47
+ attr_names.each do |association_name|
48
+ should "accept nested attrs for #{association_name}" do
49
+ meth = "#{association_name}_attributes="
50
+ assert ([meth,meth.to_sym].any?{ |m| klass.instance_methods.include?(m) }),
51
+ "#{klass} does not accept nested attributes for #{association_name}"
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ def self.should_have_attached_file(attachment)
58
+ klass = self.name.gsub(/Test$/, '').constantize
59
+
60
+ context "To support a paperclip attachment named #{attachment}, #{klass}" do
61
+ should_have_db_column("#{attachment}_file_name", :type => :string)
62
+ should_have_db_column("#{attachment}_content_type", :type => :string)
63
+ should_have_db_column("#{attachment}_file_size", :type => :integer)
64
+ end
65
+
66
+ should "have a paperclip attachment named ##{attachment}" do
67
+ assert klass.new.respond_to?(attachment.to_sym), "@#{klass.name.underscore} doesn't have a paperclip field named #{attachment}"
68
+ assert_equal Paperclip::Attachment, klass.new.send(attachment.to_sym).class
69
+ end
70
+ end
71
+
72
+ def self.should_be_paranoid
73
+ klass = model_class
74
+ should_have_db_column :deleted_at
75
+
76
+ should "be paranoid (it will not be deleted from the database)" do
77
+ # Removed so that it tests the model has declared is_paranoid
78
+ # assert klass.is_paranoid
79
+ assert klass.included_modules.include?(IsParanoid::InstanceMethods)
80
+ end
81
+
82
+ should "not have a value for deleted_at" do
83
+ assert object = klass.find(:first)
84
+ assert_nil object.deleted_at
85
+ end
86
+
87
+ context "when destroyed" do
88
+ setup do
89
+ assert object = klass.find(:first), "This context requires there to be an existing #{klass}"
90
+ @deleted_id = object.id
91
+ object.destroy
92
+ end
93
+
94
+ should "not be found" do
95
+ assert_raise(ActiveRecord::RecordNotFound) { klass.find(@deleted_id) }
96
+ end
97
+
98
+ should "still exist in the database" do
99
+ deleted_object = klass.find_with_destroyed(@deleted_id)
100
+ assert_not_nil deleted_object.deleted_at
101
+ end
102
+ end
103
+ end
104
+
105
+ def self.should_be_denied_access(message = 'You must be logged in to do that!')
106
+ should_set_the_flash_to message
107
+ should_redirect_to('the login page') { login_url}
108
+ end
109
+
110
+ def dom_id(object)
111
+ "#{object.class.to_s.downcase}_#{object.id}"
112
+ end
113
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../test_helper.rb")
2
+
3
+ class CommentTest < ActiveSupport::TestCase
4
+
5
+ should_have_db_columns :body, :type => :text
6
+ should_have_db_column :user_id, :post_id, :type => :integer
7
+ should_have_timestamps
8
+
9
+ context "a comment" do
10
+ setup do
11
+ @comment = Factory.create(:comment)
12
+ end
13
+
14
+ should_be_paranoid
15
+ should_validate_presence_of :body
16
+ should_belong_to :user
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../test_helper.rb")
2
+
3
+ class PostTest < ActiveSupport::TestCase
4
+
5
+ should_have_db_columns :title, :permalink, :type => :string
6
+ should_have_db_column :user_id, :type => :integer
7
+ should_have_timestamps
8
+
9
+ context "a post" do
10
+ setup do
11
+ @post = Factory.create(:post)
12
+ end
13
+
14
+ should_be_paranoid
15
+ should_validate_presence_of :user
16
+ should_belong_to :user
17
+ end
18
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../test_helper.rb")
2
+
3
+ class UserTest < ActiveSupport::TestCase
4
+ should_have_db_column :email, :crypted_password, :password_salt, :persistence_token, :type => :string, :null => false
5
+ should_have_db_column :current_login_ip, :last_login_ip, :first_name, :last_name, :type => :string
6
+ should_have_db_column :perishable_token, :type => :string
7
+
8
+ should_have_db_columns :login_count, :failed_login_count, :type => :integer, :default => 0
9
+
10
+ should_have_db_columns :last_request_at, :current_login_at, :last_login_at, :activated_at, :type => :datetime
11
+ should_have_timestamps
12
+
13
+ context "a user" do
14
+ setup do
15
+ @user = Factory.create(:user)
16
+ end
17
+
18
+ should_be_paranoid
19
+ should_validate_presence_of :first_name
20
+
21
+ should "update activated_at when activated" do
22
+ @user.activate!
23
+ assert @user.activated_at
24
+ end
25
+ end
26
+
27
+ context "a new user" do
28
+ setup do
29
+ @user = Factory.create(:user)
30
+ end
31
+
32
+ should "not be activated" do
33
+ assert_equal @user.activated_at, nil
34
+ end
35
+ end
36
+
37
+ end
metadata ADDED
@@ -0,0 +1,403 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bumble
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Andrew Nesbitt
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-06-05 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 3
32
+ - 0
33
+ - 7
34
+ version: 3.0.7
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: will_paginate
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: -1876988247
46
+ segments:
47
+ - 3
48
+ - 0
49
+ - pre2
50
+ version: 3.0.pre2
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: gravtastic
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 13
62
+ segments:
63
+ - 2
64
+ - 1
65
+ - 3
66
+ version: 2.1.3
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: authlogic
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 9
78
+ segments:
79
+ - 2
80
+ - 1
81
+ - 1
82
+ version: 2.1.1
83
+ type: :runtime
84
+ version_requirements: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ name: rdiscount
87
+ prerelease: false
88
+ requirement: &id005 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - "="
92
+ - !ruby/object:Gem::Version
93
+ hash: 31
94
+ segments:
95
+ - 1
96
+ - 6
97
+ - 8
98
+ version: 1.6.8
99
+ type: :runtime
100
+ version_requirements: *id005
101
+ - !ruby/object:Gem::Dependency
102
+ name: haml
103
+ prerelease: false
104
+ requirement: &id006 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ hash: 1
110
+ segments:
111
+ - 3
112
+ - 1
113
+ - 1
114
+ version: 3.1.1
115
+ type: :runtime
116
+ version_requirements: *id006
117
+ - !ruby/object:Gem::Dependency
118
+ name: texticle
119
+ prerelease: false
120
+ requirement: &id007 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ hash: 31
126
+ segments:
127
+ - 1
128
+ - 0
129
+ - 4
130
+ version: 1.0.4
131
+ type: :runtime
132
+ version_requirements: *id007
133
+ - !ruby/object:Gem::Dependency
134
+ name: paperclip
135
+ prerelease: false
136
+ requirement: &id008 !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - "="
140
+ - !ruby/object:Gem::Version
141
+ hash: 11
142
+ segments:
143
+ - 2
144
+ - 3
145
+ - 4
146
+ version: 2.3.4
147
+ type: :runtime
148
+ version_requirements: *id008
149
+ - !ruby/object:Gem::Dependency
150
+ name: pg
151
+ prerelease: false
152
+ requirement: &id009 !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ hash: 53
158
+ segments:
159
+ - 0
160
+ - 10
161
+ - 1
162
+ version: 0.10.1
163
+ type: :runtime
164
+ version_requirements: *id009
165
+ - !ruby/object:Gem::Dependency
166
+ name: aws-s3
167
+ prerelease: false
168
+ requirement: &id010 !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
175
+ - 0
176
+ - 6
177
+ - 2
178
+ version: 0.6.2
179
+ type: :runtime
180
+ version_requirements: *id010
181
+ - !ruby/object:Gem::Dependency
182
+ name: dynamic_form
183
+ prerelease: false
184
+ requirement: &id011 !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - "="
188
+ - !ruby/object:Gem::Version
189
+ hash: 27
190
+ segments:
191
+ - 1
192
+ - 1
193
+ - 4
194
+ version: 1.1.4
195
+ type: :runtime
196
+ version_requirements: *id011
197
+ - !ruby/object:Gem::Dependency
198
+ name: sass
199
+ prerelease: false
200
+ requirement: &id012 !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ hash: 7
206
+ segments:
207
+ - 3
208
+ - 1
209
+ - 2
210
+ version: 3.1.2
211
+ type: :runtime
212
+ version_requirements: *id012
213
+ - !ruby/object:Gem::Dependency
214
+ name: akismetor
215
+ prerelease: false
216
+ requirement: &id013 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ hash: 3
222
+ segments:
223
+ - 0
224
+ version: "0"
225
+ type: :runtime
226
+ version_requirements: *id013
227
+ description:
228
+ email:
229
+ - andrewnez@gmail.com
230
+ executables: []
231
+
232
+ extensions: []
233
+
234
+ extra_rdoc_files: []
235
+
236
+ files:
237
+ - .gitignore
238
+ - .rvmrc
239
+ - Gemfile
240
+ - Rakefile
241
+ - Readme.mdown
242
+ - app/controllers/bumble_controller.rb
243
+ - app/controllers/comments_controller.rb
244
+ - app/controllers/password_resets_controller.rb
245
+ - app/controllers/posts_controller.rb
246
+ - app/controllers/user_sessions_controller.rb
247
+ - app/controllers/users_controller.rb
248
+ - app/helpers/bumble_helper.rb
249
+ - app/models/asset.rb
250
+ - app/models/comment.rb
251
+ - app/models/notifier.rb
252
+ - app/models/post.rb
253
+ - app/models/posts/blog.rb
254
+ - app/models/posts/code.rb
255
+ - app/models/posts/image.rb
256
+ - app/models/posts/link.rb
257
+ - app/models/posts/quote.rb
258
+ - app/models/posts/video.rb
259
+ - app/models/user.rb
260
+ - app/models/user_session.rb
261
+ - app/views/comments/_comment.html.haml
262
+ - app/views/comments/_form.html.haml
263
+ - app/views/comments/edit.html.haml
264
+ - app/views/comments/index.atom.builder
265
+ - app/views/comments/new.html.haml
266
+ - app/views/layouts/_sidebar.html.haml
267
+ - app/views/layouts/bumble.html.haml
268
+ - app/views/notifier/activation_confirmation.erb
269
+ - app/views/notifier/activation_instructions.erb
270
+ - app/views/notifier/new_comment_alert.erb
271
+ - app/views/notifier/password_reset_instructions.erb
272
+ - app/views/password_resets/edit.html.haml
273
+ - app/views/password_resets/new.html.haml
274
+ - app/views/posts/_form.html.haml
275
+ - app/views/posts/_post.html.haml
276
+ - app/views/posts/_preview.html.haml
277
+ - app/views/posts/edit.html.haml
278
+ - app/views/posts/forms/_blog.html.haml
279
+ - app/views/posts/forms/_code.html.haml
280
+ - app/views/posts/forms/_image.html.haml
281
+ - app/views/posts/forms/_link.html.haml
282
+ - app/views/posts/forms/_quote.html.haml
283
+ - app/views/posts/forms/_video.html.haml
284
+ - app/views/posts/index.atom.builder
285
+ - app/views/posts/index.html.haml
286
+ - app/views/posts/new.html.haml
287
+ - app/views/posts/search.html.haml
288
+ - app/views/posts/show.html.haml
289
+ - app/views/posts/types/_blog.html.haml
290
+ - app/views/posts/types/_code.html.haml
291
+ - app/views/posts/types/_image.html.haml
292
+ - app/views/posts/types/_link.html.haml
293
+ - app/views/posts/types/_quote.html.haml
294
+ - app/views/posts/types/_video.html.haml
295
+ - app/views/user_sessions/new.html.haml
296
+ - app/views/users/_form.html.haml
297
+ - app/views/users/_user.html.haml
298
+ - app/views/users/delete.html.haml
299
+ - app/views/users/edit.html.haml
300
+ - app/views/users/index.html.haml
301
+ - app/views/users/new.html.haml
302
+ - app/views/users/show.html.haml
303
+ - bumble.gemspec
304
+ - config/initializers/bumble.rb
305
+ - config/initializers/haml.rb
306
+ - config/initializers/html5_forms.rb
307
+ - config/initializers/inflections.rb
308
+ - config/initializers/mime_types.rb
309
+ - config/initializers/will_paginate.rb
310
+ - config/routes.rb
311
+ - lib/bumble.rb
312
+ - lib/bumble/version.rb
313
+ - lib/generators/bumble/assets_generator.rb
314
+ - lib/generators/bumble/migrations_generator.rb
315
+ - lib/generators/bumble/templates/assets/images/.gitignore
316
+ - lib/generators/bumble/templates/assets/images/close.png
317
+ - lib/generators/bumble/templates/assets/images/email.png
318
+ - lib/generators/bumble/templates/assets/images/feed.png
319
+ - lib/generators/bumble/templates/assets/images/image.png
320
+ - lib/generators/bumble/templates/assets/images/loading.gif
321
+ - lib/generators/bumble/templates/assets/images/preview.png
322
+ - lib/generators/bumble/templates/assets/images/shortcut.png
323
+ - lib/generators/bumble/templates/assets/images/youtube.png
324
+ - lib/generators/bumble/templates/assets/javascripts/admin.js
325
+ - lib/generators/bumble/templates/assets/javascripts/bumble.js
326
+ - lib/generators/bumble/templates/assets/javascripts/iphone.js
327
+ - lib/generators/bumble/templates/assets/javascripts/jquery.autogrow.js
328
+ - lib/generators/bumble/templates/assets/javascripts/jquery.cookie.js
329
+ - lib/generators/bumble/templates/assets/javascripts/jquery.form.js
330
+ - lib/generators/bumble/templates/assets/javascripts/jquery.hint.js
331
+ - lib/generators/bumble/templates/assets/javascripts/jquery.jgrow.js
332
+ - lib/generators/bumble/templates/assets/javascripts/jquery.js
333
+ - lib/generators/bumble/templates/assets/javascripts/jquery.ui.core.js
334
+ - lib/generators/bumble/templates/assets/javascripts/jquery.ui.tabs.js
335
+ - lib/generators/bumble/templates/assets/javascripts/jquery.ui.widget.js
336
+ - lib/generators/bumble/templates/assets/javascripts/jquery.validate.js
337
+ - lib/generators/bumble/templates/assets/javascripts/modernizr.js
338
+ - lib/generators/bumble/templates/assets/javascripts/ui.core.js
339
+ - lib/generators/bumble/templates/assets/javascripts/ui.tabs.js
340
+ - lib/generators/bumble/templates/migrations/add_approved_to_comments.rb
341
+ - lib/generators/bumble/templates/migrations/add_delta_to_posts.rb
342
+ - lib/generators/bumble/templates/migrations/add_missing_indexes.rb
343
+ - lib/generators/bumble/templates/migrations/add_url_to_users.rb
344
+ - lib/generators/bumble/templates/migrations/create_assets.rb
345
+ - lib/generators/bumble/templates/migrations/create_comments.rb
346
+ - lib/generators/bumble/templates/migrations/create_posts.rb
347
+ - lib/generators/bumble/templates/migrations/create_users.rb
348
+ - lib/generators/bumble/templates/migrations/full_text_search.rb
349
+ - public/stylesheets/sass/bumble.sass
350
+ - public/stylesheets/sass/iphone.sass
351
+ - public/stylesheets/sass/print.sass
352
+ - public/stylesheets/sass/reset.sass
353
+ - test/factories.rb
354
+ - test/functional/comments_controller_test.rb
355
+ - test/functional/password_resets_controller_test.rb
356
+ - test/functional/posts_controller_test.rb
357
+ - test/test_helper.rb
358
+ - test/unit/comment_test.rb
359
+ - test/unit/post_test.rb
360
+ - test/unit/user_test.rb
361
+ has_rdoc: true
362
+ homepage: ""
363
+ licenses: []
364
+
365
+ post_install_message:
366
+ rdoc_options: []
367
+
368
+ require_paths:
369
+ - lib
370
+ required_ruby_version: !ruby/object:Gem::Requirement
371
+ none: false
372
+ requirements:
373
+ - - ">="
374
+ - !ruby/object:Gem::Version
375
+ hash: 3
376
+ segments:
377
+ - 0
378
+ version: "0"
379
+ required_rubygems_version: !ruby/object:Gem::Requirement
380
+ none: false
381
+ requirements:
382
+ - - ">="
383
+ - !ruby/object:Gem::Version
384
+ hash: 3
385
+ segments:
386
+ - 0
387
+ version: "0"
388
+ requirements: []
389
+
390
+ rubyforge_project:
391
+ rubygems_version: 1.3.7
392
+ signing_key:
393
+ specification_version: 3
394
+ summary: Rails 3 Tumblog Engine
395
+ test_files:
396
+ - test/factories.rb
397
+ - test/functional/comments_controller_test.rb
398
+ - test/functional/password_resets_controller_test.rb
399
+ - test/functional/posts_controller_test.rb
400
+ - test/test_helper.rb
401
+ - test/unit/comment_test.rb
402
+ - test/unit/post_test.rb
403
+ - test/unit/user_test.rb