simple-navigation 4.4.0 → 4.5.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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +84 -0
  3. data/.rspec +1 -2
  4. data/.rubocop.yml +49 -0
  5. data/.rubocop_todo.yml +38 -0
  6. data/.ruby-version +1 -0
  7. data/Appraisals +55 -0
  8. data/CHANGELOG.md +18 -6
  9. data/Gemfile +21 -0
  10. data/Guardfile +4 -2
  11. data/README.md +14 -28
  12. data/Rakefile +2 -27
  13. data/bin/_guard-core +16 -0
  14. data/bin/appraisal +16 -0
  15. data/bin/guard +16 -0
  16. data/bin/rake +16 -0
  17. data/bin/rspec +16 -0
  18. data/bin/rubocop +16 -0
  19. data/gemfiles/rails_6.1.gemfile +35 -0
  20. data/gemfiles/rails_7.0.gemfile +23 -0
  21. data/gemfiles/rails_7.1.gemfile +23 -0
  22. data/gemfiles/rails_7.2.gemfile +23 -0
  23. data/gemfiles/rails_8.0.gemfile +23 -0
  24. data/gemfiles/rails_8.1.gemfile +23 -0
  25. data/generators/navigation_config/navigation_config_generator.rb +2 -0
  26. data/generators/navigation_config/templates/config/navigation.rb +30 -26
  27. data/lib/generators/navigation_config/navigation_config_generator.rb +2 -0
  28. data/lib/simple-navigation.rb +3 -1
  29. data/lib/simple_navigation/adapters/base.rb +2 -0
  30. data/lib/simple_navigation/adapters/nanoc.rb +8 -3
  31. data/lib/simple_navigation/adapters/padrino.rb +3 -1
  32. data/lib/simple_navigation/adapters/rails.rb +12 -14
  33. data/lib/simple_navigation/adapters/sinatra.rb +4 -6
  34. data/lib/simple_navigation/config_file.rb +1 -1
  35. data/lib/simple_navigation/config_file_finder.rb +3 -3
  36. data/lib/simple_navigation/configuration.rb +5 -5
  37. data/lib/simple_navigation/helpers.rb +9 -11
  38. data/lib/simple_navigation/item.rb +26 -20
  39. data/lib/simple_navigation/item_adapter.rb +16 -5
  40. data/lib/simple_navigation/item_container.rb +13 -7
  41. data/lib/simple_navigation/items_provider.rb +6 -4
  42. data/lib/simple_navigation/railtie.rb +3 -1
  43. data/lib/simple_navigation/renderer/base.rb +5 -5
  44. data/lib/simple_navigation/renderer/breadcrumbs.rb +4 -3
  45. data/lib/simple_navigation/renderer/json.rb +1 -1
  46. data/lib/simple_navigation/renderer/links.rb +2 -0
  47. data/lib/simple_navigation/renderer/list.rb +5 -5
  48. data/lib/simple_navigation/renderer/text.rb +3 -1
  49. data/lib/simple_navigation/version.rb +3 -1
  50. data/lib/simple_navigation.rb +32 -24
  51. data/simple-navigation.gemspec +16 -26
  52. data/spec/fake_app/config/navigation.rb +4 -2
  53. data/spec/fake_app/rails_app.rb +5 -3
  54. data/spec/integration/rendering_navigation_spec.rb +7 -5
  55. data/spec/simple_navigation/adapters/nanoc_spec.rb +97 -0
  56. data/spec/simple_navigation/adapters/padrino_spec.rb +41 -22
  57. data/spec/simple_navigation/adapters/rails_spec.rb +199 -206
  58. data/spec/simple_navigation/adapters/sinatra_spec.rb +21 -5
  59. data/spec/simple_navigation/config_file_finder_spec.rb +32 -28
  60. data/spec/simple_navigation/config_file_spec.rb +14 -14
  61. data/spec/simple_navigation/configuration_spec.rb +128 -121
  62. data/spec/simple_navigation/helpers_spec.rb +282 -284
  63. data/spec/simple_navigation/item_adapter_spec.rb +109 -122
  64. data/spec/simple_navigation/item_container_spec.rb +407 -408
  65. data/spec/simple_navigation/item_spec.rb +333 -301
  66. data/spec/simple_navigation/items_provider_spec.rb +30 -27
  67. data/spec/simple_navigation/renderer/base_spec.rb +166 -168
  68. data/spec/simple_navigation/renderer/breadcrumbs_spec.rb +81 -83
  69. data/spec/simple_navigation/renderer/json_spec.rb +49 -56
  70. data/spec/simple_navigation/renderer/links_spec.rb +81 -83
  71. data/spec/simple_navigation/renderer/list_spec.rb +111 -91
  72. data/spec/simple_navigation/renderer/text_spec.rb +37 -39
  73. data/spec/simple_navigation_spec.rb +54 -47
  74. data/spec/spec_helper.rb +146 -53
  75. metadata +29 -156
  76. data/.travis.yml +0 -23
  77. data/gemfiles/rails-3-2-stable.gemfile +0 -11
  78. data/gemfiles/rails-4-1-stable.gemfile +0 -7
  79. data/gemfiles/rails-4-2-stable.gemfile +0 -7
  80. data/gemfiles/rails-5-2-stable.gemfile +0 -7
  81. data/gemfiles/rails-6-0-stable.gemfile +0 -9
  82. data/gemfiles/rails-6-1-stable.gemfile +0 -9
  83. data/init.rb +0 -1
  84. data/install.rb +0 -5
  85. data/lib/simple_navigation/adapters.rb +0 -10
  86. data/lib/simple_navigation/renderer.rb +0 -12
  87. data/spec/initializers/coveralls.rb +0 -3
  88. data/spec/initializers/have_css_matcher.rb +0 -19
  89. data/spec/initializers/memfs.rb +0 -7
  90. data/spec/initializers/rails.rb +0 -4
  91. data/spec/initializers/rspec.rb +0 -7
  92. data/uninstall.rb +0 -1
data/spec/spec_helper.rb CHANGED
@@ -1,76 +1,169 @@
1
- require 'initializers/have_css_matcher'
2
- require 'initializers/memfs'
3
- require 'initializers/coveralls'
4
- require 'initializers/rails'
5
- require 'initializers/rspec'
1
+ # frozen_string_literal: true
2
+
3
+ # Load ruby-warning gem
4
+ require 'warning'
5
+
6
+ Warning[:deprecated] = true
7
+ Warning[:experimental] = true
8
+ Warning[:performance] = true if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.3.0')
9
+
10
+ # Ignore all warnings in Gem dependencies
11
+ Gem.path.each do |path|
12
+ Warning.ignore(//, path)
13
+ end
14
+
15
+ # Ignore method redefinitions
16
+ Warning.ignore(/warning: previous definition of/)
17
+ Warning.ignore(/warning: method redefined;/)
18
+
19
+ # Load simplecov
20
+ require 'simplecov'
21
+ require 'simplecov_json_formatter'
22
+
23
+ # Start SimpleCov
24
+ SimpleCov.start do
25
+ formatter SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter,
26
+ SimpleCov::Formatter::JSONFormatter])
27
+ add_filter 'spec/'
28
+ end
29
+
30
+ # Load test gems
31
+ require 'memfs'
6
32
  require 'capybara/rspec'
7
33
 
8
- require 'bundler/setup'
9
- Bundler.require
34
+ # Define our own spec helper
35
+ module SimpleNavigationTest
36
+ extend RSpec::Mocks::ExampleMethods
10
37
 
11
- if defined? Rails
12
- require 'fake_app/rails_app'
13
- require 'rspec/rails'
38
+ module_function
14
39
 
15
- Capybara.app = RailsApp::Application
40
+ def setup_adapter_for(framework, context = double(:context))
41
+ if framework == :rails
42
+ # Rails 6.0 and 6.1 provide ActionView::Base.empty method that creates ActionView with an empty LookupContext.
43
+ # The method is not available on older versions
44
+ view_context = ActionView::Base.respond_to?(:empty) ? ActionView::Base.empty : ActionView::Base.new
45
+ allow(context).to receive_messages(view_context: view_context)
46
+ end
16
47
 
17
- RSpec.configure do |config|
18
- config.before do
19
- SimpleNavigation.config_files.clear
20
- setup_adapter_for :rails
48
+ allow(SimpleNavigation).to receive_messages(framework: framework)
49
+ SimpleNavigation.load_adapter
50
+ SimpleNavigation.init_adapter_from(context)
51
+ end
52
+
53
+ def select_an_item(item)
54
+ allow(item).to receive_messages(selected?: true)
55
+ end
56
+
57
+ def setup_container(dom_id, dom_class)
58
+ container = SimpleNavigation::ItemContainer.new(1)
59
+ container.dom_id = dom_id
60
+ container.dom_class = dom_class
61
+ container
62
+ end
63
+
64
+ def setup_navigation(dom_id, dom_class)
65
+ setup_adapter_for :rails
66
+ container = setup_container(dom_id, dom_class)
67
+ setup_items(container)
68
+ container
69
+ end
70
+
71
+ # FIXME: adding the :link option for the list renderer messes up the other
72
+ # renderers
73
+ def setup_items(container) # rubocop:disable Metrics/AbcSize
74
+ container.item :users, 'Users', '/users', html: { id: 'users_id' }, link_html: { id: 'users_link_id' }
75
+ container.item :invoices, 'Invoices', '/invoices' do |invoices|
76
+ invoices.item :paid, 'Paid', '/invoices/paid'
77
+ invoices.item :unpaid, 'Unpaid', '/invoices/unpaid'
78
+ end
79
+ container.item :accounts, 'Accounts', '/accounts', html: { style: 'float:right' }
80
+ container.item :miscellany, 'Miscellany'
81
+
82
+ container.items.each do |item|
83
+ allow(item).to receive_messages(selected?: false, selected_by_condition?: false)
84
+
85
+ item.sub_navigation&.items&.each do |sub_item|
86
+ allow(sub_item).to receive_messages(selected?: false, selected_by_condition?: false)
87
+ end
21
88
  end
22
89
  end
23
90
  end
24
91
 
25
- def setup_adapter_for(framework, context = double(:context))
26
- if framework == :rails
27
- # Rails 6.0 and 6.1 provide ActionView::Base.empty method that creates ActionView with an empty LookupContext.
28
- # The method is not available on older versions
29
- view_context = ActionView::Base.respond_to?(:empty) ? ActionView::Base.empty : ActionView::Base.new
30
- allow(context).to receive_messages(view_context: view_context)
92
+ # Configure RSpec
93
+ RSpec.configure do |config|
94
+ config.include SimpleNavigationTest
95
+
96
+ config.color = true
97
+ config.fail_fast = false
98
+
99
+ config.order = :random
100
+ Kernel.srand config.seed
101
+
102
+ config.expect_with(:rspec) do |c|
103
+ c.syntax = :expect
31
104
  end
32
105
 
33
- allow(SimpleNavigation).to receive_messages(framework: framework)
34
- SimpleNavigation.load_adapter
35
- SimpleNavigation.init_adapter_from(context)
36
- end
106
+ # disable monkey patching
107
+ # see: https://rspec.info/features/3-12/rspec-core/configuration/zero-monkey-patching-mode/
108
+ config.disable_monkey_patching!
37
109
 
38
- def select_an_item(item)
39
- allow(item).to receive_messages(selected?: true)
40
- end
110
+ config.raise_errors_for_deprecations!
41
111
 
42
- def setup_container(dom_id, dom_class)
43
- container = SimpleNavigation::ItemContainer.new(1)
44
- container.dom_id = dom_id
45
- container.dom_class = dom_class
46
- container
112
+ config.around(memfs: true) do |example|
113
+ MemFs.activate { example.run }
114
+ end
47
115
  end
48
116
 
49
- def setup_navigation(dom_id, dom_class)
50
- setup_adapter_for :rails
51
- container = setup_container(dom_id, dom_class)
52
- setup_items(container)
53
- container
117
+ # Define our own matcher
118
+ RSpec::Matchers.define :have_css do |expected, times|
119
+ match do |actual|
120
+ selector = Nokogiri::HTML(actual).css(expected)
121
+
122
+ if times
123
+ expect(selector.size).to eq times
124
+ else
125
+ expect(selector.size).to be >= 1
126
+ end
127
+ end
128
+
129
+ failure_message do |actual|
130
+ "expected #{actual} to have #{times || 1} elements matching '#{expected}'"
131
+ end
132
+
133
+ failure_message_when_negated do |actual|
134
+ "expected #{actual} not to have #{times || 1} elements matching '#{expected}'"
135
+ end
54
136
  end
55
137
 
56
- # FIXME: adding the :link option for the list renderer messes up the other
57
- # renderers
58
- def setup_items(container)
59
- container.item :users, 'Users', '/users', html: { id: 'users_id' }, link_html: { id: 'users_link_id' }
60
- container.item :invoices, 'Invoices', '/invoices' do |invoices|
61
- invoices.item :paid, 'Paid', '/invoices/paid'
62
- invoices.item :unpaid, 'Unpaid', '/invoices/unpaid'
138
+ RSpec::Matchers.define :have_no_css do |expected|
139
+ match do |actual|
140
+ selector = Nokogiri::HTML(actual).css(expected)
141
+ expect(selector.size).to eq 0
63
142
  end
64
- container.item :accounts, 'Accounts', '/accounts', html: { style: 'float:right' }
65
- container.item :miscellany, 'Miscellany'
66
143
 
67
- container.items.each do |item|
68
- allow(item).to receive_messages(selected?: false, selected_by_condition?: false)
144
+ failure_message do |actual|
145
+ "expected #{actual} to have no elements matching '#{expected}'"
146
+ end
69
147
 
70
- if item.sub_navigation
71
- item.sub_navigation.items.each do |item|
72
- allow(item).to receive_messages(selected?: false, selected_by_condition?: false)
73
- end
148
+ failure_message_when_negated do |actual|
149
+ "expected #{actual} to have elements matching '#{expected}'"
150
+ end
151
+ end
152
+
153
+ # Configure RSpec with Rails
154
+ begin
155
+ require 'rails'
156
+ rescue LoadError # rubocop:disable Lint/SuppressedException
157
+ else
158
+ require 'fake_app/rails_app'
159
+ require 'rspec/rails'
160
+
161
+ Capybara.app = RailsApp::Application
162
+
163
+ RSpec.configure do |config|
164
+ config.before do
165
+ SimpleNavigation.config_files.clear
166
+ SimpleNavigationTest.setup_adapter_for :rails
74
167
  end
75
168
  end
76
169
  end
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andi Schacke
8
8
  - Mark J. Titorenko
9
9
  - Simon Courtois
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2022-05-24 00:00:00.000000000 Z
12
+ date: 1980-01-02 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
@@ -18,106 +17,22 @@ dependencies:
18
17
  requirements:
19
18
  - - ">="
20
19
  - !ruby/object:Gem::Version
21
- version: 2.3.2
20
+ version: 6.1.0
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
28
- version: 2.3.2
27
+ version: 6.1.0
29
28
  - !ruby/object:Gem::Dependency
30
- name: bundler
29
+ name: json
31
30
  requirement: !ruby/object:Gem::Requirement
32
31
  requirements:
33
32
  - - ">="
34
33
  - !ruby/object:Gem::Version
35
34
  version: '0'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '0'
43
- - !ruby/object:Gem::Dependency
44
- name: capybara
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '0'
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: '0'
57
- - !ruby/object:Gem::Dependency
58
- name: coveralls
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: '0.7'
64
- type: :development
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: '0.7'
71
- - !ruby/object:Gem::Dependency
72
- name: guard-rspec
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '4.2'
78
- type: :development
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: '4.2'
85
- - !ruby/object:Gem::Dependency
86
- name: memfs
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: 0.4.1
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: 0.4.1
99
- - !ruby/object:Gem::Dependency
100
- name: rake
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- version: '0'
106
- type: :development
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: '0'
113
- - !ruby/object:Gem::Dependency
114
- name: rdoc
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '0'
120
- type: :development
35
+ type: :runtime
121
36
  prerelease: false
122
37
  version_requirements: !ruby/object:Gem::Requirement
123
38
  requirements:
@@ -125,27 +40,13 @@ dependencies:
125
40
  - !ruby/object:Gem::Version
126
41
  version: '0'
127
42
  - !ruby/object:Gem::Dependency
128
- name: rspec
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '3.0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: '3.0'
141
- - !ruby/object:Gem::Dependency
142
- name: tzinfo
43
+ name: zeitwerk
143
44
  requirement: !ruby/object:Gem::Requirement
144
45
  requirements:
145
46
  - - ">="
146
47
  - !ruby/object:Gem::Version
147
48
  version: '0'
148
- type: :development
49
+ type: :runtime
149
50
  prerelease: false
150
51
  version_requirements: !ruby/object:Gem::Requirement
151
52
  requirements:
@@ -162,31 +63,38 @@ executables: []
162
63
  extensions: []
163
64
  extra_rdoc_files: []
164
65
  files:
66
+ - ".github/workflows/ci.yml"
165
67
  - ".gitignore"
166
68
  - ".rspec"
167
- - ".travis.yml"
69
+ - ".rubocop.yml"
70
+ - ".rubocop_todo.yml"
71
+ - ".ruby-version"
72
+ - Appraisals
168
73
  - CHANGELOG.md
169
74
  - Gemfile
170
75
  - Guardfile
171
76
  - LICENSE
172
77
  - README.md
173
78
  - Rakefile
79
+ - bin/_guard-core
80
+ - bin/appraisal
81
+ - bin/guard
82
+ - bin/rake
83
+ - bin/rspec
84
+ - bin/rubocop
174
85
  - gemfiles/.bundle/config
175
- - gemfiles/rails-3-2-stable.gemfile
176
- - gemfiles/rails-4-1-stable.gemfile
177
- - gemfiles/rails-4-2-stable.gemfile
178
- - gemfiles/rails-5-2-stable.gemfile
179
- - gemfiles/rails-6-0-stable.gemfile
180
- - gemfiles/rails-6-1-stable.gemfile
86
+ - gemfiles/rails_6.1.gemfile
87
+ - gemfiles/rails_7.0.gemfile
88
+ - gemfiles/rails_7.1.gemfile
89
+ - gemfiles/rails_7.2.gemfile
90
+ - gemfiles/rails_8.0.gemfile
91
+ - gemfiles/rails_8.1.gemfile
181
92
  - generators/navigation_config/USAGE
182
93
  - generators/navigation_config/navigation_config_generator.rb
183
94
  - generators/navigation_config/templates/config/navigation.rb
184
- - init.rb
185
- - install.rb
186
95
  - lib/generators/navigation_config/navigation_config_generator.rb
187
96
  - lib/simple-navigation.rb
188
97
  - lib/simple_navigation.rb
189
- - lib/simple_navigation/adapters.rb
190
98
  - lib/simple_navigation/adapters/base.rb
191
99
  - lib/simple_navigation/adapters/nanoc.rb
192
100
  - lib/simple_navigation/adapters/padrino.rb
@@ -201,7 +109,6 @@ files:
201
109
  - lib/simple_navigation/item_container.rb
202
110
  - lib/simple_navigation/items_provider.rb
203
111
  - lib/simple_navigation/railtie.rb
204
- - lib/simple_navigation/renderer.rb
205
112
  - lib/simple_navigation/renderer/base.rb
206
113
  - lib/simple_navigation/renderer/breadcrumbs.rb
207
114
  - lib/simple_navigation/renderer/json.rb
@@ -212,12 +119,8 @@ files:
212
119
  - simple-navigation.gemspec
213
120
  - spec/fake_app/config/navigation.rb
214
121
  - spec/fake_app/rails_app.rb
215
- - spec/initializers/coveralls.rb
216
- - spec/initializers/have_css_matcher.rb
217
- - spec/initializers/memfs.rb
218
- - spec/initializers/rails.rb
219
- - spec/initializers/rspec.rb
220
122
  - spec/integration/rendering_navigation_spec.rb
123
+ - spec/simple_navigation/adapters/nanoc_spec.rb
221
124
  - spec/simple_navigation/adapters/padrino_spec.rb
222
125
  - spec/simple_navigation/adapters/rails_spec.rb
223
126
  - spec/simple_navigation/adapters/sinatra_spec.rb
@@ -237,12 +140,10 @@ files:
237
140
  - spec/simple_navigation/renderer/text_spec.rb
238
141
  - spec/simple_navigation_spec.rb
239
142
  - spec/spec_helper.rb
240
- - uninstall.rb
241
143
  homepage: http://github.com/codeplant/simple-navigation
242
144
  licenses:
243
145
  - MIT
244
146
  metadata: {}
245
- post_install_message:
246
147
  rdoc_options:
247
148
  - "--inline-source"
248
149
  - "--charset=UTF-8"
@@ -252,43 +153,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
252
153
  requirements:
253
154
  - - ">="
254
155
  - !ruby/object:Gem::Version
255
- version: '0'
156
+ version: 3.0.0
256
157
  required_rubygems_version: !ruby/object:Gem::Requirement
257
158
  requirements:
258
159
  - - ">="
259
160
  - !ruby/object:Gem::Version
260
161
  version: '0'
261
162
  requirements: []
262
- rubygems_version: 3.2.3
263
- signing_key:
163
+ rubygems_version: 3.6.7
264
164
  specification_version: 4
265
165
  summary: simple-navigation is a ruby library for creating navigations (with multiple
266
166
  levels) for your Rails, Sinatra or Padrino application.
267
- test_files:
268
- - spec/fake_app/config/navigation.rb
269
- - spec/fake_app/rails_app.rb
270
- - spec/initializers/coveralls.rb
271
- - spec/initializers/have_css_matcher.rb
272
- - spec/initializers/memfs.rb
273
- - spec/initializers/rails.rb
274
- - spec/initializers/rspec.rb
275
- - spec/integration/rendering_navigation_spec.rb
276
- - spec/simple_navigation/adapters/padrino_spec.rb
277
- - spec/simple_navigation/adapters/rails_spec.rb
278
- - spec/simple_navigation/adapters/sinatra_spec.rb
279
- - spec/simple_navigation/config_file_finder_spec.rb
280
- - spec/simple_navigation/config_file_spec.rb
281
- - spec/simple_navigation/configuration_spec.rb
282
- - spec/simple_navigation/helpers_spec.rb
283
- - spec/simple_navigation/item_adapter_spec.rb
284
- - spec/simple_navigation/item_container_spec.rb
285
- - spec/simple_navigation/item_spec.rb
286
- - spec/simple_navigation/items_provider_spec.rb
287
- - spec/simple_navigation/renderer/base_spec.rb
288
- - spec/simple_navigation/renderer/breadcrumbs_spec.rb
289
- - spec/simple_navigation/renderer/json_spec.rb
290
- - spec/simple_navigation/renderer/links_spec.rb
291
- - spec/simple_navigation/renderer/list_spec.rb
292
- - spec/simple_navigation/renderer/text_spec.rb
293
- - spec/simple_navigation_spec.rb
294
- - spec/spec_helper.rb
167
+ test_files: []
data/.travis.yml DELETED
@@ -1,23 +0,0 @@
1
- before_install:
2
- - gem install bundler
3
-
4
- matrix:
5
- include:
6
- - rvm: 2.5.8
7
- gemfile: gemfiles/rails-6-1-stable.gemfile
8
- - rvm: 2.6.7
9
- gemfile: gemfiles/rails-6-1-stable.gemfile
10
- - rvm: 2.7.3
11
- gemfile: gemfiles/rails-6-1-stable.gemfile
12
- - rvm: 2.5.3
13
- gemfile: gemfiles/rails-6-0-stable.gemfile
14
- - rvm: 2.6.0
15
- gemfile: gemfiles/rails-6-0-stable.gemfile
16
- - rvm: 2.5.1
17
- gemfile: gemfiles/rails-5-2-stable.gemfile
18
- - rvm: 2.4.5
19
- gemfile: gemfiles/rails-4-2-stable.gemfile
20
- - rvm: 2.3.3
21
- gemfile: gemfiles/rails-4-1-stable.gemfile
22
- - rvm: 2.3.3
23
- gemfile: gemfiles/rails-3-2-stable.gemfile
@@ -1,11 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake', '< 11.0'
4
- gem 'railties', '~> 3.2.0'
5
- gem 'rspec-rails', '~> 3.2.1'
6
-
7
- if RUBY_VERSION >= '2.2.0'
8
- gem 'test-unit', '~> 3.0'
9
- end
10
-
11
- gemspec path: '../'
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake', '< 11.0'
4
- gem 'railties', '~> 4.1.0'
5
- gem 'rspec-rails', '~> 3.2.1'
6
-
7
- gemspec path: '../'
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake', '< 11.0'
4
- gem 'railties', '~> 4.2.0'
5
- gem 'rspec-rails', '~> 3.2.1'
6
-
7
- gemspec path: '../'
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake', '< 11.0'
4
- gem 'railties', '~> 5.2.0'
5
- gem 'rspec-rails', '~> 3.8.2'
6
-
7
- gemspec path: '../'
@@ -1,9 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake', '< 11.0'
4
-
5
- # not yet
6
- gem 'railties', '~> 6.0.0'
7
- gem 'rspec-rails', '~> 3.8.2'
8
-
9
- gemspec path: '../'
@@ -1,9 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake', '< 11.0'
4
-
5
- # not yet
6
- gem 'railties', '~> 6.1.0'
7
- gem 'rspec-rails', '~> 3.8.2'
8
-
9
- gemspec path: '../'
data/init.rb DELETED
@@ -1 +0,0 @@
1
- require File.dirname(__FILE__) + '/rails/init'
data/install.rb DELETED
@@ -1,5 +0,0 @@
1
- begin
2
- puts IO.read(File.join(File.dirname(__FILE__), 'README'))
3
- rescue Exception => e
4
- puts "The following error ocurred while installing the plugin: #{e.message}"
5
- end
@@ -1,10 +0,0 @@
1
- require 'simple_navigation/adapters/base'
2
-
3
- module SimpleNavigation
4
- module Adapters
5
- autoload :Rails, 'simple_navigation/adapters/rails'
6
- autoload :Padrino, 'simple_navigation/adapters/padrino'
7
- autoload :Sinatra, 'simple_navigation/adapters/sinatra'
8
- autoload :Nanoc, 'simple_navigation/adapters/nanoc'
9
- end
10
- end
@@ -1,12 +0,0 @@
1
- require 'simple_navigation/helpers'
2
- require 'simple_navigation/renderer/base'
3
-
4
- module SimpleNavigation
5
- module Renderer
6
- autoload :List, 'simple_navigation/renderer/list'
7
- autoload :Links, 'simple_navigation/renderer/links'
8
- autoload :Breadcrumbs, 'simple_navigation/renderer/breadcrumbs'
9
- autoload :Text, 'simple_navigation/renderer/text'
10
- autoload :Json, 'simple_navigation/renderer/json'
11
- end
12
- end
@@ -1,3 +0,0 @@
1
- require 'coveralls'
2
-
3
- Coveralls.wear!
@@ -1,19 +0,0 @@
1
- RSpec::Matchers.define :have_css do |expected, times|
2
- match do |actual|
3
- selector = Nokogiri::HTML(actual).css(expected)
4
-
5
- if times
6
- expect(selector.size).to eq times
7
- else
8
- expect(selector.size).to be >= 1
9
- end
10
- end
11
-
12
- failure_message do |actual|
13
- "expected #{actual.to_s} to have #{times || 1} elements matching '#{expected}'"
14
- end
15
-
16
- failure_message_when_negated do |actual|
17
- "expected #{actual.to_s} not to have #{times || 1} elements matching '#{expected}'"
18
- end
19
- end
@@ -1,7 +0,0 @@
1
- require 'memfs'
2
-
3
- RSpec.configure do |config|
4
- config.around(memfs: true) do |example|
5
- MemFs.activate { example.run }
6
- end
7
- end
@@ -1,4 +0,0 @@
1
- begin
2
- require 'rails'
3
- rescue LoadError
4
- end
@@ -1,7 +0,0 @@
1
- RSpec.configure do |config|
2
- config.expect_with(:rspec) do |c|
3
- c.syntax = :expect
4
- end
5
-
6
- config.order = :random
7
- end