flutie 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.rubocop.yml +9 -0
  4. data/.travis.yml +10 -6
  5. data/Appraisals +3 -3
  6. data/CHANGELOG.md +34 -0
  7. data/CONTRIBUTING.md +24 -26
  8. data/Gemfile +1 -1
  9. data/Gemfile.lock +76 -62
  10. data/README.md +83 -41
  11. data/Rakefile +2 -2
  12. data/flutie.gemspec +38 -15
  13. data/lib/flutie.rb +1 -0
  14. data/lib/flutie/body_class.rb +43 -0
  15. data/lib/flutie/body_class_helper.rb +8 -8
  16. data/lib/flutie/page_title.rb +32 -0
  17. data/lib/flutie/page_title_helper.rb +8 -8
  18. data/lib/flutie/page_title_presenter.rb +32 -0
  19. data/lib/flutie/railtie.rb +8 -4
  20. data/lib/flutie/version.rb +1 -1
  21. metadata +53 -119
  22. data/gemfiles/rails_3.0.20.gemfile +0 -7
  23. data/gemfiles/rails_3.1.11.gemfile +0 -7
  24. data/gemfiles/rails_3.2.12.gemfile +0 -7
  25. data/spec/dummy/Rakefile +0 -7
  26. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  27. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  28. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  29. data/spec/dummy/config.ru +0 -4
  30. data/spec/dummy/config/application.rb +0 -45
  31. data/spec/dummy/config/boot.rb +0 -10
  32. data/spec/dummy/config/database.yml +0 -11
  33. data/spec/dummy/config/environment.rb +0 -5
  34. data/spec/dummy/config/environments/development.rb +0 -26
  35. data/spec/dummy/config/environments/production.rb +0 -49
  36. data/spec/dummy/config/environments/test.rb +0 -35
  37. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  38. data/spec/dummy/config/initializers/inflections.rb +0 -10
  39. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  40. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  41. data/spec/dummy/config/initializers/session_store.rb +0 -8
  42. data/spec/dummy/config/locales/en.yml +0 -5
  43. data/spec/dummy/config/routes.rb +0 -58
  44. data/spec/dummy/public/404.html +0 -26
  45. data/spec/dummy/public/422.html +0 -26
  46. data/spec/dummy/public/500.html +0 -26
  47. data/spec/dummy/public/favicon.ico +0 -0
  48. data/spec/dummy/public/javascripts/application.js +0 -2
  49. data/spec/dummy/public/javascripts/controls.js +0 -965
  50. data/spec/dummy/public/javascripts/dragdrop.js +0 -974
  51. data/spec/dummy/public/javascripts/effects.js +0 -1123
  52. data/spec/dummy/public/javascripts/prototype.js +0 -6001
  53. data/spec/dummy/public/javascripts/rails.js +0 -191
  54. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  55. data/spec/dummy/script/rails +0 -6
  56. data/spec/helpers/body_class_helper_spec.rb +0 -43
  57. data/spec/helpers/page_title_helper_spec.rb +0 -27
  58. data/spec/spec_helper.rb +0 -30
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'appraisal'
5
5
  require 'rspec/core/rake_task'
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- task :default do |t|
8
+ task :default do |_task|
9
9
  if ENV['BUNDLE_GEMFILE'] =~ /gemfiles/
10
10
  exec 'rake spec'
11
11
  else
@@ -13,6 +13,6 @@ task :default do |t|
13
13
  end
14
14
  end
15
15
 
16
- task :appraise => ['appraisal:install'] do |t|
16
+ task appraise: ['appraisal:install'] do |_task|
17
17
  exec 'rake appraisal'
18
18
  end
@@ -1,22 +1,45 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "flutie/version"
1
+ $LOAD_PATH << File.expand_path('lib', __dir__)
2
+ require 'flutie/version'
4
3
 
5
4
  Gem::Specification.new do |s|
6
- s.name = 'flutie'
7
- s.version = Flutie::VERSION.dup
8
- s.authors = ['Matt Jankowski', 'Chad Pytel', 'Kevin Burg', 'Chad Mazzola', 'Phil LaPier', 'Dan Croak', 'Fred Yates', 'OZAWA Sakuro', 'Mike Burns', 'Greg Sterndale', 'Joe Ferris', 'J. Edward Dewyea', 'Emilien Taque', 'Aaron Suggs', 'Nick Quaranto']
9
- s.email = ['support@thoughtbot.com']
10
- s.homepage = 'http://github.com/thoughtbot/flutie'
11
- s.summary = 'Flutie provides extra Rails view helpers'
5
+ s.name = 'flutie'
6
+ s.version = Flutie::VERSION.dup
7
+ s.licenses = ['MIT']
8
+ s.authors = <<-AUTHORS.split("\n")
9
+ Aaron Suggs
10
+ Caleb Thompson
11
+ Chad Mazzola
12
+ Chad Pytel
13
+ Dan Croak
14
+ Edwin Morris
15
+ Emilien Taque
16
+ Fred Yates
17
+ Gabe Berke-Williams
18
+ Galen Frechette
19
+ Greg Sterndale
20
+ J. Edward Dewyea
21
+ Joe Ferris
22
+ Kevin Burg
23
+ Matt Jankowski
24
+ Matthew Burket
25
+ Mike Burns
26
+ Nick Quaranto
27
+ OZAWA Sakuro
28
+ Phil LaPier
29
+ Tom Crinson
30
+ AUTHORS
31
+
32
+ s.email = ['support@thoughtbot.com']
33
+ s.homepage = 'http://github.com/thoughtbot/flutie'
34
+ s.summary = 'Flutie provides extra Rails view helpers'
12
35
  s.description = 'Flutie is a starting point for personal discovery'
13
36
 
14
- s.files = `git ls-files`.split("\n")
15
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
37
+ s.files = `git ls-files -z`
38
+ .split("\x0")
39
+ .reject { |f| f =~ %r{^(spec|gemfiles|bin)/} }
17
40
  s.require_paths = ['lib']
18
41
 
19
- s.add_development_dependency('appraisal')
20
- s.add_development_dependency('sqlite3')
21
- s.add_development_dependency('rspec-rails')
42
+ s.add_development_dependency('appraisal', '~> 2.2')
43
+ s.add_development_dependency('rspec-rails', '~> 3.7')
44
+ s.add_development_dependency('sqlite3', '~> 1.3')
22
45
  end
@@ -1,5 +1,6 @@
1
1
  require 'flutie/version'
2
2
 
3
+ # :nodoc:
3
4
  module Flutie
4
5
  require 'flutie/railtie' if defined?(Rails)
5
6
  end
@@ -0,0 +1,43 @@
1
+ # :nodoc:
2
+ module Flutie
3
+ # :nodoc:
4
+ class BodyClass
5
+ DEFAULT_EXTRA_CLASS_SYMBOL = :extra_body_classes
6
+ attr_reader :options, :controller
7
+
8
+ def initialize(options, controller)
9
+ @options = options
10
+ @controller = controller
11
+ end
12
+
13
+ def basic_body_class
14
+ [controller_part, action_part].join(' ')
15
+ end
16
+
17
+ def extra_body_classes_symbol
18
+ options[:extra_body_classes_symbol] || DEFAULT_EXTRA_CLASS_SYMBOL
19
+ end
20
+
21
+ private
22
+
23
+ def controller_part
24
+ qualified_controller_name
25
+ end
26
+
27
+ def action_part
28
+ [qualified_controller_name, action_name].join('-')
29
+ end
30
+
31
+ def qualified_controller_name
32
+ controller_path.tr('/', '-')
33
+ end
34
+
35
+ def action_name
36
+ controller.action_name
37
+ end
38
+
39
+ def controller_path
40
+ controller.controller_path
41
+ end
42
+ end
43
+ end
@@ -1,13 +1,13 @@
1
+ # :nodoc:
1
2
  module BodyClassHelper
2
3
  def body_class(options = {})
3
- extra_body_classes_symbol = options[:extra_body_classes_symbol] || :extra_body_classes
4
- qualified_controller_name = controller.controller_path.gsub('/','-')
5
- basic_body_class = "#{qualified_controller_name} #{qualified_controller_name}-#{controller.action_name}"
4
+ body_class = Flutie::BodyClass.new(options, controller)
6
5
 
7
- if content_for?(extra_body_classes_symbol)
8
- [basic_body_class, content_for(extra_body_classes_symbol)].join(' ')
9
- else
10
- basic_body_class
11
- end
6
+ [
7
+ body_class.basic_body_class,
8
+ content_for(body_class.extra_body_classes_symbol)
9
+ ]
10
+ .compact
11
+ .join(' ')
12
12
  end
13
13
  end
@@ -0,0 +1,32 @@
1
+ # :nodoc:
2
+ module Flutie
3
+ # :nodoc:
4
+ class PageTitle
5
+ DEFAULT_PAGE_TITLE_SYMBOL = :page_title
6
+ DEFAULT_SEPARATOR = ' : '.freeze
7
+
8
+ attr_reader :options
9
+
10
+ def initialize(options)
11
+ @options = options
12
+ end
13
+
14
+ def app_name
15
+ options[:app_name] || rails_app_name
16
+ end
17
+
18
+ def page_title_symbol
19
+ options[:page_title_symbol] || DEFAULT_PAGE_TITLE_SYMBOL
20
+ end
21
+
22
+ def separator
23
+ options[:separator] || DEFAULT_SEPARATOR
24
+ end
25
+
26
+ private
27
+
28
+ def rails_app_name
29
+ Rails.application.class.to_s.split('::').first
30
+ end
31
+ end
32
+ end
@@ -1,13 +1,13 @@
1
+ # :nodoc:
1
2
  module PageTitleHelper
2
3
  def page_title(options = {})
3
- app_name = options[:app_name] || Rails.application.class.to_s.split('::').first
4
- page_title_symbol = options[:page_title_symbol] || :page_title
5
- separator = options[:separator] || ' : '
4
+ page_title = Flutie::PageTitle.new(options)
6
5
 
7
- if content_for?(page_title_symbol)
8
- [app_name, content_for(page_title_symbol)].join(separator)
9
- else
10
- app_name
11
- end
6
+ Flutie::PageTitlePresenter.new(
7
+ page_title.app_name,
8
+ content_for(page_title.page_title_symbol),
9
+ page_title.separator,
10
+ options[:reverse]
11
+ ).to_s
12
12
  end
13
13
  end
@@ -0,0 +1,32 @@
1
+ # :nodoc:
2
+ module Flutie
3
+ # :nodoc:
4
+ class PageTitlePresenter
5
+ attr_reader :app_name, :content, :separator, :reversed
6
+
7
+ def initialize(app_name, content, separator, reversed = false)
8
+ @app_name = app_name
9
+ @content = content
10
+ @separator = separator
11
+ @reversed = reversed
12
+ end
13
+
14
+ def to_s
15
+ ordered_parts.compact.join(separator)
16
+ end
17
+
18
+ def ordered_parts
19
+ if reversed_order?
20
+ [content, app_name]
21
+ else
22
+ [app_name, content]
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def reversed_order?
29
+ @reversed
30
+ end
31
+ end
32
+ end
@@ -1,15 +1,19 @@
1
+ require 'flutie/body_class'
1
2
  require 'flutie/body_class_helper'
3
+ require 'flutie/page_title'
4
+ require 'flutie/page_title_presenter'
2
5
  require 'flutie/page_title_helper'
3
6
 
7
+ # :nodoc:
4
8
  module Flutie
5
-
9
+ # :nodoc:
6
10
  class Railtie < Rails::Railtie
7
- initializer 'page_title.helper' do |app|
11
+ initializer 'page_title.helper' do |_app|
8
12
  ActionView::Base.send :include, PageTitleHelper
9
13
  end
10
- initializer 'body_class.helper' do |app|
14
+
15
+ initializer 'body_class.helper' do |_app|
11
16
  ActionView::Base.send :include, BodyClassHelper
12
17
  end
13
18
  end
14
-
15
19
  end
@@ -1,3 +1,3 @@
1
1
  module Flutie
2
- VERSION = '2.0.0'.freeze
2
+ VERSION = '2.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,78 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flutie
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
5
- prerelease:
4
+ version: 2.1.0
6
5
  platform: ruby
7
6
  authors:
8
- - Matt Jankowski
9
- - Chad Pytel
10
- - Kevin Burg
11
- - Chad Mazzola
12
- - Phil LaPier
13
- - Dan Croak
14
- - Fred Yates
15
- - OZAWA Sakuro
16
- - Mike Burns
17
- - Greg Sterndale
18
- - Joe Ferris
19
- - J. Edward Dewyea
20
- - Emilien Taque
21
- - Aaron Suggs
22
- - Nick Quaranto
7
+ - " Aaron Suggs"
8
+ - " Caleb Thompson"
9
+ - " Chad Mazzola"
10
+ - " Chad Pytel"
11
+ - " Dan Croak"
12
+ - " Edwin Morris"
13
+ - " Emilien Taque"
14
+ - " Fred Yates"
15
+ - " Gabe Berke-Williams"
16
+ - " Galen Frechette"
17
+ - " Greg Sterndale"
18
+ - " J. Edward Dewyea"
19
+ - " Joe Ferris"
20
+ - " Kevin Burg"
21
+ - " Matt Jankowski"
22
+ - " Matthew Burket"
23
+ - " Mike Burns"
24
+ - " Nick Quaranto"
25
+ - " OZAWA Sakuro"
26
+ - " Phil LaPier"
27
+ - " Tom Crinson"
23
28
  autorequire:
24
29
  bindir: bin
25
30
  cert_chain: []
26
- date: 2013-02-12 00:00:00.000000000 Z
31
+ date: 2018-09-27 00:00:00.000000000 Z
27
32
  dependencies:
28
33
  - !ruby/object:Gem::Dependency
29
34
  name: appraisal
30
35
  requirement: !ruby/object:Gem::Requirement
31
- none: false
32
36
  requirements:
33
- - - ! '>='
37
+ - - "~>"
34
38
  - !ruby/object:Gem::Version
35
- version: '0'
39
+ version: '2.2'
36
40
  type: :development
37
41
  prerelease: false
38
42
  version_requirements: !ruby/object:Gem::Requirement
39
- none: false
40
43
  requirements:
41
- - - ! '>='
44
+ - - "~>"
42
45
  - !ruby/object:Gem::Version
43
- version: '0'
46
+ version: '2.2'
44
47
  - !ruby/object:Gem::Dependency
45
- name: sqlite3
48
+ name: rspec-rails
46
49
  requirement: !ruby/object:Gem::Requirement
47
- none: false
48
50
  requirements:
49
- - - ! '>='
51
+ - - "~>"
50
52
  - !ruby/object:Gem::Version
51
- version: '0'
53
+ version: '3.7'
52
54
  type: :development
53
55
  prerelease: false
54
56
  version_requirements: !ruby/object:Gem::Requirement
55
- none: false
56
57
  requirements:
57
- - - ! '>='
58
+ - - "~>"
58
59
  - !ruby/object:Gem::Version
59
- version: '0'
60
+ version: '3.7'
60
61
  - !ruby/object:Gem::Dependency
61
- name: rspec-rails
62
+ name: sqlite3
62
63
  requirement: !ruby/object:Gem::Requirement
63
- none: false
64
64
  requirements:
65
- - - ! '>='
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
67
+ version: '1.3'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
- none: false
72
71
  requirements:
73
- - - ! '>='
72
+ - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: '0'
74
+ version: '1.3'
76
75
  description: Flutie is a starting point for personal discovery
77
76
  email:
78
77
  - support@thoughtbot.com
@@ -80,9 +79,12 @@ executables: []
80
79
  extensions: []
81
80
  extra_rdoc_files: []
82
81
  files:
83
- - .gitignore
84
- - .travis.yml
82
+ - ".gitignore"
83
+ - ".rspec"
84
+ - ".rubocop.yml"
85
+ - ".travis.yml"
85
86
  - Appraisals
87
+ - CHANGELOG.md
86
88
  - CONTRIBUTING.md
87
89
  - Gemfile
88
90
  - Gemfile.lock
@@ -90,104 +92,36 @@ files:
90
92
  - README.md
91
93
  - Rakefile
92
94
  - flutie.gemspec
93
- - gemfiles/rails_3.0.20.gemfile
94
- - gemfiles/rails_3.1.11.gemfile
95
- - gemfiles/rails_3.2.12.gemfile
96
95
  - lib/flutie.rb
96
+ - lib/flutie/body_class.rb
97
97
  - lib/flutie/body_class_helper.rb
98
+ - lib/flutie/page_title.rb
98
99
  - lib/flutie/page_title_helper.rb
100
+ - lib/flutie/page_title_presenter.rb
99
101
  - lib/flutie/railtie.rb
100
102
  - lib/flutie/version.rb
101
- - spec/dummy/Rakefile
102
- - spec/dummy/app/controllers/application_controller.rb
103
- - spec/dummy/app/helpers/application_helper.rb
104
- - spec/dummy/app/views/layouts/application.html.erb
105
- - spec/dummy/config.ru
106
- - spec/dummy/config/application.rb
107
- - spec/dummy/config/boot.rb
108
- - spec/dummy/config/database.yml
109
- - spec/dummy/config/environment.rb
110
- - spec/dummy/config/environments/development.rb
111
- - spec/dummy/config/environments/production.rb
112
- - spec/dummy/config/environments/test.rb
113
- - spec/dummy/config/initializers/backtrace_silencers.rb
114
- - spec/dummy/config/initializers/inflections.rb
115
- - spec/dummy/config/initializers/mime_types.rb
116
- - spec/dummy/config/initializers/secret_token.rb
117
- - spec/dummy/config/initializers/session_store.rb
118
- - spec/dummy/config/locales/en.yml
119
- - spec/dummy/config/routes.rb
120
- - spec/dummy/public/404.html
121
- - spec/dummy/public/422.html
122
- - spec/dummy/public/500.html
123
- - spec/dummy/public/favicon.ico
124
- - spec/dummy/public/javascripts/application.js
125
- - spec/dummy/public/javascripts/controls.js
126
- - spec/dummy/public/javascripts/dragdrop.js
127
- - spec/dummy/public/javascripts/effects.js
128
- - spec/dummy/public/javascripts/prototype.js
129
- - spec/dummy/public/javascripts/rails.js
130
- - spec/dummy/public/stylesheets/.gitkeep
131
- - spec/dummy/script/rails
132
- - spec/helpers/body_class_helper_spec.rb
133
- - spec/helpers/page_title_helper_spec.rb
134
- - spec/spec_helper.rb
135
103
  homepage: http://github.com/thoughtbot/flutie
136
- licenses: []
104
+ licenses:
105
+ - MIT
106
+ metadata: {}
137
107
  post_install_message:
138
108
  rdoc_options: []
139
109
  require_paths:
140
110
  - lib
141
111
  required_ruby_version: !ruby/object:Gem::Requirement
142
- none: false
143
112
  requirements:
144
- - - ! '>='
113
+ - - ">="
145
114
  - !ruby/object:Gem::Version
146
115
  version: '0'
147
116
  required_rubygems_version: !ruby/object:Gem::Requirement
148
- none: false
149
117
  requirements:
150
- - - ! '>='
118
+ - - ">="
151
119
  - !ruby/object:Gem::Version
152
120
  version: '0'
153
121
  requirements: []
154
122
  rubyforge_project:
155
- rubygems_version: 1.8.25
123
+ rubygems_version: 2.7.7
156
124
  signing_key:
157
- specification_version: 3
125
+ specification_version: 4
158
126
  summary: Flutie provides extra Rails view helpers
159
- test_files:
160
- - spec/dummy/Rakefile
161
- - spec/dummy/app/controllers/application_controller.rb
162
- - spec/dummy/app/helpers/application_helper.rb
163
- - spec/dummy/app/views/layouts/application.html.erb
164
- - spec/dummy/config.ru
165
- - spec/dummy/config/application.rb
166
- - spec/dummy/config/boot.rb
167
- - spec/dummy/config/database.yml
168
- - spec/dummy/config/environment.rb
169
- - spec/dummy/config/environments/development.rb
170
- - spec/dummy/config/environments/production.rb
171
- - spec/dummy/config/environments/test.rb
172
- - spec/dummy/config/initializers/backtrace_silencers.rb
173
- - spec/dummy/config/initializers/inflections.rb
174
- - spec/dummy/config/initializers/mime_types.rb
175
- - spec/dummy/config/initializers/secret_token.rb
176
- - spec/dummy/config/initializers/session_store.rb
177
- - spec/dummy/config/locales/en.yml
178
- - spec/dummy/config/routes.rb
179
- - spec/dummy/public/404.html
180
- - spec/dummy/public/422.html
181
- - spec/dummy/public/500.html
182
- - spec/dummy/public/favicon.ico
183
- - spec/dummy/public/javascripts/application.js
184
- - spec/dummy/public/javascripts/controls.js
185
- - spec/dummy/public/javascripts/dragdrop.js
186
- - spec/dummy/public/javascripts/effects.js
187
- - spec/dummy/public/javascripts/prototype.js
188
- - spec/dummy/public/javascripts/rails.js
189
- - spec/dummy/public/stylesheets/.gitkeep
190
- - spec/dummy/script/rails
191
- - spec/helpers/body_class_helper_spec.rb
192
- - spec/helpers/page_title_helper_spec.rb
193
- - spec/spec_helper.rb
127
+ test_files: []