decent_exposure 2.0.0.rc1 → 2.0.0
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.
- data/lib/decent_exposure/expose.rb +10 -5
- data/lib/decent_exposure/inflector.rb +14 -8
- data/lib/decent_exposure/strategy.rb +1 -1
- data/lib/decent_exposure/version.rb +1 -1
- metadata +32 -12
@@ -5,7 +5,9 @@ module DecentExposure
|
|
5
5
|
module Expose
|
6
6
|
def self.extended(base)
|
7
7
|
base.class_eval do
|
8
|
-
class_attribute :_default_exposure
|
8
|
+
class_attribute :_default_exposure, :_decent_configurations
|
9
|
+
self._decent_configurations ||= Hash.new(Configuration.new)
|
10
|
+
|
9
11
|
def _resources
|
10
12
|
@_resources ||= {}
|
11
13
|
end
|
@@ -17,10 +19,6 @@ module DecentExposure
|
|
17
19
|
@_exposures ||= {}
|
18
20
|
end
|
19
21
|
|
20
|
-
def _decent_configurations
|
21
|
-
@_decent_configurations ||= Hash.new(Configuration.new)
|
22
|
-
end
|
23
|
-
|
24
22
|
def decent_configuration(name=:default,&block)
|
25
23
|
_decent_configurations[name] = Configuration.new(&block)
|
26
24
|
end
|
@@ -39,6 +37,13 @@ module DecentExposure
|
|
39
37
|
end
|
40
38
|
|
41
39
|
def expose(name, options={:default_exposure => _default_exposure}, &block)
|
40
|
+
if ActionController::Base.instance_methods.include?(name.to_sym)
|
41
|
+
Kernel.warn "[WARNING] You are exposing the `#{name}` method, " \
|
42
|
+
"which overrides an existing ActionController method of the same name. " \
|
43
|
+
"Consider a different exposure name\n" \
|
44
|
+
"#{caller.first}"
|
45
|
+
end
|
46
|
+
|
42
47
|
config = options[:config] || :default
|
43
48
|
options = _decent_configurations[config].merge(options)
|
44
49
|
|
@@ -3,15 +3,21 @@ require 'active_support/core_ext/string/inflections'
|
|
3
3
|
|
4
4
|
module DecentExposure
|
5
5
|
class Inflector
|
6
|
-
attr_reader :original
|
7
|
-
alias name
|
6
|
+
attr_reader :string, :original
|
7
|
+
alias name string
|
8
8
|
|
9
9
|
def initialize(name)
|
10
|
-
@original = name
|
10
|
+
@original = name
|
11
|
+
@string = name.to_s.demodulize
|
11
12
|
end
|
12
13
|
|
13
|
-
def constant
|
14
|
-
original
|
14
|
+
def constant(context=Object)
|
15
|
+
case original
|
16
|
+
when Module, Class
|
17
|
+
original
|
18
|
+
else
|
19
|
+
context.const_get string.classify
|
20
|
+
end
|
15
21
|
end
|
16
22
|
|
17
23
|
def parameter
|
@@ -19,16 +25,16 @@ module DecentExposure
|
|
19
25
|
end
|
20
26
|
|
21
27
|
def singular
|
22
|
-
|
28
|
+
string.parameterize
|
23
29
|
end
|
24
30
|
|
25
31
|
def plural
|
26
|
-
|
32
|
+
string.pluralize
|
27
33
|
end
|
28
34
|
alias collection plural
|
29
35
|
|
30
36
|
def plural?
|
31
|
-
plural ==
|
37
|
+
plural == string
|
32
38
|
end
|
33
39
|
end
|
34
40
|
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decent_exposure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Stephen Caudill
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-10-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rspec
|
18
|
-
requirement:
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,15 @@ dependencies:
|
|
23
23
|
version: '2.7'
|
24
24
|
type: :development
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '2.7'
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: rspec-rails
|
29
|
-
requirement:
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
30
35
|
none: false
|
31
36
|
requirements:
|
32
37
|
- - ~>
|
@@ -34,10 +39,15 @@ dependencies:
|
|
34
39
|
version: '2.7'
|
35
40
|
type: :development
|
36
41
|
prerelease: false
|
37
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.7'
|
38
48
|
- !ruby/object:Gem::Dependency
|
39
49
|
name: actionpack
|
40
|
-
requirement:
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
41
51
|
none: false
|
42
52
|
requirements:
|
43
53
|
- - ~>
|
@@ -45,10 +55,15 @@ dependencies:
|
|
45
55
|
version: '3.1'
|
46
56
|
type: :development
|
47
57
|
prerelease: false
|
48
|
-
version_requirements:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ~>
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '3.1'
|
49
64
|
- !ruby/object:Gem::Dependency
|
50
65
|
name: activesupport
|
51
|
-
requirement:
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
52
67
|
none: false
|
53
68
|
requirements:
|
54
69
|
- - ~>
|
@@ -56,7 +71,12 @@ dependencies:
|
|
56
71
|
version: '3.1'
|
57
72
|
type: :development
|
58
73
|
prerelease: false
|
59
|
-
version_requirements:
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ~>
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '3.1'
|
60
80
|
description: ! "\n DecentExposure helps you program to an interface, rather than
|
61
81
|
an\n implementation in your Rails controllers. The fact of the matter is that\n
|
62
82
|
\ sharing state via instance variables in controllers promotes close coupling\n
|
@@ -100,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
120
|
version: 1.3.6
|
101
121
|
requirements: []
|
102
122
|
rubyforge_project:
|
103
|
-
rubygems_version: 1.8.
|
123
|
+
rubygems_version: 1.8.24
|
104
124
|
signing_key:
|
105
125
|
specification_version: 3
|
106
126
|
summary: A helper for creating declarative interfaces in controllers
|