From ae3eb86208ef21556c60a523e5193d9941e0223e Mon Sep 17 00:00:00 2001 From: Steve Bazyl Date: Thu, 30 Mar 2017 13:00:15 -0700 Subject: [PATCH] Delete sync.rb --- sync.rb | 71 --------------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 sync.rb diff --git a/sync.rb b/sync.rb deleted file mode 100644 index 5940fbe48..000000000 --- a/sync.rb +++ /dev/null @@ -1,71 +0,0 @@ -require 'google/apis/sheets_v4' - -class Mapping - def initialize - @columns = [] - @primary = nil - end - - def add_column(name, property: nil, key: nil, getter: nil, setter: nil, hidden: false, primary: false) - getter_fn = getter if getter - getter_fn = Proc.new { |obj| obj.send(property) } if property - getter_fn = Proc.new { |obj| obj[key] } if key - setter_fn = setter if setter - setter_fn = Proc.new { |obj, val| obj.send(property + '=') } if property - setter_fn = Proc.new { |obj, val| obj[key]= val } if key - @columns.push({ - name: name, - getter: getter_fn, - setter: setter_fn, - hidden: hidden - }) - - if primary - fail "Only one column can be the primary key" unless @primary.nil? - @primary = @columns.last - end - end - - def to_row(obj) - @columns.map { |column| column[:accessor].call(obj) } - end -end - -class SheetSyncEngine - def initialize(mapping, sheet_id: nil) - @service = Google::Apis::SheetsV4::SheetsService.new - @sheet_id = sheet_id - @mapping = mapping - end - - def credentials=(creds) - @service.authorization = creds - end - - def append(items) - rows = items.map { |item| @mapping.to_row(item) } - puts rows - end -end - -class Foo - attr_accessor :prop1 - attr_accessor :prop2 - - def initialize(p1, p2) - @prop1 = p1 - @prop2 = p2 - end -end - -mapping = Mapping.new -mapping.add_column('foo', property: :prop1) -mapping.add_column('bar', proc: Proc.new {|o| 'aaa' + o.prop2}) -sync = SheetSyncEngine.new(mapping) - -items = [] -items.push(Foo.new('a', 'b')) -items.push(Foo.new('a1', 'b1')) -items.push(Foo.new('a2', 'b2')) - -sync.append(items) \ No newline at end of file