static_docs 0.0.1 → 0.1.0

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 (42) hide show
  1. data/app/assets/javascripts/static_docs/pages.js +2 -0
  2. data/app/assets/stylesheets/static_docs/pages.css +4 -0
  3. data/app/controllers/static_docs/application_controller.rb +1 -1
  4. data/app/controllers/static_docs/pages_controller.rb +9 -0
  5. data/app/helpers/static_docs/application_helper.rb +11 -0
  6. data/app/helpers/static_docs/pages_helper.rb +4 -0
  7. data/app/models/static_docs/page.rb +30 -0
  8. data/app/views/static_docs/pages/show.html.erb +3 -0
  9. data/config/routes.rb +4 -0
  10. data/db/migrate/20130502102206_create_static_docs_pages.rb +16 -0
  11. data/lib/static_docs/importer.rb +44 -0
  12. data/lib/static_docs/version.rb +1 -1
  13. data/lib/static_docs.rb +30 -0
  14. data/lib/tasks/static_docs_tasks.rake +11 -4
  15. data/test/dummy/app/helpers/application_helper.rb +3 -0
  16. data/test/dummy/config/environments/test.rb +1 -1
  17. data/test/dummy/config/initializers/static_docs.rb +13 -0
  18. data/test/dummy/config/routes.rb +1 -1
  19. data/test/dummy/db/development.sqlite3 +0 -0
  20. data/test/dummy/db/migrate/20130502133441_create_static_docs_pages.static_docs.rb +17 -0
  21. data/test/dummy/db/schema.rb +29 -0
  22. data/test/dummy/db/test.sqlite3 +0 -0
  23. data/test/dummy/log/development.log +56 -0
  24. data/test/dummy/log/production.log +0 -0
  25. data/test/dummy/log/test.log +8879 -0
  26. data/test/dummy/sources/namespace/home.html +1 -0
  27. data/test/dummy/sources/namespace/index.yml +9 -0
  28. data/test/dummy/sources/namespace/page.html +1 -0
  29. data/test/dummy/sources/root/getting_started.html +1 -0
  30. data/test/dummy/sources/root/home.html +1 -0
  31. data/test/dummy/sources/root/index.yml +13 -0
  32. data/test/dummy/sources/root/page.html +1 -0
  33. data/test/fixtures/static_docs/pages.yml +51 -0
  34. data/test/functional/static_docs/pages_controller_test.rb +9 -0
  35. data/test/integration/navigation_test.rb +22 -4
  36. data/test/static_docs_test.rb +7 -0
  37. data/test/test_helper.rb +0 -2
  38. data/test/unit/helpers/static_docs/pages_helper_test.rb +6 -0
  39. data/test/unit/static_docs/importer_test.rb +52 -0
  40. data/test/unit/static_docs/page_test.rb +46 -0
  41. metadata +52 -5
  42. data/app/views/layouts/static_docs/application.html.erb +0 -14
@@ -0,0 +1 @@
1
+ <p>Hello from namespace!</p>
@@ -0,0 +1,9 @@
1
+ special:
2
+ - title: Namespace Main Page
3
+ path: home
4
+ file: home.html
5
+
6
+ pages:
7
+ - title: This is Just Namespaced Page
8
+ path: page
9
+ file: page.html
@@ -0,0 +1 @@
1
+ <p>Hello, Namespace!</p>
@@ -0,0 +1 @@
1
+ <p>Welcome, Newbie!</p>
@@ -0,0 +1 @@
1
+ <p>Hello from homepage!</p>
@@ -0,0 +1,13 @@
1
+ special:
2
+ - title: Main Page
3
+ path: home
4
+ file: home.html
5
+
6
+ pages:
7
+ - title: Getting Started
8
+ path: getting-started
9
+ file: getting_started.html
10
+
11
+ - title: This is Just Page
12
+ path: page
13
+ file: page.html
@@ -0,0 +1 @@
1
+ <p>Hello, World!</p>
@@ -0,0 +1,51 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ home_page:
4
+ title: Main page
5
+ path: home
6
+ body: '<h3>This is home page</h3>'
7
+ extension: html
8
+
9
+ first_level_page:
10
+ title: First Level Page
11
+ path: 'page'
12
+ body: '<h3>This is first level page</h3>'
13
+ extension: html
14
+
15
+ deep_page:
16
+ title: First Level Page
17
+ path: 'path/to/page'
18
+ body: '<h3>This is third level page</h3>'
19
+ extension: html
20
+
21
+ namespaced_page:
22
+ title: Namespaced Page
23
+ path: 'page'
24
+ namespace: 'namespace'
25
+ body: '<h3>This is namespaced page</h3>'
26
+ extension: html
27
+
28
+ deep_page_like_namespaced:
29
+ title: Namespaced Page
30
+ path: 'namespace/page'
31
+ body: '<h3>This is not namespaced page</h3>'
32
+ extension: html
33
+
34
+ wrong_namespaced_page:
35
+ title: Wrong Namespaced Page
36
+ path: 'page'
37
+ namespace: 'wrong'
38
+ body: '<h3>This is wrong namespaced page</h3>'
39
+ extension: html
40
+
41
+ markdown_page:
42
+ title: Markdown Page
43
+ path: 'markdown'
44
+ body: '### This is markdown page'
45
+ extension: md
46
+
47
+ text_page:
48
+ title: Text Page
49
+ path: 'text'
50
+ body: 'some text'
51
+ extension: txt
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module StaticDocs
4
+ class PagesControllerTest < ActionController::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -3,8 +3,26 @@ require 'test_helper'
3
3
  class NavigationTest < ActionDispatch::IntegrationTest
4
4
  fixtures :all
5
5
 
6
- # test "the truth" do
7
- # assert true
8
- # end
9
- end
6
+ test 'browse pages' do
7
+ get '/'
8
+ assert_response :success
9
+ assert_select 'title', {:text => 'Dummy'}, 'Page must be rendered within application layout'
10
+ assert_select 'h3', {:text => 'This is home page'}
11
+
12
+ get '/page'
13
+ assert_response :success
14
+ assert_select 'h3', {:text => 'This is first level page'}
15
+ assert_select 'body', /This is first level page/
16
+
17
+ get '/namespace/page'
18
+ assert_response :success
19
+ assert_select 'h3', {:text => 'This is namespaced page'}
10
20
 
21
+ get '/markdown'
22
+ assert_response :success
23
+ assert_select 'pre', {:text => '### This is markdown page'}
24
+
25
+ get '/wrong'
26
+ assert_response :not_found
27
+ end
28
+ end
@@ -4,4 +4,11 @@ class StaticDocsTest < ActiveSupport::TestCase
4
4
  test "truth" do
5
5
  assert_kind_of Module, StaticDocs
6
6
  end
7
+
8
+ test 'setup' do
9
+ assert_equal StaticDocs.sources[nil], 'sources/root'
10
+ assert_equal StaticDocs.sources[:namespace], 'sources/namespace'
11
+
12
+ assert StaticDocs.renderers[:default].keys.include? 'md'
13
+ end
7
14
  end
data/test/test_helper.rb CHANGED
@@ -4,8 +4,6 @@ ENV["RAILS_ENV"] = "test"
4
4
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
5
  require "rails/test_help"
6
6
 
7
- Rails.backtrace_cleaner.remove_silencers!
8
-
9
7
  # Load support files
10
8
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
9
 
@@ -0,0 +1,6 @@
1
+ require 'test_helper'
2
+
3
+ module StaticDocs
4
+ class PagesHelperTest < ActionView::TestCase
5
+ end
6
+ end
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+ require "static_docs/importer"
3
+
4
+ module StaticDocs
5
+ class ImporterTest < ActiveSupport::TestCase
6
+ fixtures 'static_docs/pages'
7
+
8
+ def setup
9
+ @importer = Importer.new(nil)
10
+ end
11
+
12
+ test 'source' do
13
+ src = File.expand_path("../../../dummy/sources/root", __FILE__)
14
+ assert_equal src, @importer.source.to_s
15
+ end
16
+
17
+ test 'config' do
18
+ assert @importer.config['special'].present?
19
+ assert @importer.config['pages'].present?
20
+ end
21
+
22
+ test 'cleanup' do
23
+ @importer.cleanup
24
+ assert_equal Page.find(static_docs_pages(:first_level_page).id), static_docs_pages(:first_level_page)
25
+ assert_raise(ActiveRecord::RecordNotFound){ Page.find(static_docs_pages(:deep_page).id) }
26
+ end
27
+
28
+ test 'import root' do
29
+ Importer.import(nil)
30
+ main = Page.matched('home')
31
+ assert_equal main.title, 'Main Page'
32
+ assert_equal main.extension, 'html'
33
+ assert_equal main.body, "<p>Hello from homepage!</p>\n"
34
+ assert_equal main.namespace, nil
35
+
36
+ assert_equal Page.matched('page').title, 'This is Just Page'
37
+ assert_equal Page.matched('getting-started').title, 'Getting Started'
38
+ end
39
+
40
+ test 'import namespaced' do
41
+ Importer.import('namespace')
42
+ main = Page.matched('namespace/home')
43
+ assert_equal main.title, 'Namespace Main Page'
44
+ assert_equal main.extension, 'html'
45
+ assert_equal main.body, "<p>Hello from namespace!</p>\n"
46
+ assert_equal main.namespace, 'namespace'
47
+
48
+ assert_equal Page.matched('namespace/page').title, 'This is Just Namespaced Page'
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,46 @@
1
+ require 'test_helper'
2
+
3
+ module StaticDocs
4
+ class PageTest < ActiveSupport::TestCase
5
+ fixtures 'static_docs/pages'
6
+
7
+ setup do
8
+ @view_context = Object.new.extend ::ApplicationHelper
9
+ end
10
+
11
+ test "first-level search of matched page" do
12
+ assert_equal Page.matched('page'), static_docs_pages(:first_level_page)
13
+ end
14
+
15
+ test "deep search of matched page" do
16
+ assert_equal Page.matched('path/to/page'), static_docs_pages(:deep_page)
17
+ end
18
+
19
+ test "namespaced search of matched page" do
20
+ assert_equal Page.matched('namespace/page'), static_docs_pages(:namespaced_page)
21
+ end
22
+
23
+ test "search in unregistered namespace" do
24
+ assert_raise(ActiveRecord::RecordNotFound){ Page.matched('wrong/page') }
25
+ end
26
+
27
+ test "search of nonexistent page" do
28
+ assert_raise(ActiveRecord::RecordNotFound){ Page.matched('wrong') }
29
+ end
30
+
31
+ test 'simple renderer' do
32
+ assert_equal Page.matched('page').rendered_body(@view_context), '<h3>This is first level page</h3>'
33
+ end
34
+
35
+ test 'contextual renderer' do
36
+ str = "<h1>This is original markdown text</h1><pre>### This is markdown page</pre>"
37
+ assert_equal Page.matched('markdown').rendered_body(@view_context), str
38
+ end
39
+
40
+ test 'meta setting in renderer' do
41
+ page = Page.matched('text')
42
+ assert_equal page.rendered_body(@view_context), 'testtesttest'
43
+ assert_equal page.meta[:test], 'test'
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: static_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-28 00:00:00.000000000 Z
12
+ date: 2013-05-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -53,12 +53,19 @@ extensions: []
53
53
  extra_rdoc_files: []
54
54
  files:
55
55
  - app/assets/javascripts/static_docs/application.js
56
+ - app/assets/javascripts/static_docs/pages.js
56
57
  - app/assets/stylesheets/static_docs/application.css
58
+ - app/assets/stylesheets/static_docs/pages.css
57
59
  - app/controllers/static_docs/application_controller.rb
60
+ - app/controllers/static_docs/pages_controller.rb
58
61
  - app/helpers/static_docs/application_helper.rb
59
- - app/views/layouts/static_docs/application.html.erb
62
+ - app/helpers/static_docs/pages_helper.rb
63
+ - app/models/static_docs/page.rb
64
+ - app/views/static_docs/pages/show.html.erb
60
65
  - config/routes.rb
66
+ - db/migrate/20130502102206_create_static_docs_pages.rb
61
67
  - lib/static_docs/engine.rb
68
+ - lib/static_docs/importer.rb
62
69
  - lib/static_docs/version.rb
63
70
  - lib/static_docs.rb
64
71
  - lib/tasks/static_docs_tasks.rake
@@ -82,10 +89,18 @@ files:
82
89
  - test/dummy/config/initializers/mime_types.rb
83
90
  - test/dummy/config/initializers/secret_token.rb
84
91
  - test/dummy/config/initializers/session_store.rb
92
+ - test/dummy/config/initializers/static_docs.rb
85
93
  - test/dummy/config/initializers/wrap_parameters.rb
86
94
  - test/dummy/config/locales/en.yml
87
95
  - test/dummy/config/routes.rb
88
96
  - test/dummy/config.ru
97
+ - test/dummy/db/development.sqlite3
98
+ - test/dummy/db/migrate/20130502133441_create_static_docs_pages.static_docs.rb
99
+ - test/dummy/db/schema.rb
100
+ - test/dummy/db/test.sqlite3
101
+ - test/dummy/log/development.log
102
+ - test/dummy/log/production.log
103
+ - test/dummy/log/test.log
89
104
  - test/dummy/public/404.html
90
105
  - test/dummy/public/422.html
91
106
  - test/dummy/public/500.html
@@ -93,9 +108,21 @@ files:
93
108
  - test/dummy/Rakefile
94
109
  - test/dummy/README.rdoc
95
110
  - test/dummy/script/rails
111
+ - test/dummy/sources/namespace/home.html
112
+ - test/dummy/sources/namespace/index.yml
113
+ - test/dummy/sources/namespace/page.html
114
+ - test/dummy/sources/root/getting_started.html
115
+ - test/dummy/sources/root/home.html
116
+ - test/dummy/sources/root/index.yml
117
+ - test/dummy/sources/root/page.html
118
+ - test/fixtures/static_docs/pages.yml
119
+ - test/functional/static_docs/pages_controller_test.rb
96
120
  - test/integration/navigation_test.rb
97
121
  - test/static_docs_test.rb
98
122
  - test/test_helper.rb
123
+ - test/unit/helpers/static_docs/pages_helper_test.rb
124
+ - test/unit/static_docs/importer_test.rb
125
+ - test/unit/static_docs/page_test.rb
99
126
  homepage: https://github.com/Mik-die/static_docs
100
127
  licenses: []
101
128
  post_install_message:
@@ -110,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
137
  version: '0'
111
138
  segments:
112
139
  - 0
113
- hash: -2426193905390078025
140
+ hash: 1507088232620583790
114
141
  required_rubygems_version: !ruby/object:Gem::Requirement
115
142
  none: false
116
143
  requirements:
@@ -119,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
146
  version: '0'
120
147
  segments:
121
148
  - 0
122
- hash: -2426193905390078025
149
+ hash: 1507088232620583790
123
150
  requirements: []
124
151
  rubyforge_project:
125
152
  rubygems_version: 1.8.25
@@ -144,10 +171,18 @@ test_files:
144
171
  - test/dummy/config/initializers/mime_types.rb
145
172
  - test/dummy/config/initializers/secret_token.rb
146
173
  - test/dummy/config/initializers/session_store.rb
174
+ - test/dummy/config/initializers/static_docs.rb
147
175
  - test/dummy/config/initializers/wrap_parameters.rb
148
176
  - test/dummy/config/locales/en.yml
149
177
  - test/dummy/config/routes.rb
150
178
  - test/dummy/config.ru
179
+ - test/dummy/db/development.sqlite3
180
+ - test/dummy/db/migrate/20130502133441_create_static_docs_pages.static_docs.rb
181
+ - test/dummy/db/schema.rb
182
+ - test/dummy/db/test.sqlite3
183
+ - test/dummy/log/development.log
184
+ - test/dummy/log/production.log
185
+ - test/dummy/log/test.log
151
186
  - test/dummy/public/404.html
152
187
  - test/dummy/public/422.html
153
188
  - test/dummy/public/500.html
@@ -155,6 +190,18 @@ test_files:
155
190
  - test/dummy/Rakefile
156
191
  - test/dummy/README.rdoc
157
192
  - test/dummy/script/rails
193
+ - test/dummy/sources/namespace/home.html
194
+ - test/dummy/sources/namespace/index.yml
195
+ - test/dummy/sources/namespace/page.html
196
+ - test/dummy/sources/root/getting_started.html
197
+ - test/dummy/sources/root/home.html
198
+ - test/dummy/sources/root/index.yml
199
+ - test/dummy/sources/root/page.html
200
+ - test/fixtures/static_docs/pages.yml
201
+ - test/functional/static_docs/pages_controller_test.rb
158
202
  - test/integration/navigation_test.rb
159
203
  - test/static_docs_test.rb
160
204
  - test/test_helper.rb
205
+ - test/unit/helpers/static_docs/pages_helper_test.rb
206
+ - test/unit/static_docs/importer_test.rb
207
+ - test/unit/static_docs/page_test.rb
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>StaticDocs</title>
5
- <%= stylesheet_link_tag "static_docs/application", :media => "all" %>
6
- <%= javascript_include_tag "static_docs/application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>