rafters 0.1.3 → 0.2.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.
- checksums.yaml +4 -4
- data/lib/rafters/component.rb +26 -6
- data/lib/rafters/railtie.rb +1 -0
- data/lib/rafters/source.rb +13 -0
- data/lib/rafters/version.rb +1 -1
- data/lib/rafters.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eda33be9a4b9d6483e2ca5ab9cca57f42900f31
|
4
|
+
data.tar.gz: ee6926c5bb02bc6fda0884bba1a917040e072371
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37924228164a3e2507c090fd4b4d5200db0e95fd33b299bdf6b3f0f0f090636190b06c66f09dc3135c0e3b0bdc50755b2473bc6d192d87ade571f454c948ef11
|
7
|
+
data.tar.gz: 9a2ecc6cd6ffc2d08aa4105e365b6673b2a2b45796bc210563ead3d78e5b626b8842f64a30383e59760474b82af73983e5e2b992ff9aae59a5af6b43d0c6205c
|
data/lib/rafters/component.rb
CHANGED
@@ -11,8 +11,9 @@ module Rafters::Component
|
|
11
11
|
@settings = settings
|
12
12
|
end
|
13
13
|
|
14
|
-
def name
|
15
|
-
self.class.name.underscore
|
14
|
+
def name(without_postfix = false)
|
15
|
+
_name = self.class.name.underscore
|
16
|
+
without_postfix ? _name.gsub(/_component/, '') : _name
|
16
17
|
end
|
17
18
|
|
18
19
|
def identifier
|
@@ -27,18 +28,38 @@ module Rafters::Component
|
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
31
|
+
def source
|
32
|
+
@source ||= "#{name(true)}_#{settings.source}_source".camelize.constantize.new(self)
|
33
|
+
end
|
34
|
+
|
30
35
|
def attributes
|
31
36
|
return {} if self.class._attributes.nil?
|
32
37
|
|
33
38
|
@_attributes ||= Hashie::Mash.new.tap do |_attributes|
|
34
|
-
self.class._attributes.each do |name|
|
39
|
+
(self.class._attributes || []).each do |name|
|
35
40
|
_attributes[name] = send(name)
|
36
41
|
end
|
37
42
|
end
|
38
43
|
end
|
39
44
|
|
40
45
|
def settings
|
41
|
-
@_settings ||= Hashie::Mash.new(@settings.reverse_merge(
|
46
|
+
@_settings ||= Hashie::Mash.new(@settings.reverse_merge(overrides).reverse_merge(defaults))
|
47
|
+
end
|
48
|
+
|
49
|
+
def defaults
|
50
|
+
@_defaults ||= Hashie::Mash.new.tap do |_defaults|
|
51
|
+
(self.class._defaults || {}).each do |name, value|
|
52
|
+
_defaults[name] = value.is_a?(Proc) ? value.call(self) : value
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def overrides
|
58
|
+
@_overrides ||= Hashie::Mash.new.tap do |_overrides|
|
59
|
+
(controller(:params)[name(true)] || {}).each do |name, value|
|
60
|
+
_overrides[name] = value
|
61
|
+
end
|
62
|
+
end
|
42
63
|
end
|
43
64
|
|
44
65
|
def controller(variable_or_method_name)
|
@@ -47,7 +68,7 @@ module Rafters::Component
|
|
47
68
|
elsif @controller.respond_to?(variable_or_method_name, true)
|
48
69
|
@controller.send(variable_or_method_name)
|
49
70
|
else
|
50
|
-
|
71
|
+
nil
|
51
72
|
end
|
52
73
|
end
|
53
74
|
|
@@ -91,7 +112,6 @@ module Rafters::Component
|
|
91
112
|
end
|
92
113
|
end
|
93
114
|
|
94
|
-
class ControllerMethodOrVariableMissing < StandardError; end
|
95
115
|
class SettingRequired < StandardError; end
|
96
116
|
class InvalidSetting < StandardError; end
|
97
117
|
end
|
data/lib/rafters/railtie.rb
CHANGED
@@ -14,6 +14,7 @@ class Rafters::Railtie < Rails::Railtie
|
|
14
14
|
end
|
15
15
|
|
16
16
|
initializer "rafters.set_autoload_paths", :before => :set_autoload_paths do |app|
|
17
|
+
app.config.autoload_paths += Dir[app.root.join("app", "components", "*", "*/")]
|
17
18
|
app.config.autoload_paths += Dir[app.root.join("app", "components", "*/")]
|
18
19
|
end
|
19
20
|
|
data/lib/rafters/version.rb
CHANGED
data/lib/rafters.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rafters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Hite
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- lib/rafters/component_renderer.rb
|
166
166
|
- lib/rafters/directive_processor.rb
|
167
167
|
- lib/rafters/railtie.rb
|
168
|
+
- lib/rafters/source.rb
|
168
169
|
- lib/rafters/version.rb
|
169
170
|
- lib/tasks/rafters_tasks.rake
|
170
171
|
- rafters.gemspec
|