Skip to content

Commit

Permalink
Merge pull request #39 from zaikio/add-workstep-and-fininshings-to-part
Browse files Browse the repository at this point in the history
Add worksteps & finishings to Part
  • Loading branch information
YannIsCoding authored Nov 14, 2023
2 parents 0c421c8 + d6afbf5 commit bbb3788
Show file tree
Hide file tree
Showing 4 changed files with 393 additions and 65 deletions.
210 changes: 183 additions & 27 deletions config/data/parts.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,183 @@
- Back
- BusinessCard
- Card
- Carton
- Case
- ComplimentSlip
- Content
- ContinuationSheet
- Cover
- CoverLetter
- Endpaper
- Envelope
- Flyer
- Folder
- FoldingCard
- Insert
- Jacket
- Label
- Leaflet
- LetterHead
- Lid
- MapSheet
- Outsert
- Postcard
- Poster
- SelfMailer
- Sheet
Back:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: true
folding:
required: false
BusinessCard:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: true
folding:
required: false
finishings:
lamination:
required: false
Card:
Carton:
Case:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: false
folding:
required: false
finishings:
lamination:
required: false
ComplimentSlip:
Content:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: true
folding:
required: true
finishings:
thread_sewing:
required: false
lamination:
required: false
ContinuationSheet:
Cover:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: false
folding:
required: false
finishings:
lamination:
required: false
CoverLetter:
Endpaper:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: false
folding:
required: false
finishings:
lamination:
required: false
Envelope:
Flyer:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: true
Folder:
FoldingCard:
Insert:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: false
folding:
required: false
Jacket:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: false
folding:
required: false
finishings:
lamination:
required: false
Label:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: false
Leaflet:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: true
folding:
required: true
LetterHead:
Lid:
MapSheet:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: true
folding:
required: true
Outsert:
worksteps:
ctp:
required: false
printing:
required: true
cutting:
required: false
folding:
required: false
Postcard:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: false
Poster:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: false
SelfMailer:
worksteps:
ctp:
required: false
printing:
required: false
cutting:
required: false
folding:
required: false
Sheet:
15 changes: 8 additions & 7 deletions lib/zaikio/mission_control.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
require "zaikio-client-helpers"
require "zaikio/mission_control/configuration"

# Jobs
require "zaikio/mission_control/base"

# Jobs
require "zaikio/mission_control/jobs/base"

# Parts
Expand All @@ -20,24 +21,24 @@
require "zaikio/mission_control/intermediate_products/base"

# Models
require "zaikio/mission_control/job"
require "zaikio/mission_control/part"
require "zaikio/mission_control/color"
require "zaikio/mission_control/contact"
require "zaikio/mission_control/customer"
require "zaikio/mission_control/desired_substrate"
require "zaikio/mission_control/execution"
require "zaikio/mission_control/file_reference"
require "zaikio/mission_control/finishing_application"
require "zaikio/mission_control/finishing"
require "zaikio/mission_control/file_reference"
require "zaikio/mission_control/intermediate_product"
require "zaikio/mission_control/job"
require "zaikio/mission_control/machine"
require "zaikio/mission_control/order"
require "zaikio/mission_control/order_line_item"
require "zaikio/mission_control/order"
require "zaikio/mission_control/part"
require "zaikio/mission_control/production_frame"
require "zaikio/mission_control/shipping_option"
require "zaikio/mission_control/slot"
require "zaikio/mission_control/production_frame"
require "zaikio/mission_control/workstep"
require "zaikio/mission_control/intermediate_product"

module Zaikio
module MissionControl
Expand Down
39 changes: 38 additions & 1 deletion lib/zaikio/mission_control/parts/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,45 @@ class Base < Zaikio::MissionControl::Base
require "yaml"
RELATIVE_PATH_TO_PARTS_YML = "../../../../config/data/parts.yml".freeze
parts = YAML.safe_load_file(File.join(File.dirname(__FILE__), RELATIVE_PATH_TO_PARTS_YML), symbolize_names: true)
parts.each do |klass_name|

parts.each do |klass_name, attributes|
Zaikio::MissionControl::Parts.const_set(klass_name, Class.new(Base))
next if attributes.nil?

Zaikio::MissionControl::Parts.const_get(klass_name).instance_variable_set(:@worksteps, attributes[:worksteps])
Zaikio::MissionControl::Parts.const_get(klass_name).instance_variable_set(:@finishings, attributes[:finishings])
end

class << self
def finishings
@finishings ||= {}

@finishings.keys.flat_map do |finishing, option|
option[:required] ? finishing : finishing.to_s.concat("_maybe").to_sym
end
end

def worksteps_from_parts
@worksteps ||= {}

@worksteps.flat_map do |workstep, option|
name = option[:required] ? workstep : workstep.to_s.concat("_maybe").to_sym
{ name => Zaikio::MissionControl::Worksteps.const_get(workstep.to_s.classify).intermediate_products }
end
end

def worksteps_from_finishings
@finishings ||= {}

@finishings.flat_map do |finishing, option|
name = option[:required] ? finishing : finishing.to_s.concat("_maybe").to_sym
{ name => Zaikio::MissionControl::Worksteps.const_get(finishing.to_s.classify).intermediate_products }
end
end

def worksteps
worksteps_from_parts.concat(worksteps_from_finishings)
end
end
end
end
Expand Down
Loading

0 comments on commit bbb3788

Please sign in to comment.