recordx 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.
Files changed (2) hide show
  1. data/lib/recordx.rb +13 -7
  2. metadata +1 -1
data/lib/recordx.rb CHANGED
@@ -5,15 +5,21 @@
5
5
  class RecordX
6
6
 
7
7
  def initialize(callerx, id, h={})
8
+ @callerx, @id = callerx, id
9
+ h.each {|name,val| attr_accessor2(name.to_s, val) }
10
+ end
11
+
12
+ def method_missing(method_name, *raw_args)
13
+ arg = raw_args.length > 0 ? raw_args.first : nil
14
+ attr_accessor2(method_name[/\w+/], arg)
15
+ arg ? self.send(method_name, arg) : self.send(method_name)
16
+ end
8
17
 
9
- @callerx, @id = callerx, id
10
-
11
- methods = h.to_a.map do |k,v|
12
- name, val = k.to_s, v
13
- "def #{name}=(s) @#{name} = s.to_s; @callerx.update(@id, #{name}: s.to_s) end\n\
18
+ def attr_accessor2(name,val=nil)
19
+ self.instance_eval "def #{name}=(s)\n @#{name} = s.to_s\n\
20
+ @callerx.update(@id, #{name}: s.to_s)\n end\n\
14
21
  def #{name}() @#{name} end\n\
15
22
  @#{name} = '#{val}'"
16
- end
17
- self.instance_eval methods.join("\n")
18
23
  end
24
+
19
25
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: recordx
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.1.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Robertson