bookingsync_portal 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +123 -2
  3. data/app/assets/javascripts/bookingsync_portal/admin/handle_remote_errors.js.coffee +1 -1
  4. data/app/models/bookingsync_portal/account.rb +5 -0
  5. data/app/models/bookingsync_portal/photo.rb +8 -0
  6. data/app/models/bookingsync_portal/rate.rb +6 -0
  7. data/app/models/bookingsync_portal/rental.rb +8 -2
  8. data/app/resources/bookingsync_portal/admin_api/connection_resource.rb +1 -1
  9. data/app/resources/bookingsync_portal/admin_api/remote_account_resource.rb +1 -1
  10. data/app/resources/bookingsync_portal/admin_api/remote_rental_resource.rb +0 -2
  11. data/app/resources/bookingsync_portal/admin_api/rental_resource.rb +0 -2
  12. data/app/views/bookingsync_portal/admin/rentals/_remote_rental.html.erb +1 -1
  13. data/app/views/bookingsync_portal/admin/rentals/index.html.erb +1 -1
  14. data/config/locales/en.yml +1 -0
  15. data/db/migrate/20150222172825_create_accounts.rb +6 -2
  16. data/db/migrate/20150222173413_create_rentals.rb +1 -1
  17. data/db/migrate/20150222173711_create_remote_accounts.rb +1 -1
  18. data/db/migrate/20150222174023_create_remote_rentals.rb +1 -1
  19. data/db/migrate/20150222174234_create_connections.rb +2 -1
  20. data/db/migrate/20150520134912_create_photos.rb +13 -0
  21. data/db/migrate/20150521091056_create_rates.rb +12 -0
  22. data/lib/bookingsync_portal.rb +9 -1
  23. data/lib/bookingsync_portal/version.rb +1 -1
  24. data/lib/generators/bookingsync_portal/install_generator.rb +10 -3
  25. data/lib/generators/templates/{bookingsync_portal.rb → initializers/bookingsync_portal.rb} +11 -6
  26. data/lib/generators/templates/models/account.rb +14 -0
  27. data/lib/generators/templates/models/connection.rb +2 -0
  28. data/lib/generators/templates/models/photo.rb +4 -0
  29. data/lib/generators/templates/models/rate.rb +3 -0
  30. data/lib/generators/templates/models/remote_account.rb +6 -0
  31. data/lib/generators/templates/models/remote_rental.rb +6 -0
  32. data/lib/generators/templates/models/rental.rb +6 -0
  33. metadata +23 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a480ce2459ec1089601197319ee60201436263d
4
- data.tar.gz: e282f8169d93c61ae942716c5fb2bb31a9790bc7
3
+ metadata.gz: 7bce44a09e365af14bee6025bdbaf505b5cbaa3e
4
+ data.tar.gz: 672dc73f92f93d0d3e0d9aa18199b73b201d7ded
5
5
  SHA512:
6
- metadata.gz: 695f61dd565e424616ba9f16792146fea0212de4185b512f9916a52a6c0bc7afd8b3bb16834b2d2efcfd0de81d19d0ab5e8fefe09beb367b63d3953be5dfe1a9
7
- data.tar.gz: 529f1ee3232b275d0585bab5ed511a1d26093d358f43fa22ef7bcd4e7e6fe785c5946cb0fbea2435b266ddeb7e32f1b4361e38390f12b990415d4acc63610f04
6
+ metadata.gz: cb08b602aef04800fd3608c2db757bb2b8d5b8aa0ae62611d4bfe66c4926638511476a4401ebe22684ed15b5c0b434ccab5d8f45f94990038b4d0acfbf44b749
7
+ data.tar.gz: d0026be5f43c6fe11bd6b240f36f719ef0eecc243468a116433e3b23e179dbe16401dc70cb33d61edb3678913b3bb957be8b1c0049f3b73767d847fccb8d54b9
data/README.md CHANGED
@@ -1,8 +1,85 @@
1
+ [![Code Climate](https://codeclimate.com/github/BookingSync/bookingsync_portal/badges/gpa.svg)](https://codeclimate.com/github/BookingSync/bookingsync_portal)
2
+ [![Build Status](https://travis-ci.org/BookingSync/bookingsync_portal.svg?branch=master)](https://travis-ci.org/BookingSync/bookingsync_portal)
3
+
1
4
  # BookingsyncPortal
2
5
 
3
- * A common base for creating BookingSync portal applications.
6
+ A Rails engine to simplify building BookingSync Portal Applications.
7
+
8
+ ## Requirements
9
+
10
+ This engine requires Rails `>= 4.0.0` and Ruby `>= 2.0.0`.
11
+
12
+ ## Documentation
13
+
14
+ [API documentation is available at rdoc.info](http://rdoc.info/github/BookingSync/bookingsync_portal/master/frames).
15
+
16
+ ## Installation
17
+
18
+ BookingSync Portal works with Rails 4.0 onwards and Ruby 2.0 onwards. To get started, add it to your Gemfile with:
19
+
20
+ ```ruby
21
+ gem 'bookingsync_portal'
22
+ ```
23
+
24
+ Then bundle install:
25
+
26
+ ```ruby
27
+ bundle install
28
+ ```
29
+
30
+ ### Add routes
31
+
32
+ BookingSync Authorization routes need to be mounted inside you apps `routes.rb`:
33
+
34
+ ```ruby
35
+ mount BookingSync::Engine => '/'
36
+ ```
37
+
38
+ This will add the following routes:
39
+
40
+ * `/auth/bookingsync/callback`
41
+ * `/auth/failure`
42
+ * `/signout`
43
+
44
+ as well as BookingSync Portal controllers routes:
45
+
46
+ ```ruby
47
+ mount BookingsyncPortal::Engine => '/'
48
+ ```
49
+
50
+ ### Migrations
51
+
52
+ BookingSync Portal provide migrations for the most common models:
53
+ * `Account`: BookingSync accounts,
54
+ * `Connection`: connection between `rentals` and `remote_rentals`,
55
+ * `Photo`: BookingSync rentals' photos,
56
+ * `Rate`: BookingSync rentals' rates,
57
+ * `RemoteAccount`: Portal accounts,
58
+ * `RemoteRental`: Portal rentals,
59
+ * `Rental`: BookingSync rentals,
60
+
61
+ You can copy the migrations file to your application by running:
62
+
63
+ ```console
64
+ rake bookingsync_portal:install:migrations
65
+ ```
66
+
67
+ then run the migration:
68
+
69
+ ```console
70
+ rake db:migrate
71
+ ```
4
72
 
5
- # Setup
73
+ ### Add initializer and default models
74
+
75
+ This will install a configuration file in `config/initializers/bookingsync_portal.rb` as well as creating default models:
76
+
77
+ ```console
78
+ rails g bookingsync_portal:install
79
+ ```
80
+
81
+
82
+ ### Assets
6
83
 
7
84
  You will need to install the assets for each namespace:
8
85
 
@@ -45,3 +122,47 @@ in `/app/assets/javascripts/admin/application.css.scss`:
45
122
  */
46
123
 
47
124
  ```
125
+
126
+
127
+ _Note: When saving new token, this gem uses a separate thread with new db connection to ensure token save (in case of a rollback in the main transaction). To make room for the new connections, it is recommended to increase db `pool` size by 2-3._
128
+
129
+ ## Configuration
130
+
131
+ The engine is configured by the following ENV variables:
132
+
133
+ * `BOOKINGSYNC_URL` - the url of the website, should be `https://www.bookingsync.com`
134
+ * `BOOKINGSYNC_APP_ID` - BookingSync Application's Client ID
135
+ * `BOOKINGSYNC_APP_SECRET` - BookingSync Application's Client Secret
136
+ * `BOOKINGSYNC_VERIFY_SSL` - Verify SSL (available only in development or test). Default to false
137
+ * `BOOKINGSYNC_SCOPE` - Space separated list of required scopes. Defaults to nil, which means the public scope.
138
+
139
+ You might want to use [dotenv-rails](https://github.com/bkeepers/dotenv)
140
+ to make ENV variables management easy.
141
+
142
+ ## Testing
143
+
144
+ ### RSpec
145
+
146
+ We do provide some helper for RSpec users, you can include them in your `spec/rails_helper.rb` (before `spec/support` inclusion):
147
+ ```
148
+ require 'bookingsync_application/spec_helper'
149
+ ```
150
+
151
+ ### VCR
152
+
153
+ We recommend a VCR setup inspired from the following configuration. It will mask authorization tokens from your fixtures:
154
+
155
+ ```ruby
156
+ require 'vcr'
157
+
158
+ VCR.configure do |config|
159
+ config.cassette_library_dir = 'spec/fixtures/cassettes'
160
+ config.hook_into :webmock
161
+ config.configure_rspec_metadata!
162
+ config.filter_sensitive_data('BOOKINGSYNC_OAUTH_ACCESS_TOKEN') do
163
+ ENV['BOOKINGSYNC_OAUTH_ACCESS_TOKEN']
164
+ end
165
+ # Uncomment if using codeclimate
166
+ # config.ignore_hosts 'codeclimate.com'
167
+ end
168
+ ```
@@ -1,3 +1,3 @@
1
1
  $ ->
2
- $(document).on "ajax:error", "[data-remote]", (e, xhr) ->
2
+ $(document).ajaxError (e, xhr) ->
3
3
  location.reload() if xhr.status == 401
@@ -7,4 +7,9 @@ class BookingsyncPortal::Account < ActiveRecord::Base
7
7
  has_many :remote_rentals, class_name: BookingsyncPortal.remote_rental_model, through: :remote_accounts
8
8
  has_many :rentals, class_name: BookingsyncPortal.rental_model, dependent: :destroy
9
9
  has_many :connections, class_name: BookingsyncPortal.connection_model, through: :rentals
10
+
11
+ # Used to synchronize accounts using `Account.synchronize(remove: true)`
12
+ def self.api
13
+ BookingSync::API::Client.new(BookingSync::Engine.application_token.token)
14
+ end
10
15
  end
@@ -0,0 +1,8 @@
1
+ class BookingsyncPortal::Photo < ActiveRecord::Base
2
+ self.table_name = 'photos'
3
+
4
+ belongs_to :rental
5
+ has_one :account, through: :rental
6
+
7
+ scope :ordered, -> { order position: :asc }
8
+ end
@@ -0,0 +1,6 @@
1
+ class BookingsyncPortal::Rate < ActiveRecord::Base
2
+ self.table_name = 'rates'
3
+
4
+ belongs_to :rental
5
+ has_one :account, through: :rental
6
+ end
@@ -2,8 +2,10 @@ class BookingsyncPortal::Rental < ActiveRecord::Base
2
2
  self.table_name = 'rentals'
3
3
 
4
4
  belongs_to :account, class_name: BookingsyncPortal.account_model
5
- has_one :connection, class_name: BookingsyncPortal.connection_model, dependent: :destroy
6
- has_one :remote_rental, class_name: BookingsyncPortal.remote_rental_model, through: :connection
5
+ has_one :connection, class_name: BookingsyncPortal.connection_model, dependent: :destroy
6
+ has_one :remote_rental, class_name: BookingsyncPortal.remote_rental_model, through: :connection
7
+ has_many :photos, class_name: BookingsyncPortal.photo_model, dependent: :destroy
8
+ has_many :rates, class_name: BookingsyncPortal.rate_model, dependent: :destroy
7
9
 
8
10
  validates :synced_id, uniqueness: true, presence: true
9
11
 
@@ -15,4 +17,8 @@ class BookingsyncPortal::Rental < ActiveRecord::Base
15
17
  def connected?
16
18
  remote_rental.present?
17
19
  end
20
+
21
+ def ordered_photos
22
+ photos.ordered
23
+ end
18
24
  end
@@ -3,7 +3,7 @@ module BookingsyncPortal
3
3
  class ConnectionResource < JSONAPI::Resource
4
4
  model_name BookingsyncPortal.connection_model
5
5
 
6
- attributes :id, :rental_id, :remote_rental_id
6
+ attributes :rental_id, :remote_rental_id
7
7
 
8
8
  def self.records(options = {})
9
9
  context = options[:context]
@@ -3,7 +3,7 @@ module BookingsyncPortal
3
3
  class RemoteAccountResource < JSONAPI::Resource
4
4
  model_name BookingsyncPortal.remote_account_model
5
5
 
6
- attributes :id, :uid
6
+ attributes :uid
7
7
 
8
8
  def self.records(options = {})
9
9
  context = options[:context]
@@ -3,8 +3,6 @@ module BookingsyncPortal
3
3
  class RemoteRentalResource < JSONAPI::Resource
4
4
  model_name BookingsyncPortal.remote_rental_model
5
5
 
6
- attributes :id
7
-
8
6
  def self.records(options = {})
9
7
  context = options[:context]
10
8
  context[:current_account].remote_rentals
@@ -3,8 +3,6 @@ module BookingsyncPortal
3
3
  class RentalResource < JSONAPI::Resource
4
4
  model_name BookingsyncPortal.rental_model
5
5
 
6
- attributes :id
7
-
8
6
  def self.records(options = {})
9
7
  context = options[:context]
10
8
  context[:current_account].rentals
@@ -2,7 +2,7 @@
2
2
  data-uid="<%= remote_rental.uid %>">
3
3
  <div class="panel-heading" title="<%= RemoteRental.human_attribute_name(:uid) %>
4
4
  <%= remote_rental.uid %>">
5
- <%= remote_rental.remote_account.uid%>:
5
+ <%= remote_rental.remote_account.uid %>:
6
6
  <%= remote_rental.name %>
7
7
  </div>
8
8
  <div class="panel-body">
@@ -6,7 +6,7 @@
6
6
  <div class="rentals-list-scroll">
7
7
  <%- if @visible_rentals_count == 0 -%>
8
8
  <div class="lead text-center well">
9
- <p><%= t('.no_published_rentals_html', id: current_account.uid) %></p>
9
+ <p><%= t('.no_published_rentals_html', id: current_account.synced_id) %></p>
10
10
  </div>
11
11
  <%- elsif @not_connected_rentals.count > 0 -%>
12
12
  <% @not_connected_rentals.each do |rental| %>
@@ -42,6 +42,7 @@ en:
42
42
  other: '<strong>%{count}</strong> People'
43
43
  surface_html:
44
44
  zero: ''
45
+ one: '<span>Surface</span> <strong>%{count}m²</strong>'
45
46
  other: '<span>Surface</span> <strong>%{count}m²</strong>'
46
47
  no_name: Unnamed rental
47
48
  remote_rental:
@@ -2,12 +2,16 @@ class CreateAccounts < ActiveRecord::Migration
2
2
  def change
3
3
  create_table :accounts do |t|
4
4
  t.string :provider
5
- t.integer :uid, index: true
5
+ t.integer :synced_id, index: true
6
6
  t.string :name
7
7
  t.string :oauth_access_token
8
8
  t.string :oauth_refresh_token
9
9
  t.datetime :oauth_expires_at
10
- t.timestamps
10
+ t.text :synced_data
11
+ t.datetime :synced_all_at
12
+ t.string :email
13
+
14
+ t.timestamps null: false
11
15
  end
12
16
  end
13
17
  end
@@ -8,7 +8,7 @@ class CreateRentals < ActiveRecord::Migration
8
8
  t.integer :position
9
9
  t.datetime :published_at
10
10
 
11
- t.timestamps
11
+ t.timestamps null: false
12
12
  end
13
13
  end
14
14
  end
@@ -4,7 +4,7 @@ class CreateRemoteAccounts < ActiveRecord::Migration
4
4
  t.belongs_to :account, index: true
5
5
  t.integer :uid
6
6
 
7
- t.timestamps
7
+ t.timestamps null: false
8
8
  end
9
9
  end
10
10
  end
@@ -6,7 +6,7 @@ class CreateRemoteRentals < ActiveRecord::Migration
6
6
  t.text :remote_data
7
7
  t.datetime :synchronized_at
8
8
 
9
- t.timestamps
9
+ t.timestamps null: false
10
10
  end
11
11
  end
12
12
  end
@@ -3,7 +3,8 @@ class CreateConnections < ActiveRecord::Migration
3
3
  create_table :connections do |t|
4
4
  t.belongs_to :remote_rental, index: true
5
5
  t.belongs_to :rental, index: true
6
- t.timestamps
6
+
7
+ t.timestamps null: false
7
8
  end
8
9
  end
9
10
  end
@@ -0,0 +1,13 @@
1
+ class CreatePhotos < ActiveRecord::Migration
2
+ def change
3
+ create_table :photos do |t|
4
+ t.belongs_to :rental, index: true
5
+ t.integer :synced_id, index: true
6
+ t.text :synced_data
7
+ t.datetime :synced_all_at
8
+ t.integer :position
9
+
10
+ t.timestamps null: false
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ class CreateRates < ActiveRecord::Migration
2
+ def change
3
+ create_table :rates do |t|
4
+ t.belongs_to :rental, index: true
5
+ t.integer :synced_id, index: true
6
+ t.text :synced_data
7
+ t.datetime :synced_all_at
8
+
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+ end
@@ -34,10 +34,18 @@ module BookingsyncPortal
34
34
  mattr_accessor :remote_rental_model
35
35
  @@remote_rental_model = 'BookingsyncPortal::RemoteRental'
36
36
 
37
- # remote rental model class
37
+ # connection model class
38
38
  mattr_accessor :connection_model
39
39
  @@connection_model = 'BookingsyncPortal::Connection'
40
40
 
41
+ # photo model class
42
+ mattr_accessor :photo_model
43
+ @@photo_model = 'BookingsyncPortal::Photo'
44
+
45
+ # rate model class
46
+ mattr_accessor :rate_model
47
+ @@rate_model = 'BookingsyncPortal::Rate'
48
+
41
49
  # account resource class
42
50
  mattr_accessor :account_resource
43
51
  @@account_resource = 'BookingsyncPortal::AdminApi::AccountResource'
@@ -1,3 +1,3 @@
1
1
  module BookingsyncPortal
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -5,11 +5,18 @@ module BookingsyncPortal
5
5
  class InstallGenerator < ::Rails::Generators::Base
6
6
  source_root File.expand_path("../../templates", __FILE__)
7
7
 
8
- desc "Creates a BookingsyncPortal initializer."
8
+ desc "Creates a BookingsyncPortal initializer and default models."
9
9
 
10
10
  def copy_initializer
11
- template "bookingsync_portal.rb", "config/initializers/bookingsync_portal.rb"
11
+ template "initializers/bookingsync_portal.rb", "config/initializers/bookingsync_portal.rb"
12
+ template "models/account.rb", "app/models/account.rb"
13
+ template "models/connection.rb", "app/models/connection.rb"
14
+ template "models/photo.rb", "app/models/photo.rb"
15
+ template "models/rate.rb", "app/models/rate.rb"
16
+ template "models/remote_account.rb", "app/models/remote_account.rb"
17
+ template "models/remote_rental.rb", "app/models/remote_rental.rb"
18
+ template "models/rental.rb", "app/models/rental.rb"
12
19
  end
13
20
  end
14
21
  end
15
- end
22
+ end
@@ -1,19 +1,25 @@
1
1
  # Use this to customize the behaviour of BookingsyncPortal engine and hook up custom synchronization
2
2
  BookingsyncPortal.setup do |config|
3
3
  # customize account model class, can extend BookingsyncPortal::Account
4
- # config.account_model = '::Account'
4
+ config.account_model = '::Account'
5
5
 
6
6
  # customize remote account model class, can extend BookingsyncPortal::RemoteAccount
7
- # config.remote_account_model = '::RemoteAccount'
7
+ config.remote_account_model = '::RemoteAccount'
8
8
 
9
9
  # customize rental model class, can extend BookingsyncPortal::Rental
10
- # config.rental_model = '::Rental'
10
+ config.rental_model = '::Rental'
11
11
 
12
12
  # customize remote_rental model class, can extend BookingsyncPortal::RemoteRental
13
- # config.remote_rental_model = '::RemoteRental'
13
+ config.remote_rental_model = '::RemoteRental'
14
14
 
15
15
  # customize connection model class, can extend BookingsyncPortal::Connection
16
- # config.connection_model = '::Connection'
16
+ config.connection_model = '::Connection'
17
+
18
+ # customize photo model class, can extend BookingsyncPortal::Photo
19
+ config.photo_model = '::Photo'
20
+
21
+ # customize rate model class, can extend BookingsyncPortal::Rate
22
+ config.rate_model = '::Rate'
17
23
 
18
24
  # customize account resource class, can extend BookingsyncPortal::AdminApi::AccountResource
19
25
  # config.account_resource = '::AdminApi::AccountResource'
@@ -43,4 +49,3 @@ BookingsyncPortal.setup do |config|
43
49
  # return false if remote account is not present or not valid
44
50
  end
45
51
  end
46
-
@@ -0,0 +1,14 @@
1
+ class Account < BookingsyncPortal::Account
2
+ synced local_attributes: [:email]
3
+
4
+ # Uncomment to add Rails logger
5
+ # def api
6
+ # @api ||= BookingSync::Engine::APIClient.new(token.token, logger: Rails.logger, account: self)
7
+ # end
8
+
9
+ # Uncomment to add Rails logger
10
+ # # Used to synchronize accounts using `Account.synchronize(remove: true)`
11
+ # def self.api
12
+ # BookingSync::API::Client.new(BookingSync::Engine.application_token.token, logger: Rails.logger)
13
+ # end
14
+ end
@@ -0,0 +1,2 @@
1
+ class Connection < BookingsyncPortal::Connection
2
+ end
@@ -0,0 +1,4 @@
1
+ class Photo < BookingsyncPortal::Photo
2
+ synced local_attributes: [:position], delegate_attributes: [:large_url, :thumb_url],
3
+ remove: true
4
+ end
@@ -0,0 +1,3 @@
1
+ class Rate < BookingsyncPortal::Rate
2
+ synced remove: true
3
+ end
@@ -0,0 +1,6 @@
1
+ class RemoteAccount < BookingsyncPortal::RemoteAccount
2
+ # Returns the name of this portal account. Should be easy to identify.
3
+ def name
4
+ uid
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class RemoteRental < BookingsyncPortal::RemoteRental
2
+ # Returns the name of this portal rental. Should be easy to identify.
3
+ def name
4
+ uid
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class Rental < BookingsyncPortal::Rental
2
+ synced associations: [:photos, :rates],
3
+ local_attributes: [:position, :published_at],
4
+ include: [:availability],
5
+ delegate_attributes: [:name, :sleeps, :sleeps_max, :bedrooms_count, :bathrooms_count, :surface]
6
+ end
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookingsync_portal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Marciniak
8
+ - Sebastien Grosjean
9
+ - Artur Krzeminski Freda
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2015-05-28 00:00:00.000000000 Z
13
+ date: 2015-07-31 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: rails
@@ -44,14 +46,14 @@ dependencies:
44
46
  requirements:
45
47
  - - "~>"
46
48
  - !ruby/object:Gem::Version
47
- version: 0.2.0
49
+ version: 0.3.1
48
50
  type: :runtime
49
51
  prerelease: false
50
52
  version_requirements: !ruby/object:Gem::Requirement
51
53
  requirements:
52
54
  - - "~>"
53
55
  - !ruby/object:Gem::Version
54
- version: 0.2.0
56
+ version: 0.3.1
55
57
  - !ruby/object:Gem::Dependency
56
58
  name: jquery-rails
57
59
  requirement: !ruby/object:Gem::Requirement
@@ -304,9 +306,11 @@ dependencies:
304
306
  - - ">="
305
307
  - !ruby/object:Gem::Version
306
308
  version: '0'
307
- description: ''
309
+ description: A common base for creating BookingSync portal applications.
308
310
  email:
309
311
  - mandaryyyn@gmail.com
312
+ - dev@bookingsync.com
313
+ - artur@bookingsync.com
310
314
  executables: []
311
315
  extensions: []
312
316
  extra_rdoc_files: []
@@ -333,6 +337,8 @@ files:
333
337
  - app/helpers/bookingsync_portal/admin/rentals_helper.rb
334
338
  - app/models/bookingsync_portal/account.rb
335
339
  - app/models/bookingsync_portal/connection.rb
340
+ - app/models/bookingsync_portal/photo.rb
341
+ - app/models/bookingsync_portal/rate.rb
336
342
  - app/models/bookingsync_portal/remote_account.rb
337
343
  - app/models/bookingsync_portal/remote_rental.rb
338
344
  - app/models/bookingsync_portal/rental.rb
@@ -358,12 +364,21 @@ files:
358
364
  - db/migrate/20150222173711_create_remote_accounts.rb
359
365
  - db/migrate/20150222174023_create_remote_rentals.rb
360
366
  - db/migrate/20150222174234_create_connections.rb
367
+ - db/migrate/20150520134912_create_photos.rb
368
+ - db/migrate/20150521091056_create_rates.rb
361
369
  - lib/bookingsync_portal.rb
362
370
  - lib/bookingsync_portal/engine.rb
363
371
  - lib/bookingsync_portal/mash_serializer.rb
364
372
  - lib/bookingsync_portal/version.rb
365
373
  - lib/generators/bookingsync_portal/install_generator.rb
366
- - lib/generators/templates/bookingsync_portal.rb
374
+ - lib/generators/templates/initializers/bookingsync_portal.rb
375
+ - lib/generators/templates/models/account.rb
376
+ - lib/generators/templates/models/connection.rb
377
+ - lib/generators/templates/models/photo.rb
378
+ - lib/generators/templates/models/rate.rb
379
+ - lib/generators/templates/models/remote_account.rb
380
+ - lib/generators/templates/models/remote_rental.rb
381
+ - lib/generators/templates/models/rental.rb
367
382
  - lib/tasks/bookingsync_portal_tasks.rake
368
383
  homepage: https://github.com/BookingSync/bookingsync_portal
369
384
  licenses:
@@ -385,8 +400,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
400
  version: '0'
386
401
  requirements: []
387
402
  rubyforge_project:
388
- rubygems_version: 2.4.3
403
+ rubygems_version: 2.4.8
389
404
  signing_key:
390
405
  specification_version: 4
391
406
  summary: A common base for creating BookingSync portal applications.
392
407
  test_files: []
408
+ has_rdoc: