controller_less 0.0.1.pre → 0.0.2.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: 57720b25dbbccb331eb8a46ab8d5b0fbe1b3e41e
4
- data.tar.gz: 73ff56efe5b8fb9bee01665e29545f2f5f8c5c9d
3
+ metadata.gz: 00b2fade723a89307414f967e9dec94acfa28ae6
4
+ data.tar.gz: a8fe6ca82304d42ab3316bf9d0bdc0f9504ac433
5
5
  SHA512:
6
- metadata.gz: 57b4243833fa96d38456ff9ff523aa6d9439943fe70699192dc15b7caff4dcbfc56bb6636a7555c90cf34f5d853905a0b89815e91fcf6f1d6c89c4ea5444090a
7
- data.tar.gz: cb3801d71adda781c383065772308447d9172babb4b6129ccc9ca62e74b6ad90ab6ffb4a32d28d81eb4e98e14eb82ac253f085a1eceb2d9fea0517b3a20c7f80
6
+ metadata.gz: a59ce4d723907fd0a9255a587c69910970eb48f54d3c2498ac55dea8909e7d8ba56f62714799e52b255ca8f66c5c50015809638f4e1afed3f23cca795742b34c
7
+ data.tar.gz: 29c05429f9ffb050af2c5d742527691584a435327db66eef254fc4167d675ca9f7f2612f7b4cd3299ab3d3a46f1020e88ffd7f5ac57be258b829b4c1e6a0aa53
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
@@ -1,6 +1,7 @@
1
1
  require 'controller_less/helpers/settings'
2
2
  require 'controller_less/resource.rb'
3
3
  require 'controller_less/resources_controller'
4
+ require 'controller_less/resource_dsl'
4
5
 
5
6
  module ControllerLess
6
7
  class Application
@@ -20,9 +21,14 @@ module ControllerLess
20
21
  unless Object.const_defined?(resource.controller_name)
21
22
  eval "class ::#{resource.controller_name} < ControllerLess::ResourcesController; end"
22
23
  resource.controller.cl_config = resource
24
+ block_given? && hook_methods(resource, resource.resource_class, &block)
23
25
  end
24
26
  add_route(name.name.to_s.downcase.pluralize)
25
27
  end
28
+ def hook_methods(config, resource_class, &block)
29
+ rdsl = ControllerLess::ResourceDsl.new(config, resource_class)
30
+ rdsl.run_registration_block(&block)
31
+ end
26
32
  def add_route(route_name)
27
33
  (self.routes_list ||= Array.new).push(route_name)
28
34
  end
@@ -17,6 +17,12 @@ module ControllerLess
17
17
  @controller ||= controller_name.constantize
18
18
  end
19
19
 
20
+ def param_key
21
+ if resource_class.respond_to? :model_name
22
+ resource_class.model_name.param_key
23
+ else
24
+ resource_name.param_key
25
+ end
26
+ end
20
27
  end
21
-
22
28
  end
@@ -0,0 +1,23 @@
1
+ module ControllerLess
2
+ class ResourceDsl
3
+ attr_accessor :config, :resource_class
4
+ def initialize(conf, rclass)
5
+ self.config, self.resource_class = conf, rclass
6
+ end
7
+ def run_registration_block(&block)
8
+ instance_exec &block
9
+ end
10
+ def controller(&block)
11
+ block_given? && config.controller.class_exec(&block)
12
+ config.controller
13
+ end
14
+ def permitted_params(*args, &block)
15
+ param_key = config.param_key.to_sym
16
+ controller do
17
+ define_method :permitted_params do
18
+ params.permit(param_key => block ? instance_exec(&block) : args)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -4,8 +4,8 @@ module ControllerLess
4
4
  attr_accessor :cl_config
5
5
  end
6
6
  def self.cl_config=(config)
7
- self.controller_name = config.controller_name
8
- self.resource_class = config.resource_class
7
+ @cl_config = config
8
+ defaults resource_class: config.resource_class
9
9
  end
10
10
  def cl_config
11
11
  self.class.cl_config
@@ -22,14 +22,7 @@ module ControllerLess
22
22
  def self.resource_class
23
23
  @cl_config ? @cl_config.resource_class : nil
24
24
  end
25
-
26
- def self.controller_name=(name); end
27
- def self.controller_name
28
- @cl_config.try(:controller_name)
29
- end
30
- def controller_name
31
- self.class.controller_name
32
- end
25
+
33
26
  def resource_class
34
27
  self.class.resource_class
35
28
  end
@@ -1,3 +1,3 @@
1
1
  module ControllerLess
2
- VERSION = '0.0.1.pre'
2
+ VERSION = '0.0.2.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.1.pre
4
+ version: 0.0.2.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-11 00:00:00.000000000 Z
11
+ date: 2016-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inherited_resources
@@ -51,12 +51,14 @@ executables: []
51
51
  extensions: []
52
52
  extra_rdoc_files: []
53
53
  files:
54
+ - ".gitignore"
54
55
  - controller_less.gemspec
55
56
  - lib/controller_less.rb
56
57
  - lib/controller_less/application.rb
57
58
  - lib/controller_less/base_controller.rb
58
59
  - lib/controller_less/helpers/settings.rb
59
60
  - lib/controller_less/resource.rb
61
+ - lib/controller_less/resource_dsl.rb
60
62
  - lib/controller_less/resources_controller.rb
61
63
  - lib/controller_less/version.rb
62
64
  homepage: https://github.com/victorcreed/controller_less