controller_less 0.0.2.pre → 0.0.3.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00b2fade723a89307414f967e9dec94acfa28ae6
4
- data.tar.gz: a8fe6ca82304d42ab3316bf9d0bdc0f9504ac433
3
+ metadata.gz: c1b953583cd04006308f4828d2ce3c7b9105c3df
4
+ data.tar.gz: 6609eaee4d4301e1e5f8a15c1bd8839a78495f58
5
5
  SHA512:
6
- metadata.gz: a59ce4d723907fd0a9255a587c69910970eb48f54d3c2498ac55dea8909e7d8ba56f62714799e52b255ca8f66c5c50015809638f4e1afed3f23cca795742b34c
7
- data.tar.gz: 29c05429f9ffb050af2c5d742527691584a435327db66eef254fc4167d675ca9f7f2612f7b4cd3299ab3d3a46f1020e88ffd7f5ac57be258b829b4c1e6a0aa53
6
+ metadata.gz: 09fc958118daed801e33a600590d854d95a1dd550186c102bee8e58d87795ba3948c7c8e73df4c5ca985403fa2ef9d827fd674611ea8941165376caf8b012b04
7
+ data.tar.gz: 45524735933fc030e0dfa8acc9df04251c2820e27ffc593037b507f8a41eaaf9c7fae3a4a9db4f9070363177594fbbe2bc30e9174c24da27fc78f6a73a928ae3
@@ -16,14 +16,14 @@ module ControllerLess
16
16
  def files
17
17
  load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }
18
18
  end
19
- def register(name, &block)
20
- resource = ControllerLess::Resource.new(name)
19
+ def register(name, options={}, &block)
20
+ resource = ControllerLess::Resource.new(name, options)
21
21
  unless Object.const_defined?(resource.controller_name)
22
22
  eval "class ::#{resource.controller_name} < ControllerLess::ResourcesController; end"
23
23
  resource.controller.cl_config = resource
24
24
  block_given? && hook_methods(resource, resource.resource_class, &block)
25
25
  end
26
- add_route(name.name.to_s.downcase.pluralize)
26
+ add_route(resource.route)
27
27
  end
28
28
  def hook_methods(config, resource_class, &block)
29
29
  rdsl = ControllerLess::ResourceDsl.new(config, resource_class)
@@ -36,8 +36,12 @@ module ControllerLess
36
36
  route_reload
37
37
  end
38
38
  def route_reload
39
- Rails.application.routes.draw do
40
- ControllerLess.application.routes_list.each { |route_name| resources(route_name) }
39
+ ControllerLess.application.routes_list.each do |route_param|
40
+ if route_param.respond_to?(:call)
41
+ Rails.application.routes.draw(&route_param)
42
+ else
43
+ Rails.application.routes.draw { send(*route_param) }
44
+ end
41
45
  end
42
46
  end
43
47
  end
@@ -7,11 +7,35 @@ module ControllerLess
7
7
  def resource_name
8
8
  resource_class
9
9
  end
10
+ def route_name
11
+ resource_class.name.underscore.pluralize
12
+ end
10
13
  def resource_class
11
14
  resource_class_name.constantize
12
15
  end
13
16
  def controller_name
14
- resource_name.name.pluralize.camelize + "Controller"
17
+ namespace + resource_name.name.pluralize.camelize + "Controller"
18
+ end
19
+ def namespace
20
+ options.fetch(:namespace, "")
21
+ end
22
+ def route
23
+ namespace_route || simple_route
24
+ end
25
+ def namespace_route
26
+ namespace.present? && build_namespace_route || nil
27
+ end
28
+ def build_namespace_route
29
+ func = "lambda do;"
30
+ arry = options.fetch(:namespace).split("::")
31
+ func += arry.map { |val| "namespace(:#{val.downcase}) do" }.join(";") << (";#{simple_routes_for_namespace.join(" ")}" + ";end" * arry.size + ";end")
32
+ @build_namespace_route = eval(func)
33
+ end
34
+ def simple_route
35
+ [:resources, route_name.to_sym]
36
+ end
37
+ def simple_routes_for_namespace
38
+ [:resources, "'#{route_name}'"]
15
39
  end
16
40
  def controller
17
41
  @controller ||= controller_name.constantize
@@ -1,3 +1,3 @@
1
1
  module ControllerLess
2
- VERSION = '0.0.2.pre'
2
+ VERSION = '0.0.3.pre'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: controller_less
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.pre
4
+ version: 0.0.3.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kamal Ejaz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-14 00:00:00.000000000 Z
11
+ date: 2016-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inherited_resources
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  version: 1.3.1
82
82
  requirements: []
83
83
  rubyforge_project:
84
- rubygems_version: 2.4.3
84
+ rubygems_version: 2.5.1
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: micro library to dry out basic crud rails controllers.