axis 0.3.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.
Files changed (42) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +0 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.markdown +10 -0
  7. data/Rakefile +5 -0
  8. data/VERSION +1 -0
  9. data/axis.gemspec +31 -0
  10. data/db/schema/v_customers.sql +228 -0
  11. data/db/schema/v_deliveries.sql +146 -0
  12. data/db/schema/v_nominal_account_transactions.sql +179 -0
  13. data/db/schema/v_sales_order_lines.sql +156 -0
  14. data/db/schema/v_sales_orders.sql +256 -0
  15. data/db/schema/v_stock_records.sql +243 -0
  16. data/lib/axis.rb +15 -0
  17. data/lib/axis/base.rb +5 -0
  18. data/lib/axis/config.rb +28 -0
  19. data/lib/axis/document.rb +74 -0
  20. data/lib/axis/models/addressee.rb +6 -0
  21. data/lib/axis/models/component_record.rb +5 -0
  22. data/lib/axis/models/customer.rb +6 -0
  23. data/lib/axis/models/delivery.rb +7 -0
  24. data/lib/axis/models/goods_on_account.rb +8 -0
  25. data/lib/axis/models/goods_on_account_line.rb +8 -0
  26. data/lib/axis/models/invoice.rb +11 -0
  27. data/lib/axis/models/nominal_account_transaction.rb +47 -0
  28. data/lib/axis/models/sales_order.rb +7 -0
  29. data/lib/axis/models/sales_order_line.rb +8 -0
  30. data/lib/axis/models/stock_level.rb +6 -0
  31. data/lib/axis/models/stock_record.rb +10 -0
  32. data/lib/axis/models/stock_record_location.rb +6 -0
  33. data/lib/axis/models/supplier_price.rb +6 -0
  34. data/lib/axis/version.rb +3 -0
  35. data/lib/cli.rb +25 -0
  36. data/spec/axis/document_spec.rb +98 -0
  37. data/spec/fixtures/ATTACH/Documents/INV/123456_0_20110101_163350_2C16B3CB_P.pdf +0 -0
  38. data/spec/fixtures/ATTACH/Documents/INV/123456_0_20120101_163350_2C16B3CB_P.pdf +0 -0
  39. data/spec/fixtures/ATTACH/Documents/INV/123456_0_20121002_163350_2C16B3CB_P.pdf +0 -0
  40. data/spec/fixtures/ATTACH/Documents/INV/296621_0_20121001_163350_2C16B3CB_P.pdf +0 -0
  41. data/spec/spec_helper.rb +1 -0
  42. metadata +175 -0
@@ -0,0 +1,7 @@
1
+ module Axis
2
+ class SalesOrder < Base
3
+ self.primary_key = "id"
4
+ has_many :sales_order_lines, :order => :sales_order_item_number
5
+ has_many :invoices
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module Axis
2
+ class SalesOrderLine < Base
3
+ self.primary_key = "id"
4
+ default_scope where('sales_order_item_number > 0')
5
+ belongs_to :sales_order
6
+ belongs_to :stock_record
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module Axis
2
+ class StockLevel < Base
3
+ self.table_name = "axis_stock_levels"
4
+ self.primary_key = "alt_reference"
5
+ end
6
+ end
@@ -0,0 +1,10 @@
1
+ module Axis
2
+ class StockRecord < Base
3
+ self.primary_key = "id"
4
+ has_many :sales_order_lines
5
+ has_many :component_records
6
+ has_many :goods_on_account_lines
7
+ has_many :stock_record_locations
8
+ has_many :supplier_prices
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ module Axis
2
+ class StockRecordLocation < Base
3
+ self.primary_key = "id"
4
+ belongs_to :stock_record
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Axis
2
+ class SupplierPrice < Base
3
+ self.primary_key = "id"
4
+ belongs_to :stock_record
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module Axis
2
+ VERSION = "0.3.0"
3
+ end
@@ -0,0 +1,25 @@
1
+ require 'axis'
2
+ require 'logger'
3
+
4
+ ActiveRecord::Base.establish_connection(
5
+ :adapter => 'sqlserver',
6
+ :dataserver => '192.168.254.118',
7
+ :host => '192.168.254.118',
8
+ :database => 'AXIS33238CO1',
9
+ :username => 'sa',
10
+ :password => 'St1nky1nk'
11
+ )
12
+
13
+ Squeel.configure do |config|
14
+ config.load_core_extensions :hash, :symbol
15
+ end
16
+
17
+ ActiveRecord::Base.logger = Logger.new(STDOUT)
18
+
19
+ # Crud way of reloading model code.
20
+ def reload!
21
+ load 'axis/base.rb'
22
+ Dir.glob(File.join(File.dirname(__FILE__), 'axis/models/*')).each { |f| load f }
23
+ end
24
+
25
+ include Axis # Make axis namespace available to irb scope
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+
3
+ describe Axis::Document::Base do
4
+
5
+ subject { Axis::Document::Base.new(path) }
6
+
7
+ context "with an invoice" do
8
+ let(:path) {'/ATTACH/Documents/INV/296443_0_20121001_163350_2C16B3CB_P.pdf'}
9
+
10
+ its(:id) { should eql("296443") }
11
+ its(:type) { should eql(:invoice) }
12
+ its(:path) { should eql(Pathname.new(path))}
13
+ its(:created_on) { should eql(Date.new(2012,10,01)) }
14
+ end
15
+
16
+ end
17
+
18
+ describe Axis::Document::Invoice do
19
+
20
+ describe "#find" do
21
+ subject { Axis::Document::Invoice.find(id) }
22
+
23
+ context "with a document that exists" do
24
+ let(:id) {296621}
25
+
26
+ it { should be_an(Axis::Document::Invoice) }
27
+ its(:type) { should eql(:invoice) }
28
+ its(:created_on) { should eql(Date.new(2012,10,01)) }
29
+ end
30
+
31
+ context "with a document that does not exist" do
32
+ let(:id) {9999}
33
+
34
+ it "should raise an Axis::Document::DocumentNotFound error"do
35
+ expect {
36
+ Axis::Document::Invoice.find(id)
37
+ }.to raise_error(Axis::Document::DocumentNotFound)
38
+ end
39
+ end
40
+
41
+ context "with an empty id" do
42
+ let(:id) {""}
43
+
44
+ it "should raise an ArgumentError"do
45
+ expect {
46
+ Axis::Document::Invoice.find(id)
47
+ }.to raise_error(ArgumentError)
48
+ end
49
+ end
50
+ end
51
+
52
+ describe "#find_by_date" do
53
+
54
+ subject { Axis::Document::Invoice.find_by_date(*date) }
55
+
56
+ context "with the arguments 2012" do
57
+ let(:date) { [2012] }
58
+
59
+ it {should be_a(Array) }
60
+ its(:length) { should eql(3) }
61
+
62
+ it "should return all documents created in 2012" do
63
+ subject.each {|x|
64
+ x.created_on.year.should eql(2012)
65
+ }
66
+ end
67
+ end
68
+
69
+ context "with the arguments 2012, 10" do
70
+ let(:date) { [2012, 10] }
71
+
72
+ it {should be_a(Array) }
73
+ its(:length) { should eql(2) }
74
+
75
+ it "should return all documents created in October 2012" do
76
+ subject.each {|x|
77
+ x.created_on.year.should eql(2012)
78
+ x.created_on.month.should eql(10)
79
+ }
80
+ end
81
+ end
82
+
83
+ context "with the arguments 2012, 10, 11" do
84
+ let(:date) { [2012, 10, 1] }
85
+
86
+ it {should be_a(Array) }
87
+ its(:length) { should eql(1) }
88
+
89
+ it "should return all documents created on 11 October 2012" do
90
+ subject.each {|x|
91
+ x.created_on.year.should eql(2012)
92
+ x.created_on.month.should eql(10)
93
+ x.created_on.day.should eql(1)
94
+ }
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1 @@
1
+ require 'axis'
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: axis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Robert Williams
9
+ - Rich Grundy
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-10-17 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - '='
21
+ - !ruby/object:Gem::Version
22
+ version: 0.8.7
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - '='
29
+ - !ruby/object:Gem::Version
30
+ version: 0.8.7
31
+ - !ruby/object:Gem::Dependency
32
+ name: tiny_tds
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: activerecord-sqlserver-adapter
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>'
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.14
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>'
61
+ - !ruby/object:Gem::Version
62
+ version: 3.0.14
63
+ - !ruby/object:Gem::Dependency
64
+ name: squeel
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.9.0
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.9.0
79
+ - !ruby/object:Gem::Dependency
80
+ name: rspec
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ description: This adaptor exposes the Axis DB. Yeah it does!
96
+ email:
97
+ - rob@r-williams.com
98
+ - rich@stinkyink.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - .gitignore
104
+ - .rspec
105
+ - .rvmrc
106
+ - Gemfile
107
+ - LICENSE.txt
108
+ - README.markdown
109
+ - Rakefile
110
+ - VERSION
111
+ - axis.gemspec
112
+ - db/schema/v_customers.sql
113
+ - db/schema/v_deliveries.sql
114
+ - db/schema/v_nominal_account_transactions.sql
115
+ - db/schema/v_sales_order_lines.sql
116
+ - db/schema/v_sales_orders.sql
117
+ - db/schema/v_stock_records.sql
118
+ - lib/axis.rb
119
+ - lib/axis/base.rb
120
+ - lib/axis/config.rb
121
+ - lib/axis/document.rb
122
+ - lib/axis/models/addressee.rb
123
+ - lib/axis/models/component_record.rb
124
+ - lib/axis/models/customer.rb
125
+ - lib/axis/models/delivery.rb
126
+ - lib/axis/models/goods_on_account.rb
127
+ - lib/axis/models/goods_on_account_line.rb
128
+ - lib/axis/models/invoice.rb
129
+ - lib/axis/models/nominal_account_transaction.rb
130
+ - lib/axis/models/sales_order.rb
131
+ - lib/axis/models/sales_order_line.rb
132
+ - lib/axis/models/stock_level.rb
133
+ - lib/axis/models/stock_record.rb
134
+ - lib/axis/models/stock_record_location.rb
135
+ - lib/axis/models/supplier_price.rb
136
+ - lib/axis/version.rb
137
+ - lib/cli.rb
138
+ - pkg/axis-0.1.0.gem
139
+ - spec/axis/document_spec.rb
140
+ - spec/fixtures/ATTACH/Documents/INV/123456_0_20110101_163350_2C16B3CB_P.pdf
141
+ - spec/fixtures/ATTACH/Documents/INV/123456_0_20120101_163350_2C16B3CB_P.pdf
142
+ - spec/fixtures/ATTACH/Documents/INV/123456_0_20121002_163350_2C16B3CB_P.pdf
143
+ - spec/fixtures/ATTACH/Documents/INV/296621_0_20121001_163350_2C16B3CB_P.pdf
144
+ - spec/spec_helper.rb
145
+ homepage: ''
146
+ licenses: []
147
+ post_install_message:
148
+ rdoc_options: []
149
+ require_paths:
150
+ - lib
151
+ required_ruby_version: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ! '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project: axis
165
+ rubygems_version: 1.8.24
166
+ signing_key:
167
+ specification_version: 3
168
+ summary: This adaptor exposes the Axis DB
169
+ test_files:
170
+ - spec/axis/document_spec.rb
171
+ - spec/fixtures/ATTACH/Documents/INV/123456_0_20110101_163350_2C16B3CB_P.pdf
172
+ - spec/fixtures/ATTACH/Documents/INV/123456_0_20120101_163350_2C16B3CB_P.pdf
173
+ - spec/fixtures/ATTACH/Documents/INV/123456_0_20121002_163350_2C16B3CB_P.pdf
174
+ - spec/fixtures/ATTACH/Documents/INV/296621_0_20121001_163350_2C16B3CB_P.pdf
175
+ - spec/spec_helper.rb