citero 1.0.0.alpha5 → 1.0.0.beta
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/citero/csf.rb +26 -1
- data/lib/citero/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f69a32bade78dc3f1bcaf1d1c5af83af1e18fc0c
|
4
|
+
data.tar.gz: 6df35949a611cb7fef724925f0136519c955ae1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbd3109b42d2b1bd950a51d9cd027670c296ec3e75716328b624152f42372ca5def87ca06d9704951055097afb25f26f46869cfc1591e71947f8309158a81b74
|
7
|
+
data.tar.gz: 0da288ed0cc0d8f0129b23d6ae9819f5ac12b75bc196e840128d3db7985a347728d6180ad0e3aca43a24517c0abcc0830d3972e56716489dc1735a3ddfa970cc
|
data/lib/citero/csf.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Citero
|
2
2
|
class CSF
|
3
3
|
extend Forwardable
|
4
|
-
def_delegators :@data, :[], :
|
4
|
+
def_delegators :@data, :[], :size, :each, :inspect, :to_s
|
5
5
|
attr_reader :data
|
6
6
|
alias_method :csf, :data
|
7
7
|
|
@@ -20,6 +20,14 @@ module Citero
|
|
20
20
|
def []=(key,value)
|
21
21
|
@data[key] = element_or_list(@data[key], value)
|
22
22
|
end
|
23
|
+
|
24
|
+
def keys
|
25
|
+
@data.keys.collect {|key| rubyize(key)}
|
26
|
+
end
|
27
|
+
|
28
|
+
def respond_to?(method_sym, *arguments, &block)
|
29
|
+
keys.include?(rubyize(method_sym.to_s)) || super(method_sym, *arguments, &block)
|
30
|
+
end
|
23
31
|
|
24
32
|
private
|
25
33
|
def element_or_list(old_value, new_value)
|
@@ -29,5 +37,22 @@ module Citero
|
|
29
37
|
return temp_arr.first if temp_arr.size == 1
|
30
38
|
return temp_arr
|
31
39
|
end
|
40
|
+
|
41
|
+
def method_missing(method_sym, *arguments, &block)
|
42
|
+
super unless respond_to?(method_sym, *arguments, &block)
|
43
|
+
return @data.select {|k,v| rubyize(k).eql?(method_sym)}.first.last
|
44
|
+
end
|
45
|
+
|
46
|
+
def rubyize(name)
|
47
|
+
name.
|
48
|
+
to_s.
|
49
|
+
gsub(/::/, '/').
|
50
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
51
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
52
|
+
tr("-", "_").
|
53
|
+
downcase.
|
54
|
+
to_sym
|
55
|
+
end
|
56
|
+
|
32
57
|
end
|
33
58
|
end
|
data/lib/citero/version.rb
CHANGED