yard-api 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9bb31c38d0e0da32afec85858785e0983828d3d6
4
- data.tar.gz: 7c9473a9bf603bed99dca94993402e2f4e0e7fb8
3
+ metadata.gz: 06c93991353fbc833a7ca45b81836c7667838845
4
+ data.tar.gz: 30f2b0a1b805366a5fb1794f2d395999ad177558
5
5
  SHA512:
6
- metadata.gz: 591fbf739b125a4c4a6057f209df2e03f6914b6b6e0b932a8f9bad46387275bb4d0dcea16e91b2885d20d21c0fe6b9cda3871c61f94a37b9a976d712ee44a78e
7
- data.tar.gz: 754ef7e03bcdf38789fe330fa62389f240d0b57579d6ef157d9e883647dad3540630ac1e26a660f3d550217c338fbf09e9d972161defe6efca0d61dc33f7dfde
6
+ metadata.gz: 98c3d661fc6bf8f33de2754ed07b56b826d066f32e752629459f180c11e7097c2106f8b6d163a28606ca96d25f4bc01bf4d9143a6631947774b58d6415a2abd7
7
+ data.tar.gz: fab1bbb48be6ed00328df8cb4407c970aec1ac72f83478f97d20a38cc96f3dc7f2c025abb20c2dae4fd18f07d22ebfc9edab99c54f1196ae9a10ffc2e53977ee
@@ -11,6 +11,12 @@ module YARD::Templates::Helpers::HtmlHelper
11
11
  link
12
12
  end
13
13
 
14
+ def visible_static_pages()
15
+ @@visible_static_pages ||= begin
16
+ static_pages.reject { |page| page[:exclude_from_sidebar] }
17
+ end
18
+ end
19
+
14
20
  def static_pages()
15
21
  @@static_pages ||= begin
16
22
  locate_static_pages(YARD::APIPlugin.options)
@@ -19,6 +25,7 @@ module YARD::Templates::Helpers::HtmlHelper
19
25
 
20
26
  def locate_static_pages(options)
21
27
  title_overrides = {}
28
+ excludes = {}
22
29
 
23
30
  paths = Array(options.static).map do |entry|
24
31
  pages = if entry.is_a?(Hash)
@@ -29,6 +36,7 @@ module YARD::Templates::Helpers::HtmlHelper
29
36
  end
30
37
 
31
38
  title_overrides[entry['path']] = entry['title']
39
+ excludes[entry['path']] = true if entry['exclude_from_sidebar']
32
40
 
33
41
  entry['path']
34
42
  elsif entry.is_a?(Array)
@@ -62,7 +70,8 @@ module YARD::Templates::Helpers::HtmlHelper
62
70
  {
63
71
  src: page,
64
72
  filename: filename,
65
- title: title
73
+ title: title,
74
+ exclude_from_sidebar: !!excludes[page]
66
75
  }
67
76
  end.sort_by { |page| page[:title] }
68
77
  end
@@ -1,5 +1,5 @@
1
1
  module YARD
2
2
  module APIPlugin
3
- VERSION = "0.3.5"
3
+ VERSION = "0.3.6"
4
4
  end
5
5
  end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+ require 'tempfile'
3
+
4
+ describe YARD::Templates::Helpers::HtmlHelper do
5
+ let(:html) { Class.new { include YARD::Templates::Helpers::HtmlHelper }.new }
6
+ let(:included) { Tempfile.new('included') }
7
+ let(:excluded) { Tempfile.new('excluded') }
8
+
9
+ before do
10
+ html.singleton_class.class_variable_set(:@@static_pages, nil)
11
+ html.singleton_class.class_variable_set(:@@visible_static_pages, nil)
12
+ set_option('static', [
13
+ {'path' => included.path, 'title' => 'Included'},
14
+ {'path' => excluded.path, 'title' => 'Excluded', 'exclude_from_sidebar' => true}
15
+ ])
16
+ end
17
+
18
+ after do
19
+ included.close(true)
20
+ excluded.close(true)
21
+ end
22
+
23
+ describe '#visible_static_pages' do
24
+ it 'excludes pages with exclude_from_sidebar option' do
25
+ pages = html.visible_static_pages
26
+ expect(pages.count).to eq(1)
27
+ expect(pages[0][:title]).to eq('Included')
28
+ expect(pages[0][:exclude_from_sidebar]).to be_falsey
29
+ end
30
+ end
31
+
32
+ describe '#static_pages' do
33
+ it 'includes pages with exclude_from_sidebar option' do
34
+ pages = html.static_pages
35
+ expect(pages.count).to eq(2)
36
+
37
+ page = pages.find { |p| p[:exclude_from_sidebar] }
38
+ expect(page).to_not be_nil
39
+ expect(page[:title]).to eq('Excluded')
40
+ end
41
+ end
42
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'byebug' if RUBY_VERSION > '1.9.3'
2
-
3
1
  # This file was generated by the `rspec --init` command. Conventionally, all
4
2
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
5
3
  # The generated `.rspec` file contains `--require spec_helper` which will cause this
@@ -16,7 +16,7 @@
16
16
  <% if options[:all_resources] %>
17
17
  <div id="content">
18
18
  <% if api_options.one_file %>
19
- <% static_pages.each do |page| %>
19
+ <% visible_static_pages.each do |page| %>
20
20
  <%= diskfile page[:src] %>
21
21
  <% end %>
22
22
  <% end %>
@@ -15,7 +15,7 @@
15
15
  )
16
16
  %>
17
17
 
18
- <% static_pages.each do |page| %>
18
+ <% visible_static_pages.each do |page| %>
19
19
  <%=
20
20
  sidebar_link(page[:filename], page[:title], object == page[:filename])
21
21
  %>
@@ -4,7 +4,7 @@
4
4
  </h1>
5
5
 
6
6
  <nav id="static_pages">
7
- <% static_pages.each do |page| %>
7
+ <% visible_static_pages.each do |page| %>
8
8
  <%= sidebar_link(page[:title], page[:filename]) %>
9
9
  <% end %>
10
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmad Amireh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-06 00:00:00.000000000 Z
11
+ date: 2016-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yard
@@ -80,6 +80,7 @@ files:
80
80
  - lib/yard-api/version.rb
81
81
  - lib/yard-api/yardoc_task.rb
82
82
  - spec/fulldoc_spec.rb
83
+ - spec/helpers/html_helper_spec.rb
83
84
  - spec/spec_helper.rb
84
85
  - spec/tags/argument_spec.rb
85
86
  - tasks/yard_api.rake
@@ -206,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  version: '0'
207
208
  requirements: []
208
209
  rubyforge_project:
209
- rubygems_version: 2.2.0
210
+ rubygems_version: 2.4.5.1
210
211
  signing_key:
211
212
  specification_version: 4
212
213
  summary: A YARD plugin for documenting APIs in Rails projects.