flowmor_router 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ class RoutableRecordsTest < ActionDispatch::IntegrationTest
4
4
  test "/general/lets-test-this" do
5
5
  post = Post.create(title: "Let's Test This")
6
6
  assert_equal post.name, 'lets-test-this'
7
- assert_equal "/general/lets-test-this", post.path
7
+ assert_equal "/by_category/posts/general/lets-test-this", post.path
8
8
  get post.path
9
9
  assert_response :success
10
10
  assert_select "h1", "Let's Test This"
@@ -13,6 +13,7 @@ class RoutableRecordsTest < ActionDispatch::IntegrationTest
13
13
  test "only routable routes built" do
14
14
  a1 = Article.create(title: "Route This", published: true)
15
15
  a2 = Article.create(title: "Ignore This", published: false)
16
+ Rails.logger.info "\nROUTES: #{Rails.application.routes.routes.collect {|r| r.name }.inspect}"
16
17
  get a1.path
17
18
  assert_response :success
18
19
  assert_raise FlowmorRouter::UnroutedRecord do
@@ -1,22 +1,26 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ArticleTest < ActiveSupport::TestCase
4
- test "article#controller_action" do
5
- assert Article.new.controller_action, "article#show"
4
+ setup do
5
+ @article = Article.create(title: "Dummy Article", published: true)
6
6
  end
7
7
 
8
- test "article#route_name" do
9
- assert Article.new(title: "Dummy Article").route_name, 'articles_dummy_article'
8
+ test "article#flowmor_article_articles_router_class is a RouterClasses class" do
9
+ assert @article.flowmor_articles_router_class.is_a?(FlowmorRouter::RouterClasses)
10
10
  end
11
-
12
- test "article#route_name_prefix" do
13
- assert Article.new(title: "Dummy Article").route_name_prefix, 'article'
11
+
12
+ test "RouterClasses has Article registered" do
13
+ assert FlowmorRouter::RouterClasses.router_classes.map(&:model).include? Article
14
14
  end
15
15
 
16
- test "article#derived_name_field_value" do
17
- assert Article.new(title: "Dummy Article").derived_name_field_value, 'dummy-article'
16
+ test "article#route_name" do
17
+ assert_equal 'articles_dummy_article', @article.route_name
18
18
  end
19
19
 
20
+ test "article#controller_action" do
21
+ assert Article.new.flowmor_articles_router_class.controller_action, "article#show"
22
+ end
23
+
20
24
  test "unpublished articles not routed" do
21
25
  published = Article.create(title: "Published", published: true)
22
26
  unpublished = Article.create(title: "Unpublished", published: false)
@@ -32,11 +36,8 @@ class ArticleTest < ActiveSupport::TestCase
32
36
  assert_raise FlowmorRouter::UnroutableRecord do
33
37
  Article.new(title: nil).path
34
38
  end
35
- assert_raise FlowmorRouter::UnroutableRecord do
36
- Article.create(title: nil).path
37
- end
38
- assert_raise FlowmorRouter::UnroutedRecord do
39
- assert Article.create(title: "Dummy Article").path, '/articles/dummy-article'
40
- end
39
+ titleless_article = Article.create(title: nil, published: true)
40
+ assert_equal "/articles/#{titleless_article.id}", titleless_article.path
41
+ assert Article.create(title: "Another Article", published: true).path, '/articles/another-article'
41
42
  end
42
43
  end
@@ -1,34 +1,14 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class NewsArticleTest < ActiveSupport::TestCase
4
- test "news_article#controller_action" do
5
- assert_equal "news_article#show", NewsArticle.new.controller_action
6
- end
7
-
8
4
  test "news_article#route_name" do
9
5
  assert_equal 'news_articles_dummy_news_article', NewsArticle.new(caption: "Dummy News Article").route_name
10
6
  end
11
7
 
12
- test "news_article#route_name_prefix" do
13
- assert_equal 'news_articles', NewsArticle.new(caption: "Dummy News Article").route_name_prefix
14
- end
15
-
16
- test "news_article#derived_name_field_value" do
17
- assert_equal 'Dummy News Article', NewsArticle.new(caption: "Dummy News Article").derived_name_field_value
8
+ test "NewsArticle controller_action" do
9
+ assert_equal 'news_article#show', NewsArticle.flowmor_news_articles_router_class.controller_action
18
10
  end
19
-
20
- test "news_article#new_name_value" do
21
- assert_equal 'dummy-news-article', NewsArticle.new(caption: "Dummy News Article").new_name_value
22
- end
23
-
24
- test "news_article#slug" do
25
- assert_equal 'dummy-news-article', NewsArticle.create(caption: "Dummy News Article").slug
26
- end
27
-
28
- test "NewsArticle#route_model" do
29
- assert_equal 'news_article', NewsArticle.route_model
30
- end
31
-
11
+
32
12
  test "news_article#path" do
33
13
  assert_raise FlowmorRouter::UnroutableRecord do
34
14
  NewsArticle.new(caption: nil).path
@@ -36,7 +16,9 @@ class NewsArticleTest < ActiveSupport::TestCase
36
16
  assert_raise FlowmorRouter::UnroutableRecord do
37
17
  NewsArticle.create(caption: nil).path
38
18
  end
39
- assert_equal '/news-articles/dummy-news-article', NewsArticle.create(caption: "Dummy News Article").path
19
+ real_article = NewsArticle.create(caption: "Real News Article")
20
+ assert_equal '/news_articles/real-news-article', Rails.application.routes.url_helpers.news_articles_real_news_article_path
21
+ assert_equal '/news_articles/real-news-article', real_article.path
40
22
  end
41
23
 
42
24
  test "news_article#url" do
@@ -46,5 +28,10 @@ class NewsArticleTest < ActiveSupport::TestCase
46
28
  assert_raise FlowmorRouter::UnroutableRecord do
47
29
  NewsArticle.create(caption: nil).url
48
30
  end
31
+
32
+ real_article = NewsArticle.create(caption: "Real News Article")
33
+ Thread.current[:host] = "localhost"
34
+ Thread.current[:port] = "3000"
35
+ assert_equal 'http://localhost:3000/news_articles/real-news-article', real_article.url
49
36
  end
50
37
  end
@@ -1,30 +1,14 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class PostCategoryCategoryTest < ActiveSupport::TestCase
4
- test "post_category#controller_action" do
5
- assert_equal "blog#category", PostCategory.new.controller_action
6
- end
7
-
8
4
  test "post_category#route_name" do
9
- assert_equal 'categories_general', PostCategory.new(title: "General").route_name
5
+ assert_equal 'category_general', PostCategory.new(name: "general").route_name
10
6
  end
11
7
 
12
- test "post_category#route_name_prefix" do
13
- assert_equal 'categories', PostCategory.new(title: "General").route_name_prefix
8
+ test "PostCategory controller_action" do
9
+ assert_equal 'blog#category', PostCategory.flowmor_category_router_class.controller_action
14
10
  end
15
11
 
16
- test "post_category#derived_name_field_value" do
17
- assert_equal 'General', PostCategory.new(title: "General").derived_name_field_value
18
- end
19
-
20
- test "post_category#new_name_value" do
21
- assert_equal 'general', PostCategory.new(title: "General").new_name_value
22
- end
23
-
24
- test "PostCategory#route_model" do
25
- assert_equal 'category', PostCategory.route_model
26
- end
27
-
28
12
  test "post_category#path" do
29
13
  assert_raise FlowmorRouter::UnroutableRecord do
30
14
  PostCategory.new(title: nil).path
@@ -32,15 +16,6 @@ class PostCategoryCategoryTest < ActiveSupport::TestCase
32
16
  assert_raise FlowmorRouter::UnroutableRecord do
33
17
  PostCategory.create(title: nil).path
34
18
  end
35
- assert_equal '/categories/general', PostCategory.create(title: "General").path
36
- end
37
-
38
- test "post_category#url" do
39
- assert_raise FlowmorRouter::UnroutableRecord do
40
- PostCategory.new(title: nil).url
41
- end
42
- assert_raise FlowmorRouter::UnroutableRecord do
43
- PostCategory.create(title: nil).url
44
- end
19
+ assert_equal '/category/general', PostCategory.create(title: "General").path
45
20
  end
46
21
  end
@@ -1,54 +1,24 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class PostTest < ActiveSupport::TestCase
4
- test "post#controller_action" do
5
- assert_equal "blog#show", Post.new.controller_action
6
- end
7
-
8
- test "default category is 'general'" do
9
- assert_equal 'general', Post.new.category_name
4
+ setup do
5
+ @category = PostCategory.create(name: "general")
6
+ @post = Post.create(title: "Once Upon a Time")
10
7
  end
11
8
 
12
9
  test "post#route_name" do
13
- assert_equal 'posts_general_dummy_post', Post.new(title: "Dummy Post").route_name
14
- end
15
-
16
- test "post#route_name_prefix" do
17
- assert_equal 'posts_general', Post.new(title: "Dummy Post").route_name_prefix
18
- end
19
-
20
- test "post#derived_name_field_value" do
21
- assert_equal 'Dummy Post', Post.new(title: "Dummy Post").derived_name_field_value
10
+ assert_equal 'by_category_posts_general_once_upon_a_time', @post.route_name
22
11
  end
23
12
 
24
- test "post#new_name_value" do
25
- assert_equal 'dummy-post', Post.new(title: "Dummy Post").new_name_value
26
- end
27
-
28
- test "Post#route_model" do
29
- assert_equal 'post', Post.route_model
30
- end
31
-
32
- test "post#route" do
33
- assert_equal Post.new(title: "Dummy Post", name: "dummy-post").route, '/general/dummy-post'
13
+ test "Post controller_action" do
14
+ assert_equal 'blog#show', Post.flowmor_posts_router_class.controller_action
34
15
  end
35
16
 
36
17
  test "post#path" do
37
- assert_raise FlowmorRouter::UnroutableRecord do
38
- Post.new(title: nil).path
39
- end
40
- assert_raise FlowmorRouter::UnroutableRecord do
41
- Post.create(title: nil).path
42
- end
43
- assert_equal '/general/dummy-post', Post.create(title: "Dummy Post").path
18
+ assert_equal '/by_category/posts/general/once-upon-a-time', @post.path
44
19
  end
45
-
46
- test "post#url" do
47
- assert_raise FlowmorRouter::UnroutableRecord do
48
- Post.new(title: nil).url
49
- end
50
- assert_raise FlowmorRouter::UnroutableRecord do
51
- Post.create(title: nil).url
52
- end
20
+
21
+ test "post#archive_path" do
22
+ assert_equal '/archive/once-upon-a-time', @post.archive_path
53
23
  end
54
24
  end
@@ -0,0 +1,219 @@
1
+ require 'test_helper'
2
+ require 'flowmor_router'
3
+
4
+ # require 'action_dispatch/routing/inspector'
5
+ # Rails.application.routes_reloader.reload!
6
+ # puts "ROUTES: #{Rails.application.routes.routes.collect {|r| r.name }.inspect}"
7
+
8
+ module FlowmorRouter
9
+ class RouterClassesTest < ActiveSupport::TestCase
10
+
11
+ class Foo
12
+ include ActiveModel::AttributeMethods
13
+ define_attribute_methods :title, :slug, :name, :alt_name, :caption, :id
14
+ attr_accessor :title, :slug, :name, :alt_name, :caption, :id
15
+
16
+ @@routable = []
17
+
18
+ class << self
19
+ def after_save *args
20
+ end
21
+ alias :before_save :after_save
22
+ alias :scope :after_save
23
+ end
24
+
25
+ def self.routable
26
+ @@routable
27
+ end
28
+
29
+ def initialize(title, slug)
30
+ @id = 1
31
+ @title = title
32
+ @caption = "#{title} (captioned)"
33
+ @slug = slug
34
+ @name = slug
35
+ @alt_name = "alt-#{slug}"
36
+ self.class.routable << self
37
+ end
38
+
39
+ include FlowmorRouter::ActsAsRoutable
40
+ end
41
+
42
+ test "defined correctly" do
43
+ assert_kind_of Class, FlowmorRouter::RouterClasses
44
+ end
45
+
46
+ test "can register a class" do
47
+ begin
48
+ RouterClasses.register :obj, Object, {}
49
+ assert RouterClasses.router_classes.map(&:model).include?(Object)
50
+ assert RouterClasses.router_classes.map(&:actor).include?("obj")
51
+ ensure
52
+ RouterClasses.unregister Object
53
+ end
54
+ end
55
+
56
+ test "Bar becomes routable" do
57
+ begin
58
+ class Bar < Foo
59
+ acts_as_routable
60
+ end
61
+
62
+ item = Bar.new("FooBar", "foo-bar")
63
+ rc = RouterClasses.router_classes.detect{|d| d.model == Bar}
64
+
65
+ assert_equal Bar, rc.model
66
+ assert_equal "bars", rc.actor
67
+ assert_equal "bar#show", rc.controller_action
68
+ assert_equal "bars", rc.route_base_name
69
+ assert_equal "/bars", rc.route_base_path
70
+ assert_equal "foo-bar", rc.name(item)
71
+ assert_equal "flowmor_bars_routable", rc.scope_name
72
+ assert_equal "/bars/foo-bar", rc.route_path(item)
73
+ assert_equal "path", rc.path_method_name
74
+ assert_equal "url", rc.url_method_name
75
+ assert_equal "bars_foo_bar", rc.route_name(item)
76
+ ensure
77
+ RouterClasses.unregister Bar
78
+ end
79
+ end
80
+
81
+ test "Baz becomes routable with named model" do
82
+ begin
83
+ class Baz < Foo
84
+ acts_as_routable :foobaz,
85
+ prefix: [:foo, :bazs],
86
+ name_field: :alt_name,
87
+ title_field: :caption
88
+ end
89
+
90
+ item = Baz.new("FooBaz", "foo-baz")
91
+ rc = RouterClasses.router_classes.detect{|d| d.model == Baz}
92
+
93
+ assert_equal Baz, rc.model
94
+ assert_equal "foobaz", rc.actor
95
+ assert_equal "foobaz#show", rc.controller_action
96
+ assert_equal [:foo, :bazs], rc.route_prefix(item)
97
+ assert_equal "foobaz", rc.route_base_name
98
+ assert_equal "/foobaz", rc.route_base_path
99
+ assert_equal "alt-foo-baz", rc.name(item)
100
+ assert_equal "flowmor_foobaz_routable", rc.scope_name
101
+ assert_equal "/foo/bazs/foobaz/alt-foo-baz", rc.route_path(item)
102
+ assert_equal "path", rc.path_method_name
103
+ assert_equal "url", rc.url_method_name
104
+ assert_equal "foo_bazs_foobaz_alt_foo_baz", rc.route_name(item)
105
+ ensure
106
+ RouterClasses.unregister Baz
107
+ end
108
+ end
109
+
110
+ test "Bat becomes routable with named model" do
111
+ begin
112
+ class Bat < Foo
113
+ def batty
114
+ "coo_coo-for-coco_puffs"
115
+ end
116
+
117
+ def custom_route
118
+ "/foo/#{batty}"
119
+ end
120
+
121
+ def category
122
+ :crazy
123
+ end
124
+
125
+ acts_as_routable route: :custom_route, prefix: -> { :category }
126
+ end
127
+
128
+ item = Bat.new("FooBar", "foo-bar")
129
+ rc = RouterClasses.router_classes.detect{|d| d.model == Bat}
130
+
131
+ assert_equal Bat, rc.model
132
+ assert_equal "flowmor_bats_routable", rc.scope_name
133
+ assert_equal "bats", rc.actor
134
+ assert_equal "bat#show", rc.controller_action
135
+ assert_equal "bats", rc.route_base_name
136
+ assert_equal "/bats", rc.route_base_path
137
+ assert_equal "foo-bar", rc.name(item)
138
+ assert_equal "/foo/coo_coo-for-coco_puffs", rc.route_path(item)
139
+ assert_equal "path", rc.path_method_name
140
+ assert_equal "url", rc.url_method_name
141
+ assert_equal "crazy_bats_foo_bar", rc.route_name(item)
142
+ assert_equal [:crazy], rc.route_prefix(item)
143
+ ensure
144
+ RouterClasses.unregister Bat
145
+ end
146
+ end
147
+
148
+ test "Down becomes routable with named model" do
149
+ begin
150
+ class Down < Foo
151
+
152
+ acts_as_routable delimiter: "_"
153
+ end
154
+
155
+ item = Down.new("A Serious Downer", nil)
156
+ rc = RouterClasses.router_classes.detect{|d| d.model == Down}
157
+
158
+ assert_equal Down, rc.model
159
+ assert_equal "flowmor_downs_routable", rc.scope_name
160
+ assert_equal "downs", rc.actor
161
+ assert_equal "down#show", rc.controller_action
162
+ assert_equal "downs", rc.route_base_name
163
+ assert_equal "/downs", rc.route_base_path
164
+ assert_equal "a_serious_downer", rc.name(item)
165
+ assert_equal "/downs/a_serious_downer", rc.route_path(item)
166
+ assert_equal "path", rc.path_method_name
167
+ assert_equal "url", rc.url_method_name
168
+ assert_equal "downs_a_serious_downer", rc.route_name(item)
169
+ assert_equal nil, rc.route_prefix(item)
170
+ ensure
171
+ RouterClasses.unregister Down
172
+ end
173
+ end
174
+
175
+ test "Fib becomes routable with named model" do
176
+ begin
177
+ class Fib < Foo
178
+
179
+ def custom_name
180
+ ["so_called", name.parameterize].join("-")
181
+ end
182
+
183
+ acts_as_routable name: :custom_name
184
+ acts_as_routable :archive, controller_action: "fib#archive", name: :custom_name
185
+ end
186
+
187
+ item = Fib.new("FooBar", "foo-bar")
188
+ rc = Fib.flowmor_fibs_router_class
189
+ rca = Fib.flowmor_fibs_archive_router_class
190
+
191
+ assert_equal Fib, rc.model
192
+ assert_equal "fibs", rc.actor
193
+ assert_equal "fib#show", rc.controller_action
194
+ assert_equal "fibs", rc.route_base_name
195
+ assert_equal "/fibs", rc.route_base_path
196
+ assert_equal "so_called-foo-bar", rc.name(item)
197
+ assert_equal "flowmor_fibs_routable", rc.scope_name
198
+ assert_equal "/fibs/so_called-foo-bar", rc.route_path(item)
199
+ assert_equal "path", rc.path_method_name
200
+ assert_equal "url", rc.url_method_name
201
+ assert_equal "fibs_so_called_foo_bar", rc.route_name(item)
202
+
203
+ assert_equal Fib, rca.model
204
+ assert_equal "archive", rca.actor
205
+ assert_equal "fib#archive", rca.controller_action
206
+ assert_equal "fibs_archive", rca.route_base_name
207
+ assert_equal "/archive", rca.route_base_path
208
+ assert_equal "so_called-foo-bar", rca.name(item)
209
+ assert_equal "flowmor_fibs_archive_routable", rca.scope_name
210
+ assert_equal "/archive/so_called-foo-bar", rca.route_path(item)
211
+ assert_equal "archive_path", rca.path_method_name
212
+ assert_equal "archive_url", rca.url_method_name
213
+ assert_equal "fibs_archive_so_called_foo_bar", rca.route_name(item)
214
+ ensure
215
+ RouterClasses.unregister Fib
216
+ end
217
+ end
218
+ end
219
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowmor_router
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Lang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-09 00:00:00.000000000 Z
11
+ date: 2015-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -56,9 +56,12 @@ files:
56
56
  - bin/rails
57
57
  - config/routes.rb
58
58
  - lib/flowmor_router.rb
59
- - lib/flowmor_router/acts_as_flowmor_routable.rb
59
+ - lib/flowmor_router/acts_as_routable.rb
60
60
  - lib/flowmor_router/engine.rb
61
61
  - lib/flowmor_router/exceptions.rb
62
+ - lib/flowmor_router/foo.rb
63
+ - lib/flowmor_router/proxy_foo.rb
64
+ - lib/flowmor_router/router_classes.rb
62
65
  - lib/flowmor_router/version.rb
63
66
  - lib/tasks/flowmor_router_tasks.rake
64
67
  - test/dummy/README.rdoc
@@ -149,6 +152,7 @@ files:
149
152
  - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
150
153
  - test/flowmor_router_test.rb
151
154
  - test/integration/navigation_test.rb
155
+ - test/router_classes_test.rb
152
156
  - test/test_helper.rb
153
157
  homepage: https://github.com/mwlang/flowmor_router
154
158
  licenses:
@@ -263,5 +267,6 @@ test_files:
263
267
  - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
264
268
  - test/flowmor_router_test.rb
265
269
  - test/integration/navigation_test.rb
270
+ - test/router_classes_test.rb
266
271
  - test/test_helper.rb
267
272
  has_rdoc:
@@ -1,122 +0,0 @@
1
- module FlowmorRouter
2
- module ActsAsFlowmorRoutable
3
- extend ActiveSupport::Concern
4
-
5
- def controller_action
6
- self.class.controller_action
7
- end
8
-
9
- included do
10
-
11
- after_save :reload_routes
12
- before_save :populate_name
13
-
14
- def derived_name_field_value
15
- send(self.derived_name_field)
16
- end
17
-
18
- def reload_routes
19
- Rails.application.routes_reloader.reload!
20
- end
21
-
22
- def populate_name
23
- if attributes[name_field].blank? || name_field_changed?
24
- send("#{name_field}=", new_name_value)
25
- end
26
- end
27
-
28
- def route_prefix
29
- "/#{self.route_model.pluralize.gsub('_', '-')}"
30
- end
31
-
32
- def route
33
- "#{route_prefix}/#{new_name_value}"
34
- end
35
-
36
- def default_url_options
37
- { :host => Thread.current[:host], :port => Thread.current[:port] }
38
- end
39
-
40
- def url
41
- begin
42
- FlowmorRouter::Engine.routes.url_helpers.send("#{route_name}_url", default_url_options)
43
- rescue NoMethodError
44
- raise FlowmorRouter::UnroutedRecord.new("#{self.inspect} was not routed.")
45
- end
46
- end
47
- def name_field
48
- self.class.name_field
49
- end
50
-
51
- def name_field_value
52
- attributes[name_field]
53
- end
54
-
55
- def path
56
- begin
57
- Rails.application.routes.url_helpers.send("#{route_name}_path")
58
- rescue NoMethodError
59
- raise FlowmorRouter::UnroutedRecord.new("#{self.inspect} was not routed.")
60
- end
61
- end
62
-
63
- def route_name
64
- name_suffix = new_name_value
65
- raise UnroutableRecord if name_suffix.blank?
66
-
67
- "#{route_name_prefix}_#{name_suffix}".underscore
68
- end
69
-
70
- def route_name_prefix
71
- "#{self.route_model.pluralize}"
72
- end
73
-
74
- def new_name_value
75
- if value = derived_name_field_value and !value.blank?
76
- value.downcase.gsub(/[^\w\s\d\_\-]/,'').gsub(/\s\s+/,' ').gsub(/[^\w\d]/, '-')
77
- else
78
- raise FlowmorRouter::UnroutableRecord if value.blank?
79
- end
80
- end
81
-
82
- def name_field_changed?
83
- new_name_value != attributes[name_field]
84
- end
85
-
86
- end
87
-
88
- module LocalInstanceMethods
89
- end
90
-
91
- module ClassMethods
92
- def default_controller_action
93
- "#{self.route_model.underscore}#show"
94
- end
95
-
96
- def controller_action
97
- @controller_action || default_controller_action
98
- end
99
-
100
- def acts_as_routable(options = {})
101
- ROUTABLE_MODEL_CLASSES << self
102
- scope :routable, options[:scope] || lambda {}
103
-
104
- class_attribute :route_model
105
- self.route_model = options[:route_model] || name.underscore.downcase
106
-
107
- class_attribute :name_field
108
- self.name_field = (options[:name_field] || :name).to_s
109
-
110
- class_attribute :derived_name_field
111
- self.derived_name_field = (options[:derived_name_field] || :title).to_s
112
-
113
- class_attribute :controller_action
114
- self.controller_action = (options[:controller_action] || default_controller_action)
115
-
116
- include LocalInstanceMethods
117
- end
118
- end
119
- end
120
- end
121
-
122
- ActiveRecord::Base.send :include, FlowmorRouter::ActsAsFlowmorRoutable