productive 0.3.4 → 0.4.0

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
  SHA1:
3
- metadata.gz: 768f7ef8ee39d877dfdaadb41ea45f84e5e638f5
4
- data.tar.gz: ddbdb36e54bdef5561c9eb1b8e816a64c4bf1fad
3
+ metadata.gz: 01c529d1bbf883940638129e43c18f29c5c5ebd2
4
+ data.tar.gz: 00f4d9c2358aa70d1663521ad1d716396c5eb0fa
5
5
  SHA512:
6
- metadata.gz: 9fad1037a1d913b23c8fbc9635b4c734ee1635e2d58bf6064110a189367ff92fa6f56e036a2caeca066a632832fe85c404d4234c13d07f45e6d6f1b7e63e3161
7
- data.tar.gz: a4f3251f83c768f5e52e8f465da6caa555d15d53c1dd855d3b9b9321e8c96066cc86493e6be2cc0fb3cec3c54438ae5626eea4eb63b29e34a5ebcc5c44476a3c
6
+ metadata.gz: f461a58354f7736681341e7801c05e66153cbb59e60b8e72681f29f9224f0b99a3de3608f28acc561be246190eec41761f1e08b4febfc1d56b34395158082584
7
+ data.tar.gz: 72405c9c61fe96e56cd707be201d266e390bc081309573ab7c9abc71dd5c2ebe198b509ed1ecd6502cc6f2227484fc566185206127919e5e1ef8eca8f7997821
data/README.md CHANGED
@@ -22,14 +22,12 @@ rails generate productive API_KEY ACCOUNT_ID
22
22
  ```
23
23
  which will generate ```config/initializers/productive.rb``` initializer, setting up your `API_KEY` and `ACCOUNT ID`.
24
24
 
25
- If you're using the gem in a standalone project, you need to configure the `API_KEY` and `ACCOUNT_ID` and setup the `Productive::Base` resource class:
25
+ If you're using the gem in a standalone project, you need to configure the `API_KEY` and `ACCOUNT_ID`:
26
26
  ```ruby
27
27
  Productive.configure do |config|
28
28
  config.api_key = ENV.fetch('productive_api_key')
29
29
  config.account_id = ACCOUNT_ID
30
30
  end
31
-
32
- Productive::Base.setup(Productive.configuration)
33
31
  ```
34
32
 
35
33
  ## Usage
@@ -3,18 +3,24 @@ require 'json_api_client'
3
3
  require 'productive/version'
4
4
  require 'productive/configuration'
5
5
  require 'productive/resources/base'
6
+ require 'productive/resources/base_account'
6
7
  require 'productive/resources/attachment'
7
- require 'productive/resources/client'
8
+ require 'productive/resources/comment'
8
9
  require 'productive/resources/company'
10
+ require 'productive/resources/contact_entry'
9
11
  require 'productive/resources/contract'
10
12
  require 'productive/resources/deal'
11
13
  require 'productive/resources/deal_status'
12
14
  require 'productive/resources/invoice'
15
+ require 'productive/resources/organization'
16
+ require 'productive/resources/organization_membership'
13
17
  require 'productive/resources/person'
18
+ require 'productive/resources/profitability_report'
14
19
  require 'productive/resources/project'
15
20
  require 'productive/resources/service'
16
21
  require 'productive/resources/service_type'
17
22
  require 'productive/resources/time_entry'
23
+ require 'productive/resources/user'
18
24
 
19
25
  require 'productive/railtie' if defined?(Rails::Railtie)
20
26
 
@@ -22,6 +28,9 @@ module Productive
22
28
  class << self
23
29
  def configure
24
30
  yield configuration
31
+
32
+ Productive::Base.setup(@configuration)
33
+ Productive::BaseAccount.setup(@configuration)
25
34
  end
26
35
 
27
36
  def configuration
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Attachment < Base
2
+ class Attachment < BaseAccount
3
3
  end
4
4
  end
@@ -1,8 +1,20 @@
1
1
  module Productive
2
2
  class Base < JsonApiClient::Resource
3
3
  def self.setup(config)
4
- self.site = File.join config.base_url, config.account_id.to_s, '/'
5
- self.connection_options = {headers: {'X-Auth-Token' => config.api_key}}
4
+ site_setup config
5
+ connection_options_setup config
6
+ paginator_setup config
7
+ end
8
+
9
+ def self.site_setup(config)
10
+ self.site = File.join config.base_url, '/'
11
+ end
12
+
13
+ def self.connection_options_setup(config)
14
+ self.connection_options = { headers: { 'X-Auth-Token' => config.api_key } }
15
+ end
16
+
17
+ def self.paginator_setup(config)
6
18
  self.paginator = config.paginator
7
19
  end
8
20
  end
@@ -0,0 +1,7 @@
1
+ module Productive
2
+ class BaseAccount < Base
3
+ def self.site_setup(config)
4
+ self.site = File.join config.base_url, config.account_id.to_s, '/'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ module Productive
2
+ class Comment < BaseAccount
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Company < Base
2
+ class Company < BaseAccount
3
3
  end
4
4
  end
@@ -0,0 +1,4 @@
1
+ module Productive
2
+ class ContactEntry < BaseAccount
3
+ end
4
+ end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Contract < Base
2
+ class Contract < BaseAccount
3
3
  has_one :template, class_name: :deal
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Deal < Base
2
+ class Deal < BaseAccount
3
3
  has_one :deal_status
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class DealStatus < Base
2
+ class DealStatus < BaseAccount
3
3
  end
4
4
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Invoice < Base
2
+ class Invoice < BaseAccount
3
3
  has_one :deal
4
4
  has_one :attachment
5
5
  has_one :company
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Client < Base
2
+ class Organization < Base
3
3
  end
4
4
  end
@@ -0,0 +1,4 @@
1
+ module Productive
2
+ class OrganizationMembership < Base
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class Person < Base
2
+ class Person < BaseAccount
3
3
  end
4
4
  end
@@ -0,0 +1,8 @@
1
+ module Productive
2
+ class ProfitabilityReport < BaseAccount
3
+ has_one :deal
4
+ has_one :company
5
+ has_one :project
6
+ has_one :manager, class_name: :person
7
+ end
8
+ end
@@ -1,6 +1,6 @@
1
1
  module Productive
2
- class Project < Base
3
- has_one :client
2
+ class Project < BaseAccount
3
+ has_one :company
4
4
  has_one :project_manager, class_name: :person
5
5
  has_one :last_actor, class_name: :person
6
6
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class Service < Base
2
+ class Service < BaseAccount
3
3
  has_one :service_type
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
1
  module Productive
2
- class ServiceType < Base
2
+ class ServiceType < BaseAccount
3
3
  end
4
4
  end
@@ -1,5 +1,5 @@
1
1
  module Productive
2
- class TimeEntry < Base
2
+ class TimeEntry < BaseAccount
3
3
  has_one :service
4
4
  end
5
5
  end
@@ -0,0 +1,6 @@
1
+ module Productive
2
+ class User < Base
3
+ has_one :default_organization, class_name: :organization
4
+ has_one :default_organization_membership, class_name: :organization_membership
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Productive
2
- VERSION = '0.3.4'
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: productive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josip Bišćan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-31 00:00:00.000000000 Z
11
+ date: 2016-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -56,17 +56,23 @@ files:
56
56
  - lib/productive/railtie.rb
57
57
  - lib/productive/resources/attachment.rb
58
58
  - lib/productive/resources/base.rb
59
- - lib/productive/resources/client.rb
59
+ - lib/productive/resources/base_account.rb
60
+ - lib/productive/resources/comment.rb
60
61
  - lib/productive/resources/company.rb
62
+ - lib/productive/resources/contact_entry.rb
61
63
  - lib/productive/resources/contract.rb
62
64
  - lib/productive/resources/deal.rb
63
65
  - lib/productive/resources/deal_status.rb
64
66
  - lib/productive/resources/invoice.rb
67
+ - lib/productive/resources/organization.rb
68
+ - lib/productive/resources/organization_membership.rb
65
69
  - lib/productive/resources/person.rb
70
+ - lib/productive/resources/profitability_report.rb
66
71
  - lib/productive/resources/project.rb
67
72
  - lib/productive/resources/service.rb
68
73
  - lib/productive/resources/service_type.rb
69
74
  - lib/productive/resources/time_entry.rb
75
+ - lib/productive/resources/user.rb
70
76
  - lib/productive/version.rb
71
77
  - productive.gemspec
72
78
  homepage: https://github.com/infinum/productive_api_client