loaf 0.8.1 → 0.9.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +9 -1
  4. data/lib/loaf.rb +1 -0
  5. data/lib/loaf/errors.rb +1 -1
  6. data/lib/loaf/translation.rb +1 -1
  7. data/lib/loaf/version.rb +1 -1
  8. metadata +13 -70
  9. data/Appraisals +0 -31
  10. data/Rakefile +0 -13
  11. data/bin/console +0 -14
  12. data/bin/setup +0 -9
  13. data/loaf.gemspec +0 -35
  14. data/spec/integration/breadcrumb_trail_spec.rb +0 -71
  15. data/spec/integration/configuration_spec.rb +0 -12
  16. data/spec/rails_app/Rakefile +0 -8
  17. data/spec/rails_app/app/controllers/application_controller.rb +0 -5
  18. data/spec/rails_app/app/controllers/comments_controller.rb +0 -20
  19. data/spec/rails_app/app/controllers/home_controller.rb +0 -4
  20. data/spec/rails_app/app/controllers/posts_controller.rb +0 -20
  21. data/spec/rails_app/app/views/comments/index.html.erb +0 -1
  22. data/spec/rails_app/app/views/home/index.html.erb +0 -1
  23. data/spec/rails_app/app/views/layouts/_breadcrumbs.html.erb +0 -12
  24. data/spec/rails_app/app/views/layouts/application.html.erb +0 -14
  25. data/spec/rails_app/app/views/posts/index.html.erb +0 -1
  26. data/spec/rails_app/app/views/posts/new.html.erb +0 -4
  27. data/spec/rails_app/app/views/posts/show.html.erb +0 -1
  28. data/spec/rails_app/config.ru +0 -4
  29. data/spec/rails_app/config/application.rb +0 -48
  30. data/spec/rails_app/config/boot.rb +0 -10
  31. data/spec/rails_app/config/database.yml +0 -25
  32. data/spec/rails_app/config/environment.rb +0 -5
  33. data/spec/rails_app/config/environments/development.rb +0 -32
  34. data/spec/rails_app/config/environments/production.rb +0 -62
  35. data/spec/rails_app/config/environments/test.rb +0 -41
  36. data/spec/rails_app/config/initializers/backtrace_silencers.rb +0 -7
  37. data/spec/rails_app/config/initializers/inflections.rb +0 -10
  38. data/spec/rails_app/config/initializers/mime_types.rb +0 -5
  39. data/spec/rails_app/config/initializers/secret_token.rb +0 -7
  40. data/spec/rails_app/config/initializers/session_store.rb +0 -8
  41. data/spec/rails_app/config/initializers/wrap_parameters.rb +0 -14
  42. data/spec/rails_app/config/locales/en.yml +0 -5
  43. data/spec/rails_app/config/locales/loaf.en.yml +0 -6
  44. data/spec/rails_app/config/routes.rb +0 -7
  45. data/spec/rails_app/config/secrets.yml +0 -22
  46. data/spec/rails_app/db/seeds.rb +0 -7
  47. data/spec/rails_app/public/404.html +0 -26
  48. data/spec/rails_app/public/422.html +0 -26
  49. data/spec/rails_app/public/500.html +0 -26
  50. data/spec/rails_app/public/favicon.ico +0 -0
  51. data/spec/rails_app/public/robots.txt +0 -5
  52. data/spec/spec_helper.rb +0 -52
  53. data/spec/support/capybara.rb +0 -8
  54. data/spec/support/dummy_controller.rb +0 -9
  55. data/spec/support/dummy_view.rb +0 -47
  56. data/spec/support/load_routes.rb +0 -4
  57. data/spec/unit/configuration_spec.rb +0 -33
  58. data/spec/unit/controller_extensions_spec.rb +0 -54
  59. data/spec/unit/crumb_spec.rb +0 -15
  60. data/spec/unit/generators/install_generator_spec.rb +0 -17
  61. data/spec/unit/options_validator_spec.rb +0 -15
  62. data/spec/unit/translation_spec.rb +0 -30
  63. data/spec/unit/view_extensions/breadcrumb_spec.rb +0 -22
  64. data/spec/unit/view_extensions/breadcrumb_trail_spec.rb +0 -244
  65. data/spec/unit/view_extensions/has_breadcrumbs_spec.rb +0 -10
  66. data/tasks/console.rake +0 -10
  67. data/tasks/coverage.rake +0 -11
  68. data/tasks/spec.rake +0 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc22570dd017b80276b640bf9c756b19ddcbb02b85c74c4f484773aa7af42ad2
4
- data.tar.gz: d62220b5739f21e5260a5bad410374bc39a9d2f2a54e5a6b19a9d05d2ff553ad
3
+ metadata.gz: f544810445fa9db426eb9d433df6bf0bd700d91a1f277f00ac22799805adced3
4
+ data.tar.gz: 0aa946e6a0f5ea4beb5eee018d9953ff2246d2da603b386627b4e36fe2d7f059
5
5
  SHA512:
6
- metadata.gz: 9d768470f207313a752d394c1157f17845665b7d554ad1d042fdb0c3b11f3b57a3689484cfe90ba75739db7027fd3b6abbbd993b0ed2dcfc39258a746e50edee
7
- data.tar.gz: ac730df55f980215bc2e6c2d13db49e71066ce37e458c2cd903e7d90c6f1fc11fdc93f1ed233d65043e0745e803d39f5d926335b06dc2aaadf80b8167e081a4e
6
+ metadata.gz: db053ea3b9a1cb1681fad9370a2d2174fe249b5602367aab6d04ea3c7c04ebf9bb8b0bedef5a1326374c96c76c2c0d5593f62aba7273c00f981297f794934415
7
+ data.tar.gz: 4f3e32da25d4cd0b3abac19b82133769d7b25c61778ac476d0ae06ace6be2ee219526416ff398d917653d7762505eab1a467d1b1aeded3d3c1b90f362749f2e6
@@ -1,5 +1,15 @@
1
1
  # Change log
2
2
 
3
+ ## [v0.9.0] - 2020-01-19
4
+
5
+ ### Changed
6
+ * Change gemspec to include metadata, license info and remove test artifacts
7
+ * Change to update testing to include Ruby 2.7
8
+ * Change to limit Ruby to 1.9.3 or greater
9
+
10
+ ### Fixed
11
+ * Fix Ruby 2.7 warnings
12
+
3
13
  ## [v0.8.1] - 2019-02-04
4
14
 
5
15
  ### Added
@@ -121,6 +131,8 @@
121
131
 
122
132
  * Initial implementation and release
123
133
 
134
+ [v0.9.0]: https://github.com/piotrmurach/loaf/compare/v0.8.1...v0.9.0
135
+ [v0.8.1]: https://github.com/piotrmurach/loaf/compare/v0.8.0...v0.8.1
124
136
  [v0.8.0]: https://github.com/piotrmurach/loaf/compare/v0.7.0...v0.8.0
125
137
  [v0.7.0]: https://github.com/piotrmurach/loaf/compare/v0.6.2...v0.7.0
126
138
  [v0.6.2]: https://github.com/piotrmurach/loaf/compare/v0.6.1...v0.6.2
data/README.md CHANGED
@@ -324,6 +324,14 @@ en:
324
324
 
325
325
  Questions or problems? Please post them on the [issue tracker](https://github.com/piotrmurach/loaf/issues). You can contribute changes by forking the project and submitting a pull request. You can ensure the tests are passing by running `bundle` and `rake`.
326
326
 
327
+ ## License
328
+
329
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
330
+
331
+ ## Code of Conduct
332
+
333
+ Everyone interacting in the Loaf project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/piotrmurach/loaf/blob/master/CODE_OF_CONDUCT.md).
334
+
327
335
  ## Copyright
328
336
 
329
- Copyright (c) 2011-2018 Piotr Murach. See LICENSE.txt for further details.
337
+ Copyright (c) 2011 Piotr Murach. See LICENSE.txt for further details.
@@ -1,5 +1,6 @@
1
1
  require_relative 'loaf/configuration'
2
2
  require_relative 'loaf/railtie'
3
+ require_relative 'loaf/version'
3
4
 
4
5
  module Loaf
5
6
  # Set global configuration
@@ -11,7 +11,7 @@ module Loaf #:nodoc:
11
11
  end
12
12
 
13
13
  def translate(key, options)
14
- ::I18n.translate("#{BASE_KEY}.#{key}", { :locale => :en }.merge(options))
14
+ ::I18n.translate("#{BASE_KEY}.#{key}", **{ :locale => :en }.merge(options))
15
15
  end
16
16
  end
17
17
 
@@ -30,7 +30,7 @@ module Loaf
30
30
  options[:scope] ||= translation_scope
31
31
  options[:default] = Array(options[:default])
32
32
  options[:default] << title if options[:default].empty?
33
- I18n.t(title.to_s, options)
33
+ I18n.t(title.to_s, **options)
34
34
  end
35
35
  module_function :find_title
36
36
  end # Translation
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Loaf
4
- VERSION = '0.8.1'
4
+ VERSION = "0.9.0"
5
5
  end # Loaf
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loaf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Murach
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-04 00:00:00.000000000 Z
11
+ date: 2020-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -56,18 +56,15 @@ description: Loaf manages and displays breadcrumb trails in your Rails app. It a
56
56
  to handle breadcrumb data through easy dsl and expose it through view helpers without
57
57
  any assumptions about markup.
58
58
  email:
59
- - ''
59
+ - piotr@piotrmurach.com
60
60
  executables: []
61
61
  extensions: []
62
- extra_rdoc_files: []
62
+ extra_rdoc_files:
63
+ - README.md
63
64
  files:
64
- - Appraisals
65
65
  - CHANGELOG.md
66
66
  - LICENSE.txt
67
67
  - README.md
68
- - Rakefile
69
- - bin/console
70
- - bin/setup
71
68
  - config/locales/loaf.en.yml
72
69
  - lib/generators/loaf/install_generator.rb
73
70
  - lib/loaf.rb
@@ -81,69 +78,16 @@ files:
81
78
  - lib/loaf/translation.rb
82
79
  - lib/loaf/version.rb
83
80
  - lib/loaf/view_extensions.rb
84
- - loaf.gemspec
85
- - spec/integration/breadcrumb_trail_spec.rb
86
- - spec/integration/configuration_spec.rb
87
- - spec/rails_app/Rakefile
88
- - spec/rails_app/app/controllers/application_controller.rb
89
- - spec/rails_app/app/controllers/comments_controller.rb
90
- - spec/rails_app/app/controllers/home_controller.rb
91
- - spec/rails_app/app/controllers/posts_controller.rb
92
- - spec/rails_app/app/views/comments/index.html.erb
93
- - spec/rails_app/app/views/home/index.html.erb
94
- - spec/rails_app/app/views/layouts/_breadcrumbs.html.erb
95
- - spec/rails_app/app/views/layouts/application.html.erb
96
- - spec/rails_app/app/views/posts/index.html.erb
97
- - spec/rails_app/app/views/posts/new.html.erb
98
- - spec/rails_app/app/views/posts/show.html.erb
99
- - spec/rails_app/config.ru
100
- - spec/rails_app/config/application.rb
101
- - spec/rails_app/config/boot.rb
102
- - spec/rails_app/config/database.yml
103
- - spec/rails_app/config/environment.rb
104
- - spec/rails_app/config/environments/development.rb
105
- - spec/rails_app/config/environments/production.rb
106
- - spec/rails_app/config/environments/test.rb
107
- - spec/rails_app/config/initializers/backtrace_silencers.rb
108
- - spec/rails_app/config/initializers/inflections.rb
109
- - spec/rails_app/config/initializers/mime_types.rb
110
- - spec/rails_app/config/initializers/secret_token.rb
111
- - spec/rails_app/config/initializers/session_store.rb
112
- - spec/rails_app/config/initializers/wrap_parameters.rb
113
- - spec/rails_app/config/locales/en.yml
114
- - spec/rails_app/config/locales/loaf.en.yml
115
- - spec/rails_app/config/routes.rb
116
- - spec/rails_app/config/secrets.yml
117
- - spec/rails_app/db/seeds.rb
118
- - spec/rails_app/public/404.html
119
- - spec/rails_app/public/422.html
120
- - spec/rails_app/public/500.html
121
- - spec/rails_app/public/favicon.ico
122
- - spec/rails_app/public/robots.txt
123
- - spec/spec_helper.rb
124
- - spec/support/capybara.rb
125
- - spec/support/dummy_controller.rb
126
- - spec/support/dummy_view.rb
127
- - spec/support/load_routes.rb
128
- - spec/unit/configuration_spec.rb
129
- - spec/unit/controller_extensions_spec.rb
130
- - spec/unit/crumb_spec.rb
131
- - spec/unit/generators/install_generator_spec.rb
132
- - spec/unit/options_validator_spec.rb
133
- - spec/unit/translation_spec.rb
134
- - spec/unit/view_extensions/breadcrumb_spec.rb
135
- - spec/unit/view_extensions/breadcrumb_trail_spec.rb
136
- - spec/unit/view_extensions/has_breadcrumbs_spec.rb
137
- - tasks/console.rake
138
- - tasks/coverage.rake
139
- - tasks/spec.rake
140
81
  homepage: https://github.com/piotrmurach/loaf
141
- licenses: []
82
+ licenses:
83
+ - MIT
142
84
  metadata:
143
85
  allowed_push_host: https://rubygems.org
144
86
  bug_tracker_uri: https://github.com/piotrmurach/loaf/issues
145
- source_code_uri: https://github.com/piotrmurach/loaf
146
87
  changelog_uri: https://github.com/piotrmurach/loaf/blob/master/CHANGELOG.md
88
+ documentation_uri: https://www.rubydoc.info/gems/loaf
89
+ homepage_uri: https://github.com/piotrmurach/loaf
90
+ source_code_uri: https://github.com/piotrmurach/loaf
147
91
  post_install_message:
148
92
  rdoc_options: []
149
93
  require_paths:
@@ -152,15 +96,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
96
  requirements:
153
97
  - - ">="
154
98
  - !ruby/object:Gem::Version
155
- version: '0'
99
+ version: 1.9.3
156
100
  required_rubygems_version: !ruby/object:Gem::Requirement
157
101
  requirements:
158
102
  - - ">="
159
103
  - !ruby/object:Gem::Version
160
104
  version: '0'
161
105
  requirements: []
162
- rubyforge_project:
163
- rubygems_version: 2.7.3
106
+ rubygems_version: 3.1.2
164
107
  signing_key:
165
108
  specification_version: 4
166
109
  summary: Loaf manages and displays breadcrumb trails in your Rails application.
data/Appraisals DELETED
@@ -1,31 +0,0 @@
1
- appraise 'rails3.2' do
2
- gem 'rails', '~> 3.2.22.5'
3
- gem 'test-unit', '~> 3.0'
4
- end
5
-
6
- appraise 'rails4.0' do
7
- gem 'rails', '~> 4.0.13'
8
- gem 'test-unit'
9
- end
10
-
11
- appraise 'rails4.1' do
12
- gem 'rails', '~> 4.1.16'
13
- end
14
-
15
- appraise 'rails4.2' do
16
- gem 'rails', '~> 4.2.10'
17
- end
18
-
19
- appraise 'rails5.0' do
20
- gem 'rails', '~> 5.0.7'
21
- gem 'activerecord-jdbcsqlite3-adapter', '~> 50.1', platforms: :jruby
22
- end
23
-
24
- appraise 'rails5.1' do
25
- gem 'rails', '~> 5.1.6'
26
- gem 'activerecord-jdbcsqlite3-adapter', '~> 51.1', platforms: :jruby
27
- end
28
-
29
- appraise 'rails5.2' do
30
- gem 'rails', '~> 5.2.0'
31
- end
data/Rakefile DELETED
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler/setup'
5
- require 'bundler/gem_tasks'
6
-
7
- desc "Default: run loaf unit & integration tests."
8
- task default: :spec
9
-
10
- FileList['tasks/**/*.rake'].each(&method(:import))
11
-
12
- desc 'Run all specs'
13
- task ci: %w[ spec ]
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "loaf"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -euo pipefail
4
- IFS=$'\n\t'
5
- set -vx
6
-
7
- # Install gems required by Appraisal
8
- bundle install
9
- bundle exec appraisal install
@@ -1,35 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'loaf/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'loaf'
8
- spec.version = Loaf::VERSION.dup
9
- spec.authors = ['Piotr Murach']
10
- spec.email = [""]
11
- spec.homepage = 'https://github.com/piotrmurach/loaf'
12
- spec.summary = %q{Loaf manages and displays breadcrumb trails in your Rails application.}
13
- spec.description = %q{Loaf manages and displays breadcrumb trails in your Rails app. It aims to handle breadcrumb data through easy dsl and expose it through view helpers without any assumptions about markup.}
14
-
15
- spec.files = Dir['{lib,spec,config}/**/*'].reject { |f|
16
- File.directory?(f) || f.include?('.sqlite3') || f.include?('.log')
17
- }
18
- spec.files += Dir['{bin,tasks}/*', 'loaf.gemspec']
19
- spec.files += Dir['README.md', 'CHANGELOG.md', 'LICENSE.txt', 'Rakefile', 'Appraisals']
20
- spec.require_paths = ["lib"]
21
-
22
- if spec.respond_to?(:metadata=)
23
- spec.metadata = {
24
- 'allowed_push_host' => 'https://rubygems.org',
25
- 'bug_tracker_uri' => 'https://github.com/piotrmurach/loaf/issues',
26
- 'source_code_uri' => 'https://github.com/piotrmurach/loaf',
27
- 'changelog_uri' => 'https://github.com/piotrmurach/loaf/blob/master/CHANGELOG.md'
28
- }
29
- end
30
-
31
- spec.add_dependency 'rails', '>= 3.2'
32
-
33
- spec.add_development_dependency 'bundler', '>= 1.5'
34
- spec.add_development_dependency 'rake'
35
- end
@@ -1,71 +0,0 @@
1
- # encoding: utf-8
2
-
3
- RSpec.describe "breadcrumbs trail" do
4
- include ActionView::TestCase::Behavior
5
-
6
- it "shows root breadcrumb" do
7
- visit root_path
8
-
9
- within '#breadcrumbs .selected' do
10
- expect(page.html).to include('<a href="/">Home</a>')
11
- end
12
- end
13
-
14
- it "inherits controller breadcrumb and adds index action breadcrumb" do
15
- visit posts_path
16
-
17
- within '#breadcrumbs' do
18
- expect(page.html).to include('<a href="/">Home</a>')
19
- within '.selected' do
20
- expect(page.html).to include('<a href="/posts">All Posts</a>')
21
- end
22
- end
23
- end
24
-
25
- it 'filters out controller breadcrumb and adds new action breadcrumb' do
26
- visit new_post_path
27
-
28
- within '#breadcrumbs' do
29
- expect(page).to_not have_content('Home')
30
- expect(page).to have_content('New Post')
31
- end
32
- end
33
-
34
- it "adds breadcrumb in view with path variable" do
35
- visit post_path(1)
36
-
37
- within '#breadcrumbs .selected' do
38
- expect(page.html).to include('<a href="/posts/1">Show Post in view</a>')
39
- end
40
- end
41
-
42
- it 'is current when forced' do
43
- visit new_post_path
44
-
45
- expect(page.current_path).to eq(new_post_path)
46
- within '#breadcrumbs' do
47
- expect(page).to have_selector('li.selected', count: 2)
48
- expect(page.html).to include('<a href="/posts">All</a>')
49
- expect(page.html).to include('<a href="/posts/new">New Post</a>')
50
- end
51
- end
52
-
53
- it "allows for procs in name and url" do
54
- visit post_comments_path(1)
55
-
56
- within '#breadcrumbs .selected' do
57
- expect(page.html).to include('<a href="/posts/1/comments">Post comments</a>')
58
- end
59
- end
60
-
61
- it "allows for procs in name and url without supplying the controller" do
62
- visit post_comments_path(1)
63
-
64
- within "#breadcrumbs .selected" do
65
- expect(page.html).to include(
66
- '<a href="/posts/1/comments?no_controller=true">'\
67
- "Post comments No Controller</a>"
68
- )
69
- end
70
- end
71
- end
@@ -1,12 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe 'setting configuration options' do
6
- it "contains 'selected' inside the breadcrumb markup" do
7
- visit posts_path
8
- within '#breadcrumbs' do
9
- expect(page).to have_selector('.selected')
10
- end
11
- end
12
- end
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env rake
2
- # Add your own tasks in files placed in lib/tasks ending in .rake,
3
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
-
5
- require File.expand_path('../config/application', __FILE__)
6
- require 'rake'
7
-
8
- RailsApp::Application.load_tasks
@@ -1,5 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- protect_from_forgery
3
-
4
- breadcrumb 'Home', :root_path, only: :index
5
- end
@@ -1,20 +0,0 @@
1
- class Article < Struct.new(:id, :title); end
2
-
3
- class CommentsController < ApplicationController
4
-
5
- breadcrumb lambda { |c| c.find_article(c.params[:post_id]).title },
6
- lambda { |c| c.post_comments_path(c.params[:post_id]) }
7
-
8
- breadcrumb -> { find_article(params[:post_id]).title + " No Controller" },
9
- -> { post_comments_path(params[:post_id], no_controller: true) }
10
-
11
- def index
12
- end
13
-
14
- def show
15
- end
16
-
17
- def find_article(id)
18
- ::Article.new(id, 'Post comments')
19
- end
20
- end