citero 1.0.0.alpha5 → 1.0.0.beta

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: 2ad3b53896c3eb9cd5781a598794877bf63cc7a1
4
- data.tar.gz: 2c8952c07311e3a8665fd273acb049129a0d9f17
3
+ metadata.gz: f69a32bade78dc3f1bcaf1d1c5af83af1e18fc0c
4
+ data.tar.gz: 6df35949a611cb7fef724925f0136519c955ae1f
5
5
  SHA512:
6
- metadata.gz: e4eed240b48f8210f9d1cb177058d98d0104cc7396bf0bec0f30f71fe8e90a32e0eafd5df7e3986c1a357349da2bee56b8b6dacf92cea2e4fbf547750b44bf9c
7
- data.tar.gz: 90819b5af6ae0dac5f001965da5a541b1d3491b05d2d9a88fa183186d97aa2a1c74230c766ae376c4439ce0ecdadbe4c7ea7417d1ec9edfa406964cb2507490d
6
+ metadata.gz: cbd3109b42d2b1bd950a51d9cd027670c296ec3e75716328b624152f42372ca5def87ca06d9704951055097afb25f26f46869cfc1591e71947f8309158a81b74
7
+ data.tar.gz: 0da288ed0cc0d8f0129b23d6ae9819f5ac12b75bc196e840128d3db7985a347728d6180ad0e3aca43a24517c0abcc0830d3972e56716489dc1735a3ddfa970cc
@@ -1,7 +1,7 @@
1
1
  module Citero
2
2
  class CSF
3
3
  extend Forwardable
4
- def_delegators :@data, :[], :[]=, :size, :each, :inspect, :to_s
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
@@ -1,3 +1,3 @@
1
1
  module Citero
2
- VERSION = "1.0.0.alpha5"
2
+ VERSION = "1.0.0.beta"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: citero
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha5
4
+ version: 1.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - hab278