airtable_sync 1.0.1 → 1.1.0

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
  SHA256:
3
- metadata.gz: 9d1acb193baf36f2a13ce8a407f969b6e75069dd21fddf3ed25c40fc65e2eb82
4
- data.tar.gz: de8d079498ae0dd3557818acbb86aa7428e0812f967169c34382e92b6fa940ca
3
+ metadata.gz: 57ef6a46048952c273adf2104f58df8f549228f92176ef1d640806553d233fdd
4
+ data.tar.gz: 12f22c78538055e00367a6e69d9eb7693c3f788f97483b38441581695eeec4d5
5
5
  SHA512:
6
- metadata.gz: 6a07bb6c9ae37b887b3f636c6987e07a865a4cd71e4a29c63069671ae5e94d4553c20dc5fe5c0c7f13ba0bc66412cdeb0502f930192d07928dcbeb2207501bc0
7
- data.tar.gz: 8880ccee15569c4215213143f2320dfc4d3f1886b3ffb8bf38cc44db96e9d1041b00ffaf5d49a6c8315a094fb278a357a58e8a7c44207156bc1e0a4ea581ac22
6
+ metadata.gz: 86f58cbd861fa04d2dce488ba1f850c264ea904ddd0e878fef7597eca4f1f6c0d53ef4c1ad200db2f3438c2f4d5f204bc63d7532cef0fdce7c6252704437fc14
7
+ data.tar.gz: 705ef73ead60b13d593e6927ae320a28d82f236c673e361e1377d27b156322e8eef19d65c24e4db37eba00746f29b1da877e6a9b2debe5961f0b9c57a8edd9ab
data/README.md CHANGED
@@ -13,9 +13,12 @@ For the latest changes, see the [CHANGELOG.md](CHANGELOG.md).
13
13
  Add this line to your application's Gemfile:
14
14
 
15
15
  ```ruby
16
+ gem 'airrecord', github: 'vfonic/airrecord'
16
17
  gem 'airtable_sync'
17
18
  ```
18
19
 
20
+ We need to use airrecord fork because the original gem is unfortunately poorly maintained by AirTable and community and I don't have the resources to maintain it myself.
21
+
19
22
  And then execute:
20
23
 
21
24
  ```bash
@@ -30,17 +33,13 @@ bundle exec rails generate airtable_sync:install
30
33
 
31
34
  ## Usage
32
35
 
33
- 1. Generate AirTable API key
34
- https://airtable.com/create/apikey
35
- 2.
36
-
37
36
  ### Configuration options
38
37
 
39
38
  In `config/initializers/airtable_sync.rb` you can specify configuration options:
40
39
 
41
- 1. `api_key`
42
- 2. `webflow_site_id`
43
- 3. `skip_airtable_sync` - skip synchronization for different environments.
40
+ 1. `api_key` - In order to use this gem, you need to generate AirTable API key: https://airtable.com/create/apikey
41
+ 2. `airtable_base_id` - you can set `airtable_base_id` here or override `def airtable_base_id` in your model. More on this below.
42
+ 3. `skip_airtable_sync` - if set to `true`, AirtableSync will not sync records to AirTable. This is useful for development and test environments where you don't want to sync records to AirTable.
44
43
 
45
44
  Example:
46
45
 
@@ -51,6 +50,10 @@ AirtableSync.configure do |config|
51
50
  end
52
51
  ```
53
52
 
53
+ ### Create AirTable tables
54
+
55
+ You need to create the AirTable base(s) and table(s) yourself.
56
+
54
57
  ### Add AirtableSync to models
55
58
 
56
59
  For each model that you want to sync to AirTable, you need to run the connection generator:
@@ -61,10 +64,6 @@ bundle exec rails generate airtable_sync:connection Article
61
64
 
62
65
  Please note that this _does not_ create the AirTable table. You need to already have it or create it manually.
63
66
 
64
- ### Create AirTable tables
65
-
66
- As mentioned above, you need to create the AirTable tables yourself.
67
-
68
67
  ### Set `airtable_base_id`
69
68
 
70
69
  There are couple of ways how you can set the `airtable_base_id` to be used.
@@ -79,6 +78,20 @@ AirtableSync.configure do |config|
79
78
  end
80
79
  ```
81
80
 
81
+ #### Set `airtable_base_id` in model
82
+
83
+ ```rb
84
+ # app/models/article.rb
85
+
86
+ class Article < ApplicationRecord
87
+ include AirtableSync::RecordSync
88
+
89
+ def airtable_base_id
90
+ site.airtable_base_id
91
+ end
92
+ end
93
+ ```
94
+
82
95
  ### Customize fields to synchronize
83
96
 
84
97
  By default, AirtableSync calls `#as_airtable_json` on a record to get the fields that it needs to push to AirTable. `#as_airtable_json` simply calls `#as_json` in its default implementation. To change this behavior, you can override `#as_airtable_json` in your model:
@@ -122,10 +135,10 @@ For example:
122
135
  AirtableSync::CreateRecordJob.perform_now('articles', 1, 'Stories')
123
136
  ```
124
137
 
125
- Or, if you want to use the default 'articles' table name:
138
+ Or, if you want to use the default 'Articles' table name:
126
139
 
127
140
  ```ruby
128
- AirtableSync::CreateRecordJob.perform_now('articles', 1)
141
+ AirtableSync::CreateRecordJob.perform_now('articles', 1) # table_name defaults to 'Articles'
129
142
  ```
130
143
 
131
144
  ### Run the initial sync
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AirtableSync
4
- VERSION = '1.0.1'
4
+ VERSION = '1.1.0'
5
5
  end
data/lib/airtable_sync.rb CHANGED
@@ -7,9 +7,3 @@ require 'airrecord'
7
7
 
8
8
  module AirtableSync
9
9
  end
10
-
11
- module Airrecord
12
- class Client
13
- def escape(*args) = ERB::Util.url_encode(*args)
14
- end
15
- end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airtable_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viktor
@@ -10,20 +10,6 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2023-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: airrecord
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rails
29
15
  requirement: !ruby/object:Gem::Requirement