beanie 0.1.2 → 0.1.3

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: 9490141bb625f770191ce98bab41c4230e60b1ee
4
- data.tar.gz: fc6fca6369a77a519c9aafc9daf931c204405476
3
+ metadata.gz: 0be70757db5a53fe03f310cbc2e939455c1a2020
4
+ data.tar.gz: 1d90afd4f7c703df8038554cd1a075a2d8f4000a
5
5
  SHA512:
6
- metadata.gz: 013754c7bf2d03d33b97b4dbfd1b7c2210151b29ae12b613b95f6ab53d15f948d84b01f93db11a08a59162f5c8f5d833bec64d07da09470ab35b7513a8d9458a
7
- data.tar.gz: 6420c802395b5d246e1eff19e716ad40bc8c36ec4d0109fdad9ac71e5a0d61bef9564aae26427968d75641bcc50a75d06af16ab08251fc0c62272c8283447edd
6
+ metadata.gz: 518c5a6921a048676986efaa57d95281974556baa922368fff212789bbb269ab930782d0209a4ecc2739ce1bc72870abb749a3dea4787e7dba27d6d7b1b161d8
7
+ data.tar.gz: 65d45ed530e4f7a2aecc8b99844882c3f70889fee8febad718a3437de8f00f83aa9dc2d122d86c62b657e16bdc484f9e650ac5ef3f5d8e9562a34332e1354d4c
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/beanie.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["dtynan@kalopa.com"]
11
11
  spec.summary = %q{Ruby bindings for the Beanie API}
12
12
  spec.description = %q{Beanie - your cloud accountant. See https://bean.ie for more details.}
13
- spec.homepage = "https://bean.ie/docs/api/ruby"
13
+ spec.homepage = "https://bean.ie/help/api/ruby"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
data/lib/beanie/api.rb CHANGED
@@ -56,7 +56,16 @@ module Beanie
56
56
  data = extract()
57
57
  data.delete("id")
58
58
  objdata = {object_name => data}
59
- response = self.class.post(objdata, opts)
59
+ if @id
60
+ #
61
+ # Needs an update...
62
+ opts[:id] = @id
63
+ response = self.class.put(objdata, opts)
64
+ else
65
+ #
66
+ # Needs a create!
67
+ response = self.class.post(objdata, opts)
68
+ end
60
69
  self.populate(response[self.object_name])
61
70
  end
62
71
 
@@ -96,7 +105,11 @@ module Beanie
96
105
  # Run a REST PUT against the Beanie API.
97
106
  def self.put(data, opts = {})
98
107
  response = RestClient.put(build_url(opts), data, headers=set_headers)
99
- JSON.parse(response.body)
108
+ if response.body and response.body.length > 0
109
+ JSON.parse(response.body)
110
+ else
111
+ ""
112
+ end
100
113
  end
101
114
 
102
115
  #
@@ -31,7 +31,7 @@ module Beanie
31
31
  class Company < Api
32
32
  attr_accessor :id, :name, :email, :address1, :address2, :address3, :city
33
33
  attr_accessor :state_county, :website, :phone, :fax, :zip_postcode
34
- attr_accessor :registration, :next_fye, :runcom, :country, :currency
34
+ attr_accessor :registration, :next_fye, :country, :currency
35
35
  attr_accessor :invoice_template_id, :purchase_shipping_nominal_account_id
36
36
  attr_accessor :sales_shipping_nominal_account_id
37
37
  attr_accessor :accounts_receivable_nominal_account_id
@@ -54,7 +54,6 @@ module Beanie
54
54
  @zip_postcode = nil
55
55
  @registration = nil
56
56
  @next_fye = nil
57
- @runcom = nil
58
57
  @country = nil
59
58
  @currency = nil
60
59
  @invoice_template_id = nil
@@ -29,7 +29,31 @@
29
29
  #
30
30
  module Beanie
31
31
  class NominalAccount < Api
32
- attr_accessor :id, :code, :name, :nominal_account_category_id
32
+ attr_accessor :id, :na_type, :code, :name, :nominal_account_category_id
33
+
34
+ TYPE_FIXED_ASSETS = 0
35
+ TYPE_CURRENT_ASSETS = 1
36
+ TYPE_CURRENT_LIABILITIES = 2
37
+ TYPE_NON_CURRENT_LIABILITIES = 3
38
+ TYPE_RESERVES = 4
39
+ TYPE_INCOME = 5
40
+ TYPE_DIRECT_COSTS = 6
41
+ TYPE_EXPENSE = 7
42
+ TYPE_OTHER_EXPENSE = 8
43
+ TYPE_OTHER_INCOME = 9
44
+
45
+ TYPE_NAMES = [
46
+ ["Fixed Assets", TYPE_FIXED_ASSETS],
47
+ ["Current Assets", TYPE_CURRENT_ASSETS],
48
+ ["Current Liabilities", TYPE_CURRENT_LIABILITIES],
49
+ ["Non-Current Liabilities", TYPE_NON_CURRENT_LIABILITIES],
50
+ ["Reserves", TYPE_RESERVES],
51
+ ["Income", TYPE_INCOME],
52
+ ["Direct Costs", TYPE_DIRECT_COSTS],
53
+ ["Expense", TYPE_EXPENSE],
54
+ ["Other Expense", TYPE_OTHER_EXPENSE],
55
+ ["Other Income", TYPE_OTHER_INCOME]
56
+ ].freeze
33
57
 
34
58
  #
35
59
  # Initialize instance variables
@@ -39,5 +63,11 @@ module Beanie
39
63
  @name = nil
40
64
  @nominal_account_category_id = nil
41
65
  end
66
+
67
+ #
68
+ # Show proper name for type
69
+ def type_name
70
+ TYPE_NAMES[na_type][0]
71
+ end
42
72
  end
43
73
  end
@@ -31,30 +31,6 @@ module Beanie
31
31
  class NominalAccountCategory < Api
32
32
  attr_accessor :id, :na_type, :name, :parent_category_id
33
33
 
34
- NA_TYPE_FIXED_ASSETS = 0
35
- NA_TYPE_CURRENT_ASSETS = 1
36
- NA_TYPE_CURRENT_LIABILITIES = 2
37
- NA_TYPE_NON_CURRENT_LIABILITIES = 3
38
- NA_TYPE_RESERVES = 4
39
- NA_TYPE_INCOME = 5
40
- NA_TYPE_DIRECT_COSTS = 6
41
- NA_TYPE_EXPENSE = 7
42
- NA_TYPE_OTHER_EXPENSE = 8
43
- NA_TYPE_OTHER_INCOME = 9
44
-
45
- NA_TYPE_NAMES = [
46
- ["Fixed Assets", NA_TYPE_FIXED_ASSETS],
47
- ["Current Assets", NA_TYPE_CURRENT_ASSETS],
48
- ["Current Liabilities", NA_TYPE_CURRENT_LIABILITIES],
49
- ["Non-Current Liabilities", NA_TYPE_NON_CURRENT_LIABILITIES],
50
- ["Reserves", NA_TYPE_RESERVES],
51
- ["Income", NA_TYPE_INCOME],
52
- ["Direct Costs", NA_TYPE_DIRECT_COSTS],
53
- ["Expense", NA_TYPE_EXPENSE],
54
- ["Other Expense", NA_TYPE_OTHER_EXPENSE],
55
- ["Other Income", NA_TYPE_OTHER_INCOME]
56
- ].freeze
57
-
58
34
  #
59
35
  # Initialize instance variables
60
36
  def initialize
@@ -66,8 +42,8 @@ module Beanie
66
42
 
67
43
  #
68
44
  # Show proper name for type
69
- def na_type_name
70
- NA_TYPE_NAMES[na_type][0]
45
+ def type_name
46
+ NominalAccount::TYPE_NAMES[na_type][0]
71
47
  end
72
48
  end
73
49
  end
@@ -29,7 +29,7 @@
29
29
  #
30
30
  module Beanie
31
31
  class Product < Api
32
- attr_accessor :id, :description, :name, :sku, :is_service
32
+ attr_accessor :id, :description, :name, :code, :is_service
33
33
  attr_accessor :nominal_account_id, :product_category_id, :unit_of_measure
34
34
 
35
35
  #
@@ -38,7 +38,7 @@ module Beanie
38
38
  @id = nil
39
39
  @description = nil
40
40
  @name = nil
41
- @sku = nil
41
+ @code = nil
42
42
  @is_service = nil
43
43
  @nominal_account_id = nil
44
44
  @product_category_id = nil
@@ -46,7 +46,6 @@ module Beanie
46
46
  end
47
47
 
48
48
  def self.find_by_name(name)
49
- puts "Find by name: #{name}"
50
49
  Beanie.find("products", "name", name)
51
50
  end
52
51
  end
@@ -43,20 +43,25 @@ module Beanie
43
43
  @sales_order_id = nil
44
44
  @bill_of_material_id = nil
45
45
  @work_centre_group_id = nil
46
+ @_private_data = nil
46
47
  end
47
48
 
48
49
  #
49
50
  # Get the private data
50
51
  def private_data
51
- response = ProductionOrder.get(:url => "/production_orders/#{@id}/private_data")
52
- response["data"]
52
+ unless @_private_data
53
+ response = ProductionOrder.get(:url => "/production_orders/#{@id}/private_data")
54
+ @_private_data = response["data"]
55
+ end
56
+ return @_private_data
53
57
  end
54
58
 
55
59
  #
56
60
  # Update/set the private data
57
61
  def private_data=(data)
62
+ @_private_data = data
58
63
  pdata = {:data => data}
59
- response = ProductionOrder.post(pdata, :url => "/production_orders/#{@id}/private_data")
64
+ ProductionOrder.post(pdata, :url => "/production_orders/#{@id}/private_data")
60
65
  end
61
66
 
62
67
  #
@@ -28,5 +28,5 @@
28
28
  # POSSIBILITY OF SUCH DAMAGE.
29
29
  #
30
30
  module Beanie
31
- VERSION = "0.1.2"
31
+ VERSION = "0.1.3"
32
32
  end
@@ -29,18 +29,41 @@
29
29
  #
30
30
  module Beanie
31
31
  class WorkCentre < Api
32
- attr_accessor :id, :name, :location, :description, :work_centre_group_id
32
+ attr_accessor :id, :name, :state, :location, :description, :work_centre_group_id
33
+
34
+ STATE_UNKNOWN = 0
35
+ STATE_MAINTENANCE = 1
36
+ STATE_OFFLINE = 2
37
+ STATE_READY = 3
38
+ STATE_BUSY = 4
39
+ STATE_DONE = 5
40
+
41
+ STATE_NAMES = [
42
+ ["Unknown State", STATE_UNKNOWN],
43
+ ["Maintenance Mode", STATE_MAINTENANCE],
44
+ ["Offline (Unavailable)", STATE_OFFLINE],
45
+ ["Ready for Work", STATE_READY],
46
+ ["Working (Busy)", STATE_BUSY],
47
+ ["Work Complete", STATE_DONE]
48
+ ].freeze
33
49
 
34
50
  #
35
51
  # Initialize instance variables
36
52
  def initialize
37
53
  @id = nil
38
54
  @name = nil
55
+ @state = nil
39
56
  @location = nil
40
57
  @description = nil
41
58
  @work_centre_group_id = nil
42
59
  end
43
60
 
61
+ #
62
+ # State name
63
+ def state_name
64
+ STATE_NAMES[@state][0]
65
+ end
66
+
44
67
  #
45
68
  # Get the private data
46
69
  def private_data
@@ -58,9 +81,12 @@ module Beanie
58
81
  #
59
82
  # Construct the path a little differently...
60
83
  def construct_path(opts = {})
61
- raise ":work_centre_group_id is not defined" unless opts[:work_centre_group_id]
62
- path = "/work_centre_groups/#{opts[:work_centre_group_id]}/work_centres"
63
- opts.delete(:work_centre_group_id)
84
+ if opts[:work_centre_group_id]
85
+ path = "/work_centre_groups/#{opts[:work_centre_group_id]}/work_centres"
86
+ opts.delete(:work_centre_group_id)
87
+ else
88
+ path = "/work_centres"
89
+ end
64
90
  path
65
91
  end
66
92
  end
data/lib/beanie.rb CHANGED
@@ -28,7 +28,7 @@
28
28
  # POSSIBILITY OF SUCH DAMAGE.
29
29
  #
30
30
  # Ruby bindings for the Beanie API
31
- # Docs at http://bean.ie/docs/api/ruby
31
+ # Docs at http://bean.ie/help/api/ruby
32
32
  require 'rest-client'
33
33
  require 'json'
34
34
 
@@ -105,13 +105,12 @@ module Beanie
105
105
  'Set your API Key using "Beanie.api_key = <API-KEY>". ' \
106
106
  'Set your Secret Key using "Beanie.secret_key = <SECRET>". ' \
107
107
  'You can generate API keys from the Beanie web interface. ' \
108
- 'See https://bean.ie/en/apikey for details or email support@bean.ie ' \
109
- 'for further assistance.')
108
+ 'See https://bean.ie/help/api/key for details or email ' \
109
+ 'support@bean.ie for further assistance.')
110
110
  end
111
111
  url = "#{@base_uri}/api/authenticate"
112
112
  data = {:api_key => @api_key, :secret_key => @secret_key}
113
113
  response = RestClient.post(url, data.to_json, :content_type => :json, :accept => :json)
114
- puts "Token response: #{response.code} (data: #{response.body})"
115
114
  raise AuthenticationError.new('Authentication failure.') unless response.code == 202
116
115
  data = JSON.parse(response.body)
117
116
  @@token = data['token']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beanie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dermot Tynan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-07 00:00:00.000000000 Z
11
+ date: 2018-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -129,7 +129,7 @@ files:
129
129
  - lib/beanie/version.rb
130
130
  - lib/beanie/work_centre.rb
131
131
  - lib/beanie/work_centre_group.rb
132
- homepage: https://bean.ie/docs/api/ruby
132
+ homepage: https://bean.ie/help/api/ruby
133
133
  licenses:
134
134
  - MIT
135
135
  metadata: {}