Class: Evolis::PremiumSdk::SdkBase
- Inherits:
-
Object
- Object
- Evolis::PremiumSdk::SdkBase
- Defined in:
- lib/evolis/premium_sdk/sdk_base.rb
Constant Summary collapse
- SETTINGS =
Settings and their values allowed to be used when getting and setting settings for print
{ GDuplexMode: { validation: %w[SIMPLEX DUPLEX_CC DUPLEX_CM DUPLEX_MC DUPLEX_MM], description: 'Front side and Back side settings' }, GInputTray: { validation: %w[FEEDER AUTO MANUAL PRINTER], description: 'Card insertion' }, GOutputTray: { validation: %w[HOPPER REAR PRINTER], description: 'Card exit' }, GRejectBox: { validation: %w[DEFAULTREJECT HOPPER PRINTER], description: 'Rejected error card' }, GRibbonType: { validation: %w[RC_YMCKO RC_YMCKOS RC_YMCKOK RC_YMCKOKOS RM_KO RM_KBLACK RM_KWHITE RM_KRED RM_KGREEN RM_KBLUE RM_KSCRATCH RM_KMETALSILVER RM_KMETALGOLD RM_KSIGNATURE RM_KWAX RM_KPREMIUM RM_HOLO], description: 'Ribbon type' }, GShortPanelManagement: { validation: %w[AUTO CUSTOM OFF], description: 'Short panel management mode' }, GSmoothing: { validation: %w[STDSMOOTH ADVSMOOTH NOSMOOTH], description: 'Smoothing mode' }, IGStrictPageSetup: { validation: %w[ON OFF], description: 'Strict page setup mode' }, FBlackManagement: { validation: %w[NOBLACKPOINT ALLBLACKPOINT TEXTINBLACK], description: 'Black panel management mode (front)' }, BBlackManagement: { validation: %w[NOBLACKPOINT ALLBLACKPOINT TEXTINBLACK], description: 'Black panel management mode (back)' }, FColorBrightness: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Brightness adjustment for color panel (front)' }, BColorBrightness: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Brightness adjustment for color panel (back)' }, FColorContrast: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Contrast adjustment for color panel (front)' }, BColorContrast: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Contrast adjustment for color panel (back)' }, FHalftoning: { validation: %w[THRESHOLD FLOYD DITHERING CLUSTERED_DITHERING], description: 'Black panel adjustment (front)' }, BHalftoning: { validation: %w[THRESHOLD FLOYD DITHERING CLUSTERED_DITHERING], description: 'Black panel adjustment (back)' }, FMonochromeContrast: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Monochrome resin adjustment (front)' }, BMonochromeContrast: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Monochrome resin adjustment (back)' }, FOverlayContrast: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Varnish adjustment (front)' }, BOverlayContrast: { validation: (1..20).to_a.map! { |i| "VAL#{i}" }, description: 'Varnish adjustment (back)' }, FOverlayManagement: { validation: %w[NOVARNISH FULLVARNISH BMPVARNISH], description: 'Varnish type (front)' }, BOverlayManagement: { validation: %w[NOVARNISH FULLVARNISH BMPVARNISH], description: 'Varnish type (back)' }, FPageRotate180: { validation: %w[ON OFF], description: 'Rotate by 180° (front)' }, BPageRotate180: { validation: %w[ON OFF], description: 'Rotate by 180° (back)' }, GMagCoercivity: { validation: %w[OFF LOCO HICO], description: 'Magnetic coercivity' }, GMagT1Encoding: { validation: %w[ISO1 ISO2 ISO3 SIPASS C2 JIS2 C4 NONE], description: 'Magnetic Track 1 mode' }, GMagT2Encoding: { validation: %w[ISO1 ISO2 ISO3 SIPASS C2 JIS2 C4 NONE], description: 'Magnetic Track 2 mode' }, GMagT3Encoding: { validation: %w[ISO1 ISO2 ISO3 SIPASS C2 JIS2 C4 NONE], description: 'Magnetic Track 3 mode' }, Track1Data: { validation: String, description: 'Magnetic track 1 data' }, Track2Data: { validation: String, description: 'Magnetic track 2 data' }, Track3Data: { validation: String, description: 'Magnetic track 3 data' }, Resolution: { validation: %w[DPI300 DPI600300 DPI1200300], description: 'Resolution' }, IShortPanelShift: { validation: /^[0-9]+$/, description: 'Short panel management shift' }, Passthrough: { validation: String, description: 'Passthrough/Raw data' }, RawData: { validation: String, description: 'Passthrough/Raw data' } }
Instance Attribute Summary collapse
-
#active_session ⇒ String
Returns the active session.
Instance Method Summary collapse
-
#active_session? ⇒ true, false
Checks if there is an active session.
-
#call_rpc(method, args) ⇒ String, true
Makes the call to the API and returns results.
-
#initialize(host, port, service) ⇒ SdkBase
constructor
Initalizes the class, sets default options.
-
#list_settings ⇒ Hash
Of settings with descriptions.
-
#print_setting(setting) ⇒ String
String of description or false if setting does not exist.
-
#request ⇒ Hash?
Method to lookup the full request.
-
#response ⇒ Hash?
Method to lookup the full response.
-
#sanitize_parameters(param) ⇒ Hash, ...
Sanitizes parameters so they’re not anything other than a String.
-
#valid_base64?(string) ⇒ true, false
Basic checking for valid base64 string, as used in the SDK.
-
#valid_settings?(settings, key_only = false) ⇒ true, false
Checks if settings supplied are valid.
Constructor Details
#initialize(host, port, service) ⇒ SdkBase
Initalizes the class, sets default options
14 15 16 17 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 14 def initialize(host, port, service) @rpc = RpcClient.new(host, port) @service = service end |
Instance Attribute Details
#active_session ⇒ String
Returns the active session
7 8 9 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 7 def active_session @active_session end |
Instance Method Details
#active_session? ⇒ true, false
Checks if there is an active session
249 250 251 252 253 254 255 256 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 249 def active_session? return false unless self.active_session return false if self.active_session == nil return false unless self.active_session.is_a?(String) return false if self.active_session.empty? return true end |
#call_rpc(method, args) ⇒ String, true
Makes the call to the API and returns results
25 26 27 28 29 30 31 32 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 25 def call_rpc(method, args) method = sanitize_parameters(method) args = sanitize_parameters(args) resp = @rpc.call("#{@service}.#{method}", args) return true if resp == 'OK' return resp end |
#list_settings ⇒ Hash
Returns of settings with descriptions.
232 233 234 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 232 def list_settings return SETTINGS.map{ |key, value| [key, value[:description]] }.to_h end |
#print_setting(setting) ⇒ String
Returns string of description or false if setting does not exist.
226 227 228 229 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 226 def print_setting(setting) return SETTINGS[setting.to_sym][:description] if SETTINGS.has_key?(setting.to_sym) raise Error::InvalidPrintSettingError.new setting end |
#request ⇒ Hash?
Method to lookup the full request
44 45 46 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 44 def request @rpc.request end |
#response ⇒ Hash?
Method to lookup the full response
37 38 39 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 37 def response @rpc.response end |
#sanitize_parameters(param) ⇒ Hash, ...
Sanitizes parameters so they’re not anything other than a String
263 264 265 266 267 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 263 def sanitize_parameters(param) return param.map { |p| String(p) } if param.is_a?(Array) return param.map { |k, v| [String(k), String(v)] }.to_h if param.is_a?(Hash) return String(param) end |
#valid_base64?(string) ⇒ true, false
Basic checking for valid base64 string, as used in the SDK
240 241 242 243 244 245 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 240 def valid_base64?(string) return false unless string.is_a?(String) return false unless string.start_with?('base64:') return true end |
#valid_settings?(settings, key_only = false) ⇒ true, false
Checks if settings supplied are valid
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# File 'lib/evolis/premium_sdk/sdk_base.rb', line 198 def valid_settings?(settings, key_only = false) settings = settings.split(';') if settings.include?(';') settings = [settings] unless settings.is_a?(Array) settings.each do |pair| if key_only setting = pair else return false unless pair.include?('=') setting, value = pair.split('=') end return false unless SETTINGS.has_key?(setting.to_sym) unless key_only return false if !value return false if value.is_a?(String) && value.empty? return false if SETTINGS[setting.to_sym][:validation].is_a?(Array) && !SETTINGS[setting.to_sym][:validation].include?(value) return false if SETTINGS[setting.to_sym][:validation].is_a?(Class) && !value.is_a?(SETTINGS[setting.to_sym][:validation]) return false if SETTINGS[setting.to_sym][:validation].is_a?(Regexp) && value.is_a?(String) && value !~ SETTINGS[setting.to_sym][:validation] end return true end end |