postmarkdown 0.0.1

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 (93) hide show
  1. data/.gitignore +5 -0
  2. data/.rspec +1 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +3 -0
  5. data/Rakefile +24 -0
  6. data/app/controllers/application_controller.rb +2 -0
  7. data/app/controllers/posts_controller.rb +31 -0
  8. data/app/models/post.rb +149 -0
  9. data/app/views/layouts/postmarkdown.html.haml +16 -0
  10. data/app/views/posts/_feed_link.html.haml +2 -0
  11. data/app/views/posts/_post.html.haml +15 -0
  12. data/app/views/posts/feed.xml.builder +29 -0
  13. data/app/views/posts/index.html.haml +8 -0
  14. data/app/views/posts/show.html.haml +3 -0
  15. data/lib/generators/postmarkdown/install_generator.rb +19 -0
  16. data/lib/generators/postmarkdown/override_generator.rb +44 -0
  17. data/lib/generators/postmarkdown/post_generator.rb +33 -0
  18. data/lib/generators/postmarkdown/templates/example-post.markdown +67 -0
  19. data/lib/generators/postmarkdown/usage/install.txt +10 -0
  20. data/lib/generators/postmarkdown/usage/override.txt +9 -0
  21. data/lib/generators/postmarkdown/usage/post.txt +14 -0
  22. data/lib/postmarkdown.rb +5 -0
  23. data/lib/postmarkdown/config.rb +22 -0
  24. data/lib/postmarkdown/engine.rb +12 -0
  25. data/lib/postmarkdown/railtie.rb +18 -0
  26. data/lib/postmarkdown/routes.rb +29 -0
  27. data/lib/postmarkdown/util.rb +12 -0
  28. data/lib/postmarkdown/version.rb +3 -0
  29. data/postmarkdown.gemspec +35 -0
  30. data/public/stylesheets/postmarkdown/postmarkdown.css +67 -0
  31. data/readme.md +143 -0
  32. data/spec/acceptance/posts_spec.rb +167 -0
  33. data/spec/models/posts_spec.rb +72 -0
  34. data/spec/routing/posts_routing_spec.rb +80 -0
  35. data/spec/spec_helper.rb +12 -0
  36. data/spec/support/data/posts/2011-04-01-first-post.markdown +3 -0
  37. data/spec/support/data/posts/2011-04-28-image.markdown +3 -0
  38. data/spec/support/data/posts/2011-04-28-summary.markdown +8 -0
  39. data/spec/support/data/posts/2011-05-01-full-metadata.markdown +10 -0
  40. data/spec/support/data/posts/2011-05-02-md-file-extension.md +1 -0
  41. data/spec/support/data/posts/2011-05-02-mdown-file-extension.mdown +1 -0
  42. data/spec/support/data/posts/2011-05-02-mkd-file-extension.mkd +1 -0
  43. data/spec/support/data/posts/2015-02-13-custom-title.markdown +5 -0
  44. data/spec/support/data/posts/missing-date-from-filename.markdown +1 -0
  45. data/spec/support/rails_app/.gitignore +4 -0
  46. data/spec/support/rails_app/README +256 -0
  47. data/spec/support/rails_app/Rakefile +7 -0
  48. data/spec/support/rails_app/app/controllers/application_controller.rb +3 -0
  49. data/spec/support/rails_app/app/helpers/application_helper.rb +2 -0
  50. data/spec/support/rails_app/app/posts/2011-04-01-first-post.markdown +3 -0
  51. data/spec/support/rails_app/app/posts/2011-04-28-image.markdown +3 -0
  52. data/spec/support/rails_app/app/posts/2011-04-28-summary.markdown +8 -0
  53. data/spec/support/rails_app/app/posts/2011-05-01-full-metadata.markdown +13 -0
  54. data/spec/support/rails_app/app/posts/2015-02-13-custom-title.markdown +5 -0
  55. data/spec/support/rails_app/app/views/layouts/application.html.erb +14 -0
  56. data/spec/support/rails_app/config.ru +4 -0
  57. data/spec/support/rails_app/config/application.rb +42 -0
  58. data/spec/support/rails_app/config/boot.rb +10 -0
  59. data/spec/support/rails_app/config/database.yml +22 -0
  60. data/spec/support/rails_app/config/environment.rb +5 -0
  61. data/spec/support/rails_app/config/environments/development.rb +26 -0
  62. data/spec/support/rails_app/config/environments/production.rb +49 -0
  63. data/spec/support/rails_app/config/environments/test.rb +35 -0
  64. data/spec/support/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  65. data/spec/support/rails_app/config/initializers/inflections.rb +10 -0
  66. data/spec/support/rails_app/config/initializers/mime_types.rb +5 -0
  67. data/spec/support/rails_app/config/initializers/secret_token.rb +7 -0
  68. data/spec/support/rails_app/config/initializers/session_store.rb +8 -0
  69. data/spec/support/rails_app/config/locales/en.yml +5 -0
  70. data/spec/support/rails_app/config/routes.rb +3 -0
  71. data/spec/support/rails_app/db/seeds.rb +7 -0
  72. data/spec/support/rails_app/doc/README_FOR_APP +2 -0
  73. data/spec/support/rails_app/lib/tasks/.gitkeep +0 -0
  74. data/spec/support/rails_app/public/404.html +26 -0
  75. data/spec/support/rails_app/public/422.html +26 -0
  76. data/spec/support/rails_app/public/500.html +26 -0
  77. data/spec/support/rails_app/public/favicon.ico +0 -0
  78. data/spec/support/rails_app/public/images/rails.png +0 -0
  79. data/spec/support/rails_app/public/index.html +239 -0
  80. data/spec/support/rails_app/public/javascripts/application.js +2 -0
  81. data/spec/support/rails_app/public/javascripts/controls.js +965 -0
  82. data/spec/support/rails_app/public/javascripts/dragdrop.js +974 -0
  83. data/spec/support/rails_app/public/javascripts/effects.js +1123 -0
  84. data/spec/support/rails_app/public/javascripts/prototype.js +6001 -0
  85. data/spec/support/rails_app/public/javascripts/rails.js +191 -0
  86. data/spec/support/rails_app/public/robots.txt +5 -0
  87. data/spec/support/rails_app/public/stylesheets/.gitkeep +0 -0
  88. data/spec/support/rails_app/script/rails +6 -0
  89. data/spec/support/rails_app/test/performance/browsing_test.rb +9 -0
  90. data/spec/support/rails_app/test/test_helper.rb +13 -0
  91. data/spec/support/rails_app/vendor/plugins/.gitkeep +0 -0
  92. data/todo.txt +25 -0
  93. metadata +315 -0
@@ -0,0 +1,191 @@
1
+ (function() {
2
+ // Technique from Juriy Zaytsev
3
+ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
4
+ function isEventSupported(eventName) {
5
+ var el = document.createElement('div');
6
+ eventName = 'on' + eventName;
7
+ var isSupported = (eventName in el);
8
+ if (!isSupported) {
9
+ el.setAttribute(eventName, 'return;');
10
+ isSupported = typeof el[eventName] == 'function';
11
+ }
12
+ el = null;
13
+ return isSupported;
14
+ }
15
+
16
+ function isForm(element) {
17
+ return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM'
18
+ }
19
+
20
+ function isInput(element) {
21
+ if (Object.isElement(element)) {
22
+ var name = element.nodeName.toUpperCase()
23
+ return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA'
24
+ }
25
+ else return false
26
+ }
27
+
28
+ var submitBubbles = isEventSupported('submit'),
29
+ changeBubbles = isEventSupported('change')
30
+
31
+ if (!submitBubbles || !changeBubbles) {
32
+ // augment the Event.Handler class to observe custom events when needed
33
+ Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
34
+ function(init, element, eventName, selector, callback) {
35
+ init(element, eventName, selector, callback)
36
+ // is the handler being attached to an element that doesn't support this event?
37
+ if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
38
+ (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
39
+ // "submit" => "emulated:submit"
40
+ this.eventName = 'emulated:' + this.eventName
41
+ }
42
+ }
43
+ )
44
+ }
45
+
46
+ if (!submitBubbles) {
47
+ // discover forms on the page by observing focus events which always bubble
48
+ document.on('focusin', 'form', function(focusEvent, form) {
49
+ // special handler for the real "submit" event (one-time operation)
50
+ if (!form.retrieve('emulated:submit')) {
51
+ form.on('submit', function(submitEvent) {
52
+ var emulated = form.fire('emulated:submit', submitEvent, true)
53
+ // if custom event received preventDefault, cancel the real one too
54
+ if (emulated.returnValue === false) submitEvent.preventDefault()
55
+ })
56
+ form.store('emulated:submit', true)
57
+ }
58
+ })
59
+ }
60
+
61
+ if (!changeBubbles) {
62
+ // discover form inputs on the page
63
+ document.on('focusin', 'input, select, texarea', function(focusEvent, input) {
64
+ // special handler for real "change" events
65
+ if (!input.retrieve('emulated:change')) {
66
+ input.on('change', function(changeEvent) {
67
+ input.fire('emulated:change', changeEvent, true)
68
+ })
69
+ input.store('emulated:change', true)
70
+ }
71
+ })
72
+ }
73
+
74
+ function handleRemote(element) {
75
+ var method, url, params;
76
+
77
+ var event = element.fire("ajax:before");
78
+ if (event.stopped) return false;
79
+
80
+ if (element.tagName.toLowerCase() === 'form') {
81
+ method = element.readAttribute('method') || 'post';
82
+ url = element.readAttribute('action');
83
+ params = element.serialize();
84
+ } else {
85
+ method = element.readAttribute('data-method') || 'get';
86
+ url = element.readAttribute('href');
87
+ params = {};
88
+ }
89
+
90
+ new Ajax.Request(url, {
91
+ method: method,
92
+ parameters: params,
93
+ evalScripts: true,
94
+
95
+ onComplete: function(request) { element.fire("ajax:complete", request); },
96
+ onSuccess: function(request) { element.fire("ajax:success", request); },
97
+ onFailure: function(request) { element.fire("ajax:failure", request); }
98
+ });
99
+
100
+ element.fire("ajax:after");
101
+ }
102
+
103
+ function handleMethod(element) {
104
+ var method = element.readAttribute('data-method'),
105
+ url = element.readAttribute('href'),
106
+ csrf_param = $$('meta[name=csrf-param]')[0],
107
+ csrf_token = $$('meta[name=csrf-token]')[0];
108
+
109
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
110
+ element.parentNode.insert(form);
111
+
112
+ if (method !== 'post') {
113
+ var field = new Element('input', { type: 'hidden', name: '_method', value: method });
114
+ form.insert(field);
115
+ }
116
+
117
+ if (csrf_param) {
118
+ var param = csrf_param.readAttribute('content'),
119
+ token = csrf_token.readAttribute('content'),
120
+ field = new Element('input', { type: 'hidden', name: param, value: token });
121
+ form.insert(field);
122
+ }
123
+
124
+ form.submit();
125
+ }
126
+
127
+
128
+ document.on("click", "*[data-confirm]", function(event, element) {
129
+ var message = element.readAttribute('data-confirm');
130
+ if (!confirm(message)) event.stop();
131
+ });
132
+
133
+ document.on("click", "a[data-remote]", function(event, element) {
134
+ if (event.stopped) return;
135
+ handleRemote(element);
136
+ event.stop();
137
+ });
138
+
139
+ document.on("click", "a[data-method]", function(event, element) {
140
+ if (event.stopped) return;
141
+ handleMethod(element);
142
+ event.stop();
143
+ });
144
+
145
+ document.on("submit", function(event) {
146
+ var element = event.findElement(),
147
+ message = element.readAttribute('data-confirm');
148
+ if (message && !confirm(message)) {
149
+ event.stop();
150
+ return false;
151
+ }
152
+
153
+ var inputs = element.select("input[type=submit][data-disable-with]");
154
+ inputs.each(function(input) {
155
+ input.disabled = true;
156
+ input.writeAttribute('data-original-value', input.value);
157
+ input.value = input.readAttribute('data-disable-with');
158
+ });
159
+
160
+ var element = event.findElement("form[data-remote]");
161
+ if (element) {
162
+ handleRemote(element);
163
+ event.stop();
164
+ }
165
+ });
166
+
167
+ document.on("ajax:after", "form", function(event, element) {
168
+ var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
169
+ inputs.each(function(input) {
170
+ input.value = input.readAttribute('data-original-value');
171
+ input.removeAttribute('data-original-value');
172
+ input.disabled = false;
173
+ });
174
+ });
175
+
176
+ Ajax.Responders.register({
177
+ onCreate: function(request) {
178
+ var csrf_meta_tag = $$('meta[name=csrf-token]')[0];
179
+
180
+ if (csrf_meta_tag) {
181
+ var header = 'X-CSRF-Token',
182
+ token = csrf_meta_tag.readAttribute('content');
183
+
184
+ if (!request.options.requestHeaders) {
185
+ request.options.requestHeaders = {};
186
+ }
187
+ request.options.requestHeaders[header] = token;
188
+ }
189
+ }
190
+ });
191
+ })();
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+ require 'rails/performance_test_help'
3
+
4
+ # Profiling results for each test method are written to tmp/performance.
5
+ class BrowsingTest < ActionDispatch::PerformanceTest
6
+ def test_homepage
7
+ get '/'
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7
+ #
8
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
9
+ # -- they do not yet inherit this setting
10
+ fixtures :all
11
+
12
+ # Add more helper methods to be used by all tests here...
13
+ end
@@ -0,0 +1,25 @@
1
+ TODO
2
+ ----
3
+ [ ] Pagination
4
+ [ ] Built-in theme should have a link to the RSS Feed
5
+ [ ] Generator tests
6
+
7
+ DONE
8
+ ----
9
+ [x] Route: `postmarkdown :permalink_format => :slug`</del>
10
+ [x] Add info about blog at root to readme</del>
11
+ [x] RSpec tests for routes</del>
12
+ [x] Support more markdown file extensions, eg. `*.md, *.mkd, *.mdown`</del>
13
+ [x] Text for when there's no posts on the index page, eg. 'There are no posts'</del>
14
+ [x] Fix pre code blocks</del>
15
+ [x] RSpec model tests for author and email</del>
16
+ [x] Set default feed title to app name + route path</del>
17
+ [x] For example, `TestApp::Application` with the route `postmarkdown :as => :awesome_blog` would generate the feed title would be 'Test App Awesome Blog'</del>
18
+ [x] RSpec acceptance test for pre code blocks (= vs ~)
19
+ [x] RSpec tests for the xml feed
20
+ [x] 404 for missing post or invalid slug
21
+ [x] Add post author to feed
22
+ [x] Better example post
23
+ [x] Generator automagically figures out who the author is based on git config
24
+ [x] Default theme
25
+ [x] Config option for using built-in theme
metadata ADDED
@@ -0,0 +1,315 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: postmarkdown
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jason Weathered
9
+ - Nathanael Kane
10
+ - Odin Dutton
11
+ - Adrian Smith
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+ date: 2011-09-19 00:00:00.000000000Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: rails
19
+ requirement: &70346286148320 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: '3.0'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: *70346286148320
28
+ - !ruby/object:Gem::Dependency
29
+ name: haml
30
+ requirement: &70346286147800 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: '3.1'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: *70346286147800
39
+ - !ruby/object:Gem::Dependency
40
+ name: gravtastic
41
+ requirement: &70346286147400 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: *70346286147400
50
+ - !ruby/object:Gem::Dependency
51
+ name: nokogiri
52
+ requirement: &70346286146940 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: *70346286146940
61
+ - !ruby/object:Gem::Dependency
62
+ name: rdiscount
63
+ requirement: &70346286146500 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ type: :runtime
70
+ prerelease: false
71
+ version_requirements: *70346286146500
72
+ - !ruby/object:Gem::Dependency
73
+ name: kaminari
74
+ requirement: &70346286146080 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ type: :runtime
81
+ prerelease: false
82
+ version_requirements: *70346286146080
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-rails
85
+ requirement: &70346286145580 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: '2.5'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: *70346286145580
94
+ - !ruby/object:Gem::Dependency
95
+ name: capybara
96
+ requirement: &70346286145020 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 1.0.0.beta
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: *70346286145020
105
+ - !ruby/object:Gem::Dependency
106
+ name: sqlite3
107
+ requirement: &70346286144560 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ type: :development
114
+ prerelease: false
115
+ version_requirements: *70346286144560
116
+ - !ruby/object:Gem::Dependency
117
+ name: delorean
118
+ requirement: &70346286143940 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ! '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0.2'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: *70346286143940
127
+ description: A simple Rails blog engine powered by markdown.
128
+ email:
129
+ - jason.weathered@ennova.com.au
130
+ - nate.kane@ennova.com.au
131
+ - odin.dutton@ennova.com.au
132
+ - adrian.smith@ennova.com.au
133
+ executables: []
134
+ extensions: []
135
+ extra_rdoc_files: []
136
+ files:
137
+ - .gitignore
138
+ - .rspec
139
+ - .rvmrc
140
+ - Gemfile
141
+ - Rakefile
142
+ - app/controllers/application_controller.rb
143
+ - app/controllers/posts_controller.rb
144
+ - app/models/post.rb
145
+ - app/views/layouts/postmarkdown.html.haml
146
+ - app/views/posts/_feed_link.html.haml
147
+ - app/views/posts/_post.html.haml
148
+ - app/views/posts/feed.xml.builder
149
+ - app/views/posts/index.html.haml
150
+ - app/views/posts/show.html.haml
151
+ - lib/generators/postmarkdown/install_generator.rb
152
+ - lib/generators/postmarkdown/override_generator.rb
153
+ - lib/generators/postmarkdown/post_generator.rb
154
+ - lib/generators/postmarkdown/templates/example-post.markdown
155
+ - lib/generators/postmarkdown/usage/install.txt
156
+ - lib/generators/postmarkdown/usage/override.txt
157
+ - lib/generators/postmarkdown/usage/post.txt
158
+ - lib/postmarkdown.rb
159
+ - lib/postmarkdown/config.rb
160
+ - lib/postmarkdown/engine.rb
161
+ - lib/postmarkdown/railtie.rb
162
+ - lib/postmarkdown/routes.rb
163
+ - lib/postmarkdown/util.rb
164
+ - lib/postmarkdown/version.rb
165
+ - postmarkdown.gemspec
166
+ - public/stylesheets/postmarkdown/postmarkdown.css
167
+ - readme.md
168
+ - spec/acceptance/posts_spec.rb
169
+ - spec/models/posts_spec.rb
170
+ - spec/routing/posts_routing_spec.rb
171
+ - spec/spec_helper.rb
172
+ - spec/support/data/posts/2011-04-01-first-post.markdown
173
+ - spec/support/data/posts/2011-04-28-image.markdown
174
+ - spec/support/data/posts/2011-04-28-summary.markdown
175
+ - spec/support/data/posts/2011-05-01-full-metadata.markdown
176
+ - spec/support/data/posts/2011-05-02-md-file-extension.md
177
+ - spec/support/data/posts/2011-05-02-mdown-file-extension.mdown
178
+ - spec/support/data/posts/2011-05-02-mkd-file-extension.mkd
179
+ - spec/support/data/posts/2015-02-13-custom-title.markdown
180
+ - spec/support/data/posts/missing-date-from-filename.markdown
181
+ - spec/support/rails_app/.gitignore
182
+ - spec/support/rails_app/README
183
+ - spec/support/rails_app/Rakefile
184
+ - spec/support/rails_app/app/controllers/application_controller.rb
185
+ - spec/support/rails_app/app/helpers/application_helper.rb
186
+ - spec/support/rails_app/app/posts/2011-04-01-first-post.markdown
187
+ - spec/support/rails_app/app/posts/2011-04-28-image.markdown
188
+ - spec/support/rails_app/app/posts/2011-04-28-summary.markdown
189
+ - spec/support/rails_app/app/posts/2011-05-01-full-metadata.markdown
190
+ - spec/support/rails_app/app/posts/2015-02-13-custom-title.markdown
191
+ - spec/support/rails_app/app/views/layouts/application.html.erb
192
+ - spec/support/rails_app/config.ru
193
+ - spec/support/rails_app/config/application.rb
194
+ - spec/support/rails_app/config/boot.rb
195
+ - spec/support/rails_app/config/database.yml
196
+ - spec/support/rails_app/config/environment.rb
197
+ - spec/support/rails_app/config/environments/development.rb
198
+ - spec/support/rails_app/config/environments/production.rb
199
+ - spec/support/rails_app/config/environments/test.rb
200
+ - spec/support/rails_app/config/initializers/backtrace_silencers.rb
201
+ - spec/support/rails_app/config/initializers/inflections.rb
202
+ - spec/support/rails_app/config/initializers/mime_types.rb
203
+ - spec/support/rails_app/config/initializers/secret_token.rb
204
+ - spec/support/rails_app/config/initializers/session_store.rb
205
+ - spec/support/rails_app/config/locales/en.yml
206
+ - spec/support/rails_app/config/routes.rb
207
+ - spec/support/rails_app/db/seeds.rb
208
+ - spec/support/rails_app/doc/README_FOR_APP
209
+ - spec/support/rails_app/lib/tasks/.gitkeep
210
+ - spec/support/rails_app/public/404.html
211
+ - spec/support/rails_app/public/422.html
212
+ - spec/support/rails_app/public/500.html
213
+ - spec/support/rails_app/public/favicon.ico
214
+ - spec/support/rails_app/public/images/rails.png
215
+ - spec/support/rails_app/public/index.html
216
+ - spec/support/rails_app/public/javascripts/application.js
217
+ - spec/support/rails_app/public/javascripts/controls.js
218
+ - spec/support/rails_app/public/javascripts/dragdrop.js
219
+ - spec/support/rails_app/public/javascripts/effects.js
220
+ - spec/support/rails_app/public/javascripts/prototype.js
221
+ - spec/support/rails_app/public/javascripts/rails.js
222
+ - spec/support/rails_app/public/robots.txt
223
+ - spec/support/rails_app/public/stylesheets/.gitkeep
224
+ - spec/support/rails_app/script/rails
225
+ - spec/support/rails_app/test/performance/browsing_test.rb
226
+ - spec/support/rails_app/test/test_helper.rb
227
+ - spec/support/rails_app/vendor/plugins/.gitkeep
228
+ - todo.txt
229
+ homepage: ''
230
+ licenses:
231
+ - MIT
232
+ post_install_message:
233
+ rdoc_options: []
234
+ require_paths:
235
+ - lib
236
+ - public
237
+ required_ruby_version: !ruby/object:Gem::Requirement
238
+ none: false
239
+ requirements:
240
+ - - ! '>='
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ required_rubygems_version: !ruby/object:Gem::Requirement
244
+ none: false
245
+ requirements:
246
+ - - ! '>='
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ requirements: []
250
+ rubyforge_project: postmarkdown
251
+ rubygems_version: 1.8.10
252
+ signing_key:
253
+ specification_version: 3
254
+ summary: A simple Rails blog engine powered by markdown.
255
+ test_files:
256
+ - spec/acceptance/posts_spec.rb
257
+ - spec/models/posts_spec.rb
258
+ - spec/routing/posts_routing_spec.rb
259
+ - spec/spec_helper.rb
260
+ - spec/support/data/posts/2011-04-01-first-post.markdown
261
+ - spec/support/data/posts/2011-04-28-image.markdown
262
+ - spec/support/data/posts/2011-04-28-summary.markdown
263
+ - spec/support/data/posts/2011-05-01-full-metadata.markdown
264
+ - spec/support/data/posts/2011-05-02-md-file-extension.md
265
+ - spec/support/data/posts/2011-05-02-mdown-file-extension.mdown
266
+ - spec/support/data/posts/2011-05-02-mkd-file-extension.mkd
267
+ - spec/support/data/posts/2015-02-13-custom-title.markdown
268
+ - spec/support/data/posts/missing-date-from-filename.markdown
269
+ - spec/support/rails_app/.gitignore
270
+ - spec/support/rails_app/README
271
+ - spec/support/rails_app/Rakefile
272
+ - spec/support/rails_app/app/controllers/application_controller.rb
273
+ - spec/support/rails_app/app/helpers/application_helper.rb
274
+ - spec/support/rails_app/app/posts/2011-04-01-first-post.markdown
275
+ - spec/support/rails_app/app/posts/2011-04-28-image.markdown
276
+ - spec/support/rails_app/app/posts/2011-04-28-summary.markdown
277
+ - spec/support/rails_app/app/posts/2011-05-01-full-metadata.markdown
278
+ - spec/support/rails_app/app/posts/2015-02-13-custom-title.markdown
279
+ - spec/support/rails_app/app/views/layouts/application.html.erb
280
+ - spec/support/rails_app/config.ru
281
+ - spec/support/rails_app/config/application.rb
282
+ - spec/support/rails_app/config/boot.rb
283
+ - spec/support/rails_app/config/database.yml
284
+ - spec/support/rails_app/config/environment.rb
285
+ - spec/support/rails_app/config/environments/development.rb
286
+ - spec/support/rails_app/config/environments/production.rb
287
+ - spec/support/rails_app/config/environments/test.rb
288
+ - spec/support/rails_app/config/initializers/backtrace_silencers.rb
289
+ - spec/support/rails_app/config/initializers/inflections.rb
290
+ - spec/support/rails_app/config/initializers/mime_types.rb
291
+ - spec/support/rails_app/config/initializers/secret_token.rb
292
+ - spec/support/rails_app/config/initializers/session_store.rb
293
+ - spec/support/rails_app/config/locales/en.yml
294
+ - spec/support/rails_app/config/routes.rb
295
+ - spec/support/rails_app/db/seeds.rb
296
+ - spec/support/rails_app/doc/README_FOR_APP
297
+ - spec/support/rails_app/lib/tasks/.gitkeep
298
+ - spec/support/rails_app/public/404.html
299
+ - spec/support/rails_app/public/422.html
300
+ - spec/support/rails_app/public/500.html
301
+ - spec/support/rails_app/public/favicon.ico
302
+ - spec/support/rails_app/public/images/rails.png
303
+ - spec/support/rails_app/public/index.html
304
+ - spec/support/rails_app/public/javascripts/application.js
305
+ - spec/support/rails_app/public/javascripts/controls.js
306
+ - spec/support/rails_app/public/javascripts/dragdrop.js
307
+ - spec/support/rails_app/public/javascripts/effects.js
308
+ - spec/support/rails_app/public/javascripts/prototype.js
309
+ - spec/support/rails_app/public/javascripts/rails.js
310
+ - spec/support/rails_app/public/robots.txt
311
+ - spec/support/rails_app/public/stylesheets/.gitkeep
312
+ - spec/support/rails_app/script/rails
313
+ - spec/support/rails_app/test/performance/browsing_test.rb
314
+ - spec/support/rails_app/test/test_helper.rb
315
+ - spec/support/rails_app/vendor/plugins/.gitkeep