activeresource-google_spreadsheets 0.0.8 → 0.0.9

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
- SHA1:
3
- data.tar.gz: 328a71b7b3a1ddf6cee4de5c79b9d71dca550452
4
- metadata.gz: 4cd89573bca87047d33af66b173ac801782aa633
5
2
  SHA512:
6
- data.tar.gz: 851868786d589fc77d1e20b3106e2e7a2ce925e8e3a5485b24aa724cb85fcf7ff65e7b8c9fbc4578eee2da2e4d16982567cca4db773efa21c53994f9f6480246
7
- metadata.gz: c9b9d8361927941cba44f447f556049c973bfe53ecdcafcfbeb44762584dc85040946b610ae0250ec195abccb99e429668a99622a73237f91c353e2917b14ea3
3
+ metadata.gz: b119d39d25f74629960b194a0fd970d318827306e8550f9a8617960dfd6d5ee7e53498392bc10e81cb1656493530a456d0dbc74610f856ac097f5e776549b589
4
+ data.tar.gz: ff1e75731d04d348c0226bec429e07c3fa166bac1189f2c101c7e8bd3d0706f8456a0926d570fcad07f6ca429f663dfa944c2d1952ac4fa101f94961735709e9
5
+ SHA1:
6
+ metadata.gz: 64ad00bff2d0f3ef59dd5550c7f7d3cac7bd1de5
7
+ data.tar.gz: f3b47cc9aac71521e198234b6915b31c43cee641
@@ -34,6 +34,8 @@ module GoogleSpreadsheets
34
34
  included do
35
35
  class_attribute :_attr_aliases
36
36
  self._attr_aliases = {}
37
+ class_attribute :_ignore_attributes
38
+ self._ignore_attributes = []
37
39
  self.format = Format.new
38
40
  end
39
41
 
@@ -45,6 +47,10 @@ module GoogleSpreadsheets
45
47
  define_method("#{new_attr}=") {|*args| send("#{original_attr}=", *args) }
46
48
  end
47
49
  end
50
+
51
+ def ignore_column(*column_names)
52
+ self._ignore_attributes += column_names.map(&:to_s)
53
+ end
48
54
  end
49
55
 
50
56
  def aliased_attributes
@@ -56,7 +62,7 @@ module GoogleSpreadsheets
56
62
  nil
57
63
  end
58
64
  end.compact
59
- (self.class.known_attributes + gsx_attributes).uniq
65
+ (self.class.known_attributes + gsx_attributes - self.class._ignore_attributes).uniq
60
66
  end
61
67
 
62
68
  def respond_to?(method, include_priv = false)
@@ -32,9 +32,9 @@ module GoogleSpreadsheets
32
32
  end
33
33
 
34
34
  # inbound sync all (import)
35
- define_singleton_method("sync_with_#{rows_name}") do
35
+ define_singleton_method("sync_with_#{rows_name}") do |options = {}|
36
36
  synchronizer = self.synchronizers[rows_name]
37
- synchronizer.sync_with_rows
37
+ synchronizer.sync_with_rows(options)
38
38
  end
39
39
 
40
40
  # outbound sync one (export)
@@ -66,12 +66,15 @@ module GoogleSpreadsheets
66
66
  end
67
67
  end
68
68
 
69
- def sync_with_rows
69
+ def sync_with_rows(options)
70
70
  reset
71
71
  records = all_rows.map do |row|
72
72
  record_class.find_or_initialize_by(id: row.id).tap do |record|
73
73
  row.aliased_attributes.each do |attr|
74
- record.send("#{attr}=", row.send(attr))
74
+ value = row.send(attr)
75
+ if options[:include_blank] || value.present?
76
+ record.send("#{attr}=", value)
77
+ end
75
78
  end
76
79
  end
77
80
  end
@@ -1,3 +1,3 @@
1
1
  module GoogleSpreadsheets
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeresource-google_spreadsheets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chihiro Ito