unidom-article_number 2.1 → 2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 848207ee1c89545ac553f01f85c8e7ef923b58c3
4
- data.tar.gz: 5021a99800b1e57a4160a548e7a7f883f585df81
3
+ metadata.gz: b783c43ec02f0f07fffba394890b3453a543f8cd
4
+ data.tar.gz: 40c1f438bd33514ead6652352398c709d637edb3
5
5
  SHA512:
6
- metadata.gz: 44d5e55dbdc6fcf78ef9ddfc5720b7de914c88c9380c2c3ba1c0dd434de87549c80d4aee70fe935fcc0740089886c2999e99c92431d25e15ec01cde35dc7f252
7
- data.tar.gz: cabbc1e5f6818d6c9b0ecf6d5a456d2bf341ef3fe4f78fc7a12533db5e14279bed4bd9c28cb51a8b81584d9b81f4238731730962c32531bf5f6ae3d5f9b64e3b
6
+ metadata.gz: b2bbc4cd9d42cbe650620cf4ba039083ac042fbeed9e0825775e2ecd99bcd765754a0ba6176b6ff27508e0b068b0560d073c735b63e77cc28b02e907ccbabd1d
7
+ data.tar.gz: f22719632f99756a0e3b7bfd34a6684238915c205a9040e66b3af7e0ee3b08bc513eae978058453afa16b75ede52f502014ce866e12fd2441374775bdaf355eb
data/README.md CHANGED
@@ -38,12 +38,16 @@ The migration versions start with 200201.
38
38
  ## Call the Model
39
39
 
40
40
  ```ruby
41
- ean_13_barcode = Unidom::ArticleNumber::Ean13Barcode.create code: '1234567890123'
42
- ean_8_barcode = Unidom::ArticleNumber::Ean8Barcode.create code: '12345678'
41
+ ean_13_barcode = Unidom::ArticleNumber::Ean13Barcode.create! code: '1234567890123'
42
+ ean_8_barcode = Unidom::ArticleNumber::Ean8Barcode.create! code: '12345678'
43
43
  marked = Unidom::Product::Product.create! name: 'Chocolate', abbreviation: 'Choc', packing_norm: '12 blocks', measurement_unit: 'box'
44
44
  marker = Unidom::Party::Person.create! name: 'John'
45
45
  ean_13_marking = Unidom::ArticleNumber::Marking.mark! barcode: ean_13_barcode, marked: marked, marker: marker, opened_at: Time.now
46
46
  ean_8_marking = Unidom::ArticleNumber::Marking.mark! barcode: ean_8_barcode, marked: marked, marker: marker, opened_at: Time.now
47
+
48
+ vin = Unidom::ArticleNumber::VehicleIdentificationNumber.create! code: 'LVHCU165XD5002138'
49
+ # The Vehicle Identification Number Validator is enabled on the code field by default.
50
+ found_vin = Unidom::ArticleNumber::VehicleIdentificationNumber.coded_as('LVHCU165XD5002138').first
47
51
  ```
48
52
 
49
53
 
@@ -0,0 +1,29 @@
1
+ # VIN (Vehicle Identification Number) 是车辆识别码。
2
+ # https://en.wikipedia.org/wiki/Vehicle_identification_number
3
+ # GB 16735-2004
4
+
5
+ class Unidom::ArticleNumber::VehicleIdentificationNumber < Unidom::ArticleNumber::ApplicationRecord
6
+
7
+ self.table_name = 'unidom_vehicle_identification_numbers'
8
+
9
+ include Unidom::Common::Concerns::ModelExtension
10
+ include Unidom::ArticleNumber::Concerns::AsBarcode
11
+
12
+ validates :code, uniqueness: true, 'unidom/article_number/vehicle_identification_number': true
13
+ validates :world_manufacturer_identifier, presence: true, length: { is: columns_hash['world_manufacturer_identifier'].limit }
14
+ validates :vehicle_descriptor_section, presence: true, length: { is: columns_hash['vehicle_descriptor_section'].limit }
15
+ validates :check_digit, presence: true, length: { is: columns_hash['check_digit'].limit }
16
+ validates :vehicle_identifier_section, presence: true, length: { is: columns_hash['vehicle_identifier_section'].limit }
17
+
18
+ def code=(code)
19
+ code = code.to_s
20
+ write_attribute :code, code
21
+ if code.present?
22
+ write_attribute :world_manufacturer_identifier, code[0..2]
23
+ write_attribute :vehicle_descriptor_section, code[3..7]
24
+ write_attribute :check_digit, code[8]
25
+ write_attribute :vehicle_identifier_section, code[9..16]
26
+ end
27
+ end
28
+
29
+ end
@@ -0,0 +1,27 @@
1
+ class CreateUnidomVehicleIdentificationNumbers < ActiveRecord::Migration
2
+
3
+ def change
4
+
5
+ create_table :unidom_vehicle_identification_numbers, id: :uuid do |t|
6
+
7
+ t.column :code, 'char(17)', null: false, default: '0'*17
8
+ t.column :world_manufacturer_identifier, 'char(3)', null: false, default: '0'*3
9
+ t.column :vehicle_descriptor_section, 'char(5)', null: false, default: '0'*5
10
+ t.column :check_digit, 'char(1)', null: false, default: '0'
11
+ t.column :vehicle_identifier_section, 'char(8)', null: false, default: '0'*8
12
+
13
+ t.column :state, 'char(1)', null: false, default: 'C'
14
+ t.datetime :opened_at, null: false, default: ::Time.utc(1970)
15
+ t.datetime :closed_at, null: false, default: ::Time.utc(3000)
16
+ t.boolean :defunct, null: false, default: false
17
+ t.jsonb :notation, null: false, default: {}
18
+
19
+ t.timestamps null: false
20
+
21
+ end
22
+
23
+ add_index :unidom_vehicle_identification_numbers, :code, unique: true
24
+
25
+ end
26
+
27
+ end
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module ArticleNumber
3
- VERSION = '2.1'.freeze
3
+ VERSION = '2.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-article_number
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.1'
4
+ version: '2.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-02 00:00:00.000000000 Z
11
+ date: 2016-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common
@@ -52,12 +52,14 @@ files:
52
52
  - app/models/unidom/article_number/ean13_barcode.rb
53
53
  - app/models/unidom/article_number/ean8_barcode.rb
54
54
  - app/models/unidom/article_number/marking.rb
55
+ - app/models/unidom/article_number/vehicle_identification_number.rb
55
56
  - app/validators/unidom/article_number/vehicle_identification_number_validator.rb
56
57
  - app/views/layouts/unidom/article_number/application.html.erb
57
58
  - config/routes.rb
58
59
  - db/migrate/20020101000000_create_unidom_markings.rb
59
60
  - db/migrate/20020102000000_create_unidom_ean_13_barcodes.rb
60
61
  - db/migrate/20020103000000_create_unidom_ean_8_barcodes.rb
62
+ - db/migrate/20020111000000_create_unidom_vehicle_identification_numbers.rb
61
63
  - lib/tasks/article_number_tasks.rake
62
64
  - lib/unidom/article_number.rb
63
65
  - lib/unidom/article_number/engine.rb