"Fossies" - the Fresh Open Source Software Archive 
Member "selenium-selenium-4.8.1/rb/lib/selenium/webdriver/common/interactions/input_device.rb" (17 Feb 2023, 1783 Bytes) of package /linux/www/selenium-selenium-4.8.1.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Ruby source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
1 # frozen_string_literal: true
2
3 # Licensed to the Software Freedom Conservancy (SFC) under one
4 # or more contributor license agreements. See the NOTICE file
5 # distributed with this work for additional information
6 # regarding copyright ownership. The SFC licenses this file
7 # to you under the Apache License, Version 2.0 (the
8 # "License"); you may not use this file except in compliance
9 # with the License. You may obtain a copy of the License at
10 #
11 # http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing,
14 # software distributed under the License is distributed on an
15 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 # KIND, either express or implied. See the License for the
17 # specific language governing permissions and limitations
18 # under the License.
19
20 require 'securerandom'
21
22 module Selenium
23 module WebDriver
24 module Interactions
25 #
26 # Superclass for the input device sources
27 # Manages Array of Interaction instances for the device
28 #
29 # @api private
30 #
31
32 class InputDevice
33 attr_reader :name, :actions, :type
34
35 def initialize(name = nil)
36 @name = name || SecureRandom.uuid
37 @actions = []
38 end
39
40 def add_action(action)
41 raise TypeError, "#{action.inspect} is not a valid action" unless action.class < Interaction
42
43 @actions << action
44 end
45
46 def clear_actions
47 @actions.clear
48 end
49
50 def create_pause(duration = 0)
51 add_action(Pause.new(self, duration))
52 end
53
54 def encode
55 {type: type, id: name, actions: @actions.map(&:encode)} unless @actions.empty?
56 end
57 end # InputDevice
58 end # Interactions
59 end # WebDriver
60 end # Selenium