flowmor_router 0.1.1 → 0.2.1

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.
@@ -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