nylas 4.6.2 → 4.6.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25e0ba2a96bed5ddf666a1dfd4ca590039b555d4e3917ec2c9a5b24bb2b97c1a
4
- data.tar.gz: e8f459d8ce121e5fbf26ecfac41836f173cb55eed5423f883bb3ce3f5092ae1f
3
+ metadata.gz: 6dd52077bca505902f8fe016a103318a1c426f74f01235a36c27a2463478f101
4
+ data.tar.gz: 91f2addf66e656561881e721402955080f6e040536c3168737f7b62a4b74a9dd
5
5
  SHA512:
6
- metadata.gz: 3c4df432759f47064f5e1601cfc70a36d6bf80551df7a067d74766be2fba1a048a6af5d222f2b1a25b356f579d110e036d1155d2351fc8fa7cf7e6bdaa19fa56
7
- data.tar.gz: 66f9f88677d6d3893fa4dc35742e8d05457bcd69a2d6b94b9afe8bff8cf40c4eb80d30edd4813d8d82431fdc00dced2223f24a73513178617704ddc081e33f0d
6
+ metadata.gz: ed82717d82cdc4b5fed03a09e7ee1553ba16071e4603b8cedce2518871fc44e2b34c8bd0ce5d9e077bb492a1d216de577264da104014c75e9964b44f7a238e52
7
+ data.tar.gz: be58aff204cad1ce196f8fbeb766708d407d135a8247c484292a5a16fd821119727d21ded457b2b80650b58fc9c70d2a07c38dfc4beea94dc143454bc9377136
data/lib/nylas.rb CHANGED
@@ -3,6 +3,21 @@
3
3
  require "json"
4
4
  require "rest-client"
5
5
 
6
+ # BUGFIX
7
+ # See https://github.com/sparklemotion/http-cookie/issues/27
8
+ # and https://github.com/sparklemotion/http-cookie/issues/6
9
+ #
10
+ # CookieJar uses unsafe class caching for dynamically loading cookie jars
11
+ # If 2 rest-client instances are instantiated at the same time, (in threads)
12
+ # non-deterministic behaviour can occur whereby the Hash cookie jar isn't
13
+ # properly loaded and cached.
14
+ # Forcing an instantiation of the jar onload will force the CookieJar to load
15
+ # before the system has a chance to spawn any threads.
16
+ # Note this should technically be fixed in rest-client itself however that
17
+ # library appears to be stagnant so we're forced to fix it here
18
+ # This object should get GC'd as it's not referenced by anything
19
+ HTTP::CookieJar.new
20
+
6
21
  require "ostruct"
7
22
  require "forwardable"
8
23
 
@@ -36,10 +51,13 @@ require_relative "nylas/timespan"
36
51
  require_relative "nylas/web_page"
37
52
  require_relative "nylas/nylas_date"
38
53
  require_relative "nylas/when"
54
+ require_relative "nylas/free_busy"
55
+ require_relative "nylas/time_slot"
39
56
 
40
57
  # Custom collection types
41
58
  require_relative "nylas/search_collection"
42
59
  require_relative "nylas/deltas_collection"
60
+ require_relative "nylas/free_busy_collection"
43
61
 
44
62
  # Models supported by the API
45
63
  require_relative "nylas/account"
@@ -89,4 +107,5 @@ module Nylas
89
107
  Types.registry[:nylas_date] = NylasDateType.new
90
108
  Types.registry[:contact_group] = Types::ModelType.new(model: ContactGroup)
91
109
  Types.registry[:when] = Types::ModelType.new(model: When)
110
+ Types.registry[:time_slot] = Types::ModelType.new(model: TimeSlot)
92
111
  end
data/lib/nylas/account.rb CHANGED
@@ -12,6 +12,7 @@ module Nylas
12
12
  attribute :account_id, :string
13
13
  attribute :billing_state, :string
14
14
  attribute :sync_state, :string
15
+ attribute :provider, :string
15
16
 
16
17
  attribute :email, :string
17
18
  attribute :trial, :boolean
data/lib/nylas/api.rb CHANGED
@@ -4,6 +4,7 @@ module Nylas
4
4
  # Methods to retrieve data from the Nylas API as Ruby objects
5
5
  class API
6
6
  attr_accessor :client
7
+
7
8
  extend Forwardable
8
9
  def_delegators :client, :execute, :get, :post, :put, :delete, :app_id
9
10
 
@@ -149,6 +150,15 @@ module Nylas
149
150
  @webhooks ||= Collection.new(model: Webhook, api: as(client.app_secret))
150
151
  end
151
152
 
153
+ def free_busy(emails:, start_time:, end_time:)
154
+ FreeBusyCollection.new(
155
+ api: self,
156
+ emails: emails,
157
+ start_time: start_time.to_i,
158
+ end_time: end_time.to_i
159
+ )
160
+ end
161
+
152
162
  private
153
163
 
154
164
  def prevent_calling_if_missing_access_token(method_name)
@@ -4,6 +4,7 @@ module Nylas
4
4
  # An enumerable for working with index and search endpoints
5
5
  class Collection
6
6
  attr_accessor :model, :api, :constraints
7
+
7
8
  extend Forwardable
8
9
  def_delegators :each, :map, :select, :reject, :to_a, :take
9
10
  def_delegators :to_a, :first, :last, :[]
@@ -20,7 +21,7 @@ module Nylas
20
21
  end
21
22
 
22
23
  def create(**attributes)
23
- instance = model.new(attributes.merge(api: api))
24
+ instance = model.new(**attributes.merge(api: api))
24
25
  instance.save
25
26
  instance
26
27
  end
@@ -68,7 +69,7 @@ module Nylas
68
69
  return enum_for(:each) unless block_given?
69
70
 
70
71
  execute.each do |result|
71
- yield(model.new(result.merge(api: api)))
72
+ yield(model.new(**result.merge(api: api)))
72
73
  end
73
74
  end
74
75
 
@@ -118,7 +119,7 @@ module Nylas
118
119
  end
119
120
 
120
121
  def find_raw(id)
121
- api.execute(to_be_executed.merge(path: "#{resources_path}/#{id}")).to_s
122
+ api.execute(**to_be_executed.merge(path: "#{resources_path}/#{id}")).to_s
122
123
  end
123
124
 
124
125
  def resources_path
@@ -126,9 +127,13 @@ module Nylas
126
127
  end
127
128
 
128
129
  def find_model(id)
129
- instance = model.from_hash({ id: id }, api: api)
130
- instance.reload
131
- instance
130
+ response = api.execute(
131
+ **to_be_executed.merge(
132
+ path: "#{resources_path}/#{id}",
133
+ query: {}
134
+ )
135
+ )
136
+ model.from_hash(response, api: api)
132
137
  end
133
138
 
134
139
  # @return [Hash] Specification for request to be passed to {API#execute}
@@ -140,7 +145,7 @@ module Nylas
140
145
  # Retrieves the data from the API for the particular constraints
141
146
  # @return [Hash,Array]
142
147
  def execute
143
- api.execute(to_be_executed)
148
+ api.execute(**to_be_executed)
144
149
  end
145
150
  end
146
151
  end
@@ -4,6 +4,7 @@ module Nylas
4
4
  # The constraints a particular GET request will include in their query params
5
5
  class Constraints
6
6
  attr_accessor :where, :limit, :offset, :view, :per_page, :accept
7
+
7
8
  def initialize(where: {}, limit: nil, offset: 0, view: nil, per_page: 100, accept: "application/json")
8
9
  self.where = where
9
10
  self.limit = limit
@@ -4,6 +4,7 @@ module Nylas
4
4
  # Special collection for delta objects
5
5
  class DeltasCollection < Collection
6
6
  attr_accessor :deltas
7
+
7
8
  extend Forwardable
8
9
  def_delegators :execute, :cursor_start, :cursor_end,
9
10
  :count, :each, :to_h, :to_a, :empty?
@@ -33,7 +34,7 @@ module Nylas
33
34
  # Retrieves the data from the API for the particular constraints
34
35
  # @return [Detlas]
35
36
  def execute
36
- self.deltas ||= Deltas.new(api.execute(to_be_executed))
37
+ self.deltas ||= Deltas.new(**api.execute(**to_be_executed))
37
38
  end
38
39
  end
39
40
  end
data/lib/nylas/draft.rb CHANGED
@@ -33,9 +33,13 @@ module Nylas
33
33
  attribute :folder, :folder
34
34
  has_n_of_attribute :labels, :label
35
35
 
36
+ attribute :tracking, :message_tracking
37
+
36
38
  transfer :api, to: %i[events files folder labels]
37
39
 
38
40
  def send!
41
+ return execute(method: :post, path: "/send", payload: to_json) if tracking
42
+
39
43
  save
40
44
  execute(method: :post, path: "/send", payload: JSON.dump(draft_id: id, version: version))
41
45
  end
data/lib/nylas/errors.rb CHANGED
@@ -14,6 +14,8 @@ module Nylas
14
14
  class ModelNotUpdatableError < ModelActionError; end
15
15
  class ModelNotDestroyableError < ModelActionError; end
16
16
 
17
+ class JsonParseError < Error; end
18
+
17
19
  # Raised when attempting to set a field that is not on a model with mass assignment
18
20
  class ModelMissingFieldError < ModelActionError
19
21
  def initialize(field, model)
@@ -48,6 +50,10 @@ module Nylas
48
50
  ResourceNotFound = Class.new(APIError)
49
51
  MethodNotAllowed = Class.new(APIError)
50
52
  InvalidRequest = Class.new(APIError)
53
+ UnauthorizedRequest = Class.new(APIError)
54
+ ResourceRemoved = Class.new(APIError)
55
+ TeapotError = Class.new(APIError)
56
+ RequestTimedOut = Class.new(APIError)
51
57
  MessageRejected = Class.new(APIError)
52
58
  SendingQuotaExceeded = Class.new(APIError)
53
59
  ServiceUnavailable = Class.new(APIError)
data/lib/nylas/event.rb CHANGED
@@ -29,6 +29,8 @@ module Nylas
29
29
  attribute :when, :when
30
30
  attribute :original_start_time, :unix_timestamp
31
31
 
32
+ attr_accessor :notify_participants
33
+
32
34
  def busy?
33
35
  busy
34
36
  end
@@ -42,5 +44,17 @@ module Nylas
42
44
  event_id: id, account_id: account_id)
43
45
  rsvp.save
44
46
  end
47
+
48
+ private
49
+
50
+ def query_params
51
+ if notify_participants.nil?
52
+ {}
53
+ else
54
+ {
55
+ notify_participants: notify_participants
56
+ }
57
+ end
58
+ end
45
59
  end
46
60
  end
data/lib/nylas/file.rb CHANGED
@@ -18,8 +18,10 @@ module Nylas
18
18
  attribute :content_type, :string
19
19
  attribute :filename, :string
20
20
  attribute :size, :integer
21
+ attribute :content_disposition, :string
21
22
 
22
23
  attr_accessor :file
24
+
23
25
  # Downloads and caches a local copy of the file.
24
26
  # @return [Tempfile] - Local copy of the file
25
27
  def download
@@ -56,7 +58,9 @@ module Nylas
56
58
  def retrieve_file
57
59
  response = api.get(path: "#{resource_path}/download")
58
60
  filename = response.headers.fetch(:content_disposition, "").gsub("attachment; filename=", "")
59
- temp_file = Tempfile.new(filename, encoding: "ascii-8bit")
61
+ # The returned filename can be longer than 256 chars which isn't supported by rb_sysopen.
62
+ # 128 chars here is more than enough given that TempFile ensure the filename will be unique.
63
+ temp_file = Tempfile.new(filename[0..127], encoding: "ascii-8bit")
60
64
  temp_file.write(response.body)
61
65
  temp_file.seek(0)
62
66
  temp_file
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nylas
4
+ # Query free/busy information for a calendar during a certain time period
5
+ # @see https://docs.nylas.com/reference#calendars-free-busy
6
+ class FreeBusy
7
+ include Model::Attributable
8
+
9
+ attribute :email, :string
10
+ attribute :object, :string
11
+ has_n_of_attribute :time_slots, :time_slot
12
+ end
13
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nylas
4
+ # Helper to get and build `FreeBusy` objects
5
+ class FreeBusyCollection
6
+ extend Forwardable
7
+ def_delegators :each, :map, :select, :reject, :to_a, :take
8
+ def_delegators :to_a, :first, :last, :[]
9
+
10
+ def initialize(emails:, start_time:, end_time:, api:)
11
+ @api = api
12
+ @emails = emails
13
+ @start_time = start_time
14
+ @end_time = end_time
15
+ end
16
+
17
+ def each
18
+ return enum_for(:each) unless block_given?
19
+
20
+ execute.each do |result|
21
+ yield(FreeBusy.new(**result))
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ attr_reader :api, :emails, :start_time, :end_time
28
+
29
+ PATH = "/calendars/free-busy"
30
+ private_constant :PATH
31
+
32
+ def execute
33
+ api.execute(
34
+ method: :post,
35
+ path: PATH,
36
+ payload: payload
37
+ )
38
+ end
39
+
40
+ def payload
41
+ JSON.dump(
42
+ emails: emails,
43
+ start_time: start_time,
44
+ end_time: end_time
45
+ )
46
+ end
47
+ end
48
+ end
@@ -1,20 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nylas
4
+ require "yajl"
5
+
4
6
  # Plain HTTP client that can be used to interact with the Nylas API sans any type casting.
5
7
  class HttpClient # rubocop:disable Metrics/ClassLength
6
8
  HTTP_CODE_TO_EXCEPTIONS = {
7
9
  400 => InvalidRequest,
10
+ 401 => UnauthorizedRequest,
8
11
  402 => MessageRejected,
9
12
  403 => AccessDenied,
10
13
  404 => ResourceNotFound,
11
14
  405 => MethodNotAllowed,
15
+ 410 => ResourceRemoved,
16
+ 418 => TeapotError,
12
17
  422 => MailProviderError,
13
18
  429 => SendingQuotaExceeded,
14
19
  500 => InternalError,
15
20
  501 => EndpointNotYetImplemented,
16
21
  502 => BadGateway,
17
- 503 => ServiceUnavailable
22
+ 503 => ServiceUnavailable,
23
+ 504 => RequestTimedOut
18
24
  }.freeze
19
25
 
20
26
  ENDPOINT_TIMEOUTS = {
@@ -80,7 +86,14 @@ module Nylas
80
86
  timeout: timeout
81
87
  )
82
88
  rest_client_execute(**request) do |response, _request, result|
83
- response = parse_response(response)
89
+ content_type = nil
90
+
91
+ if response.headers && response.headers[:content_type]
92
+ content_type = response.headers[:content_type].downcase
93
+ end
94
+
95
+ response = parse_response(response) if content_type == "application/json"
96
+
84
97
  handle_failed_response(result: result, response: response)
85
98
  response
86
99
  end
@@ -130,9 +143,12 @@ module Nylas
130
143
  end
131
144
 
132
145
  def parse_response(response)
133
- response.is_a?(Enumerable) ? response : JSON.parse(response, symbolize_names: true)
134
- rescue JSON::ParserError
135
- response
146
+ return response if response.is_a?(Enumerable)
147
+
148
+ json = StringIO.new(response)
149
+ Yajl::Parser.new(symbolize_names: true).parse(json)
150
+ rescue Yajl::ParseError
151
+ raise Nylas::JsonParseError
136
152
  end
137
153
  inform_on :parse_response, level: :debug, also_log: { result: true }
138
154
 
data/lib/nylas/logging.rb CHANGED
@@ -1,12 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # We are explicitely choosing to allow clients to use or not use informed at their discretion
4
- # rubocop:disable Lint/HandleExceptions
5
3
  begin
6
4
  require "informed"
7
5
  rescue LoadError
8
6
  end
9
- # rubocop:enable Lint/HandleExceptions
10
7
 
11
8
  module Nylas
12
9
  # Exposes a shared logger for debugging purposes
data/lib/nylas/message.rb CHANGED
@@ -56,7 +56,7 @@ module Nylas
56
56
  allowed_attributes: UPDATABLE_ATTRIBUTES
57
57
  ).check
58
58
 
59
- super(payload)
59
+ super(**payload)
60
60
  end
61
61
 
62
62
  def update_folder(folder_id)
@@ -66,8 +66,26 @@ module Nylas
66
66
  def expanded
67
67
  return self unless headers.nil?
68
68
 
69
- assign(api.execute(method: :get, path: resource_path, query: { view: "expanded" }))
69
+ assign(**api.execute(method: :get, path: resource_path, query: { view: "expanded" }))
70
70
  self
71
71
  end
72
+
73
+ def save_call
74
+ handle_folder
75
+
76
+ execute(
77
+ method: :put,
78
+ payload: attributes.serialize(keys: allowed_keys_for_save),
79
+ path: resource_path
80
+ )
81
+ end
82
+
83
+ def handle_folder
84
+ return if folder.nil?
85
+
86
+ self.folder_id = folder.id if folder_id.nil? && !self.to_h.dig(:folder, :id).nil?
87
+
88
+ self.folder = nil
89
+ end
72
90
  end
73
91
  end
data/lib/nylas/model.rb CHANGED
@@ -39,28 +39,38 @@ module Nylas
39
39
  !id.nil?
40
40
  end
41
41
 
42
- def execute(method:, payload: nil, path:)
43
- api.execute(method: method, payload: payload, path: path)
42
+ def execute(method:, payload: nil, path:, query: {})
43
+ api.execute(method: method, payload: payload, path: path, query: query)
44
44
  end
45
45
 
46
46
  def create
47
47
  raise ModelNotCreatableError, self unless creatable?
48
48
 
49
- execute(method: :post, payload: attributes.serialize, path: resources_path)
49
+ execute(
50
+ method: :post,
51
+ payload: attributes.serialize,
52
+ path: resources_path,
53
+ query: query_params
54
+ )
50
55
  end
51
56
 
52
57
  def update(**data)
53
58
  raise ModelNotUpdatableError, model_class unless updatable?
54
59
 
55
60
  attributes.merge(**data)
56
- execute(method: :put, payload: attributes.serialize(keys: data.keys), path: resource_path)
61
+ execute(
62
+ method: :put,
63
+ payload: attributes.serialize(keys: data.keys),
64
+ path: resource_path,
65
+ query: query_params
66
+ )
57
67
  true
58
68
  rescue Registry::MissingKeyError => e
59
69
  raise ModelMissingFieldError.new(e.key, self)
60
70
  end
61
71
 
62
72
  def reload
63
- assign(execute(method: :get, path: resource_path))
73
+ assign(**execute(method: :get, path: resource_path))
64
74
  true
65
75
  end
66
76
 
@@ -75,7 +85,7 @@ module Nylas
75
85
  def destroy
76
86
  raise ModelNotDestroyableError, self unless destroyable?
77
87
 
78
- execute(method: :delete, path: resource_path)
88
+ execute(method: :delete, path: resource_path, query: query_params)
79
89
  end
80
90
 
81
91
  # @return [String] JSON String of the model.
@@ -99,6 +109,10 @@ module Nylas
99
109
  )
100
110
  end
101
111
 
112
+ def query_params
113
+ {}
114
+ end
115
+
102
116
  # Allows you to narrow in exactly what kind of model you're working with
103
117
  module ClassMethods
104
118
  attr_accessor :raw_mime_type, :creatable, :showable, :filterable, :searchable, :listable, :updatable,
@@ -7,6 +7,7 @@ module Nylas
7
7
  extend Forwardable
8
8
  def_delegators :type, :cast, :serialize
9
9
  attr_accessor :type_name, :exclude_when, :default
10
+
10
11
  def initialize(type_name:, exclude_when:, default:)
11
12
  self.type_name = type_name
12
13
  self.exclude_when = exclude_when
@@ -39,6 +39,7 @@ module Nylas
39
39
  # Methods to call when tweaking Transferable classes
40
40
  module ClassMethods
41
41
  attr_accessor :attribute_recipients
42
+
42
43
  def init_attribute_recipients
43
44
  self.attribute_recipients ||= {}
44
45
  end
@@ -5,6 +5,7 @@ module Nylas
5
5
  # @see https://docs.nylas.com/reference#native-authentication-1
6
6
  class NativeAuthentication
7
7
  attr_accessor :api
8
+
8
9
  def initialize(api:)
9
10
  self.api = api
10
11
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nylas
4
- # Data structure for seending a message via the Nylas API
4
+ # Data structure for sending a message via the Nylas API
5
5
  class NewMessage
6
6
  include Model
7
7
  self.creatable = false
@@ -15,6 +15,7 @@ module Nylas
15
15
  has_n_of_attribute :from, :email_address
16
16
  has_n_of_attribute :cc, :email_address
17
17
  has_n_of_attribute :bcc, :email_address
18
+ has_n_of_attribute :reply_to, :email_address
18
19
 
19
20
  attribute :subject, :string
20
21
  attribute :body, :string
@@ -12,5 +12,6 @@ module Nylas
12
12
  attribute :state, :string
13
13
  attribute :city, :string
14
14
  attribute :country, :string
15
+ attribute :secondary_address, :string
15
16
  end
16
17
  end
@@ -4,6 +4,7 @@ module Nylas
4
4
  # Allows sending of email with nylas from an rfc822 compatible string
5
5
  class RawMessage
6
6
  attr_accessor :api, :mime_compatible_string
7
+
7
8
  def initialize(mime_compatible_string, api:)
8
9
  self.api = api
9
10
  self.mime_compatible_string = mime_compatible_string
@@ -8,6 +8,7 @@ module Nylas
8
8
  # Includes the list of keys in the registry for debug purposes.
9
9
  class MissingKeyError < Error
10
10
  attr_accessor :key
11
+
11
12
  def initialize(key, keys)
12
13
  super("key #{key} not in #{keys}")
13
14
  self.key = key
data/lib/nylas/thread.rb CHANGED
@@ -42,7 +42,7 @@ module Nylas
42
42
  raise ArgumentError, "Cannot update #{unupdatable_attributes} only " \
43
43
  "#{UPDATABLE_ATTRIBUTES} are updatable"
44
44
  end
45
- super(data)
45
+ super(**data)
46
46
  end
47
47
 
48
48
  def update_folder(folder_id)
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nylas
4
+ # Query free/busy information for a calendar during a certain time period
5
+ # @see https://docs.nylas.com/reference#calendars-free-busy
6
+ class TimeSlot
7
+ include Model::Attributable
8
+
9
+ attribute :object, :string
10
+ attribute :status, :string
11
+ attribute :start_time, :unix_timestamp
12
+ attribute :end_time, :unix_timestamp
13
+ end
14
+ end
data/lib/nylas/types.rb CHANGED
@@ -24,6 +24,7 @@ module Nylas
24
24
  # {Model} or Model-like thing.
25
25
  class ModelType
26
26
  attr_accessor :model
27
+
27
28
  def initialize(model:)
28
29
  self.model = model
29
30
  end
@@ -87,6 +88,7 @@ module Nylas
87
88
 
88
89
  def serialize(object)
89
90
  return nil if object.nil?
91
+
90
92
  object.to_i
91
93
  end
92
94
  end
data/lib/nylas/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nylas
4
- VERSION = "4.6.2"
4
+ VERSION = "4.6.7"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nylas
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.2
4
+ version: 4.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nylas, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-09 00:00:00.000000000 Z
11
+ date: 2021-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.3.0
27
- - !ruby/object:Gem::Dependency
28
- name: jeweler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.1'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.1'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: yard
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -240,7 +226,7 @@ dependencies:
240
226
  requirements:
241
227
  - - ">="
242
228
  - !ruby/object:Gem::Version
243
- version: '1.6'
229
+ version: '2.0'
244
230
  - - "<"
245
231
  - !ruby/object:Gem::Version
246
232
  version: '3.0'
@@ -250,10 +236,30 @@ dependencies:
250
236
  requirements:
251
237
  - - ">="
252
238
  - !ruby/object:Gem::Version
253
- version: '1.6'
239
+ version: '2.0'
254
240
  - - "<"
255
241
  - !ruby/object:Gem::Version
256
242
  version: '3.0'
243
+ - !ruby/object:Gem::Dependency
244
+ name: yajl-ruby
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '1.2'
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 1.2.1
253
+ type: :runtime
254
+ prerelease: false
255
+ version_requirements: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: '1.2'
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: 1.2.1
257
263
  description: Gem for interacting with the Nylas API.
258
264
  email: support@nylas.com
259
265
  executables: []
@@ -280,6 +286,8 @@ files:
280
286
  - lib/nylas/file.rb
281
287
  - lib/nylas/filter_attributes.rb
282
288
  - lib/nylas/folder.rb
289
+ - lib/nylas/free_busy.rb
290
+ - lib/nylas/free_busy_collection.rb
283
291
  - lib/nylas/http_client.rb
284
292
  - lib/nylas/im_address.rb
285
293
  - lib/nylas/label.rb
@@ -305,13 +313,14 @@ files:
305
313
  - lib/nylas/rsvp.rb
306
314
  - lib/nylas/search_collection.rb
307
315
  - lib/nylas/thread.rb
316
+ - lib/nylas/time_slot.rb
308
317
  - lib/nylas/timespan.rb
309
318
  - lib/nylas/types.rb
310
319
  - lib/nylas/version.rb
311
320
  - lib/nylas/web_page.rb
312
321
  - lib/nylas/webhook.rb
313
322
  - lib/nylas/when.rb
314
- homepage:
323
+ homepage:
315
324
  licenses:
316
325
  - MIT
317
326
  metadata:
@@ -321,7 +330,7 @@ metadata:
321
330
  homepage_uri: https://www.nylas.com
322
331
  source_code_uri: https://github.com/nylas/nylas-ruby
323
332
  wiki_uri: https://github.com/nylas/nylas-ruby/wiki
324
- post_install_message:
333
+ post_install_message:
325
334
  rdoc_options: []
326
335
  require_paths:
327
336
  - lib
@@ -336,8 +345,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
336
345
  - !ruby/object:Gem::Version
337
346
  version: '0'
338
347
  requirements: []
339
- rubygems_version: 3.0.8
340
- signing_key:
348
+ rubygems_version: 3.1.2
349
+ signing_key:
341
350
  specification_version: 4
342
351
  summary: Gem for interacting with the Nylas API
343
352
  test_files: []