kelredd-pathsconfig 0.1.0 → 0.1.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.
- data/README.rdoc +79 -4
- data/lib/pathsconfig/configuration.rb +1 -1
- data/lib/pathsconfig/version.rb +1 -1
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
== Description
|
4
4
|
|
5
|
-
A ruby gem to help configure dynamic file paths for classes in a easy way.
|
5
|
+
A ruby gem to help configure dynamic file paths for classes in a easy way. Paths are handled as arrays of path segments that can be joined to form a usable path string.
|
6
6
|
|
7
7
|
== Installation
|
8
8
|
|
@@ -13,14 +13,89 @@ A ruby gem to help configure dynamic file paths for classes in a easy way.
|
|
13
13
|
# 1. Require the library
|
14
14
|
require 'pathsconfig'
|
15
15
|
|
16
|
-
# 2.
|
16
|
+
# 2. Configure Pathsconfig
|
17
|
+
Pathsconfig.config = "#{RAILS_ROOT}/config/paths.yml" # -- or --
|
18
|
+
Pathsconfig.config = "./some/custom/file.yml"
|
17
19
|
|
18
20
|
# 3. Have a class that needs those paths
|
19
|
-
class
|
20
|
-
|
21
|
+
class Widget
|
22
|
+
|
23
|
+
include Pathsconfig::Base
|
24
|
+
def self.path_config
|
25
|
+
:widget
|
26
|
+
end
|
27
|
+
|
21
28
|
end
|
22
29
|
|
23
30
|
# 4. Get sweet methods to generate those paths dynamically!
|
31
|
+
@widget.path_array(:a_path) # returns an array of path segments
|
32
|
+
@widget.path_string(:a_path) # returns the full path string
|
33
|
+
|
34
|
+
Because you can choose to deal with paths as arrays of path segments, this gem is handy to use in conjunction with the kelredd-repository gem (http://github.com/kelredd/repository).
|
35
|
+
|
36
|
+
== Sample Paths Config File and Corresponding Model Definitions
|
37
|
+
|
38
|
+
# Yaml formatted hash
|
39
|
+
:widget:
|
40
|
+
:static: # Paths are named for reference
|
41
|
+
['"a"', '"static"', '"path"']
|
42
|
+
:dynamic:
|
43
|
+
['"a"', '"dynamic"', '"path"', 'self.id', 'self.name', 'self.type_name'] # Paths can use dynamic model data
|
44
|
+
:nested:
|
45
|
+
['self.path_array(:static)', '"that"', '"is"', '"nested"'] # Paths can reference other paths
|
46
|
+
|
47
|
+
:sprocket:
|
48
|
+
:dynamic:
|
49
|
+
:old: # Paths can be typed
|
50
|
+
['"an old typed"', '"dynamic"', '"path"', 'self.id', 'self.name', 'self.type_name']
|
51
|
+
:new:
|
52
|
+
['"a new typed"', '"dynamic"', '"path"', 'self.id', 'self.name', 'self.type_name']
|
53
|
+
:nested:
|
54
|
+
['self.widget.path_array(:dynamic)', '"with"', 'self.path_array(:dynamic)'] # Paths can reference paths from other models if associated
|
55
|
+
|
56
|
+
Basically, anything between the '' marks is evaluated in the model space. This way you have full access to model data when generating model paths
|
57
|
+
|
58
|
+
class Widget
|
59
|
+
|
60
|
+
include Pathsconfig::Base
|
61
|
+
def self.path_config
|
62
|
+
:widget
|
63
|
+
end
|
64
|
+
def path_type
|
65
|
+
type_name == "Big" ? :old : :new
|
66
|
+
end
|
67
|
+
|
68
|
+
ATTRS = [:id, :type_name, :name]
|
69
|
+
ATTRS.each {|a| attr_reader a }
|
70
|
+
|
71
|
+
def initialize(params={})
|
72
|
+
ATTRS.each{|a| instance_variable_set("@#{a.to_s}", params[a]) }
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
class Sprocket
|
78
|
+
|
79
|
+
include Pathsconfig::Base
|
80
|
+
def self.path_config
|
81
|
+
:sprocket
|
82
|
+
end
|
83
|
+
def path_type
|
84
|
+
widget.path_type
|
85
|
+
end
|
86
|
+
|
87
|
+
ATTRS = [:id, :type_name, :name]
|
88
|
+
ATTRS.each {|a| attr_reader a }
|
89
|
+
|
90
|
+
def initialize(params={})
|
91
|
+
ATTRS.each{|a| instance_variable_set("@#{a.to_s}", params[a]) }
|
92
|
+
end
|
93
|
+
|
94
|
+
def widget
|
95
|
+
@widget ||= Widget.new(:id => 1234, :type_name => 'Small', :name => 'Sarah')
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
24
99
|
|
25
100
|
== License
|
26
101
|
|
data/lib/pathsconfig/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kelredd-pathsconfig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelly Redding
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-07-
|
12
|
+
date: 2009-07-31 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|