warehouse_models 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 71381758030f0001278098f53abadef6ea2bf1614bb2c64106f3222978ec93e4
4
+ data.tar.gz: a71bd153352289f120f0237b8e688049c6155b6d4d93a69cef4c8a1d118c408b
5
+ SHA512:
6
+ metadata.gz: b3276e293e0f81714a67b8b02264a8a10cb254a3257e77e3d5a5e637d697e37f09521df12718ce081fddbab62395efc81456b53816e641ca753506b34f1bddef
7
+ data.tar.gz: dfa226e40dabe50fdfd05fc107cebc6abd850206e364f1d98f8510b985e39f166acc9d252aae4d7c8397245f7dded10313608665d48ab7b7f7816d9344960d85
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Warehouse < WarehouseAplicationRecord
4
+ belongs_to :profile, optional: true
5
+ has_many :spaces
6
+ has_many :item_variants, through: :spaces
7
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Warehouse
4
+ class Space < WarehouseAplicationRecord
5
+ belongs_to :warehouse
6
+ has_many :mutations,
7
+ class_name: 'Warehouse::Space::Mutation',
8
+ foreign_key: :warehouse_space_id,
9
+ dependent: :destroy
10
+
11
+ validates_presence_of :warehouse
12
+ validates_presence_of :quantity
13
+
14
+ validates_numericality_of :quantity,
15
+ only_integer: true,
16
+ greater_than_or_equal_to: 0,
17
+ if: :new_record?
18
+ validates_numericality_of :quantity,
19
+ only_integer: true,
20
+ unless: :new_record?
21
+
22
+ before_create :initial_mutation
23
+ before_destroy :allow_next_update!
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Warehouse
4
+ class Space
5
+ class Mutation < WarehouseAplicationRecord
6
+ belongs_to :warehouse_space,
7
+ class_name: 'Warehouse::Space'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Warehouse
4
+ class Space
5
+ class Mutation
6
+ class Action < WarehouseAplicationRecord
7
+ has_many :mutations
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WarehouseAplicationRecord < ActiveRecord::Base
4
+ self.abstract_class = true
5
+ connects_to database: { writing: :warehouse_model, reading: :warehouse_model }
6
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'warehouse_models/version'
4
+
5
+ module WarehouseModels
6
+ class Error < StandardError; end
7
+ # Your code goes here...
8
+ def self.load
9
+ files.each { |file| require file }
10
+ end
11
+
12
+ def self.files
13
+ Dir[directory + '/lib/models/*.rb']
14
+ end
15
+
16
+ def self.directory
17
+ Gem::Specification.find_by_name('warehouse_models').gem_dir
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WarehouseModels
4
+ VERSION = '0.1.0'
5
+ end
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: warehouse_models
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kevin Ivander
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-03-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.1.4
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.1.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description:
56
+ email:
57
+ - ivanderkevin1@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/models/warehouse.rb
63
+ - lib/models/warehouse/space.rb
64
+ - lib/models/warehouse/space/mutation.rb
65
+ - lib/models/warehouse/space/mutation/action.rb
66
+ - lib/models/warehouse_application_record.rb
67
+ - lib/warehouse_models.rb
68
+ - lib/warehouse_models/version.rb
69
+ homepage:
70
+ licenses:
71
+ - MIT
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ - lib/models
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.3.0
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubygems_version: 3.0.6
90
+ signing_key:
91
+ specification_version: 4
92
+ summary: gem for active record warehouse models
93
+ test_files: []