Sha256: 828408627d33b5bf8853c6a428e3f5fc9ff2d7cfea09980d151ace0e7d37a282

Contents?: true

Size: 841 Bytes

Versions: 12

Compression:

Stored size: 841 Bytes

Contents

module Qcmd
  module QLab
    #
    #   "uniqueID": string,
    #   "displayName": string
    #   "hasPasscode": number
    #
    class Workspace
      attr_accessor :data, :passcode, :cue_lists

      def initialize options={}
        self.data = options
      end

      def name
        data['displayName']
      end

      def passcode?
        !!data['hasPasscode']
      end

      def id
        data['uniqueID']
      end

      # all cues in this workspace
      def cues
        cue_lists.map do |cl|
          load_cues(cl, [])
        end.flatten.compact
      end

      def has_cues?
        cues.size > 0
      end

      private

      def load_cues parent_cue, cues
        parent_cue.cues.each {|child_cue|
          cues << child_cue
          load_cues child_cue, cues
        }

        cues
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
qcmd-0.2.0 lib/qcmd/qlab/workspace.rb
qcmd-0.1.16 lib/qcmd/qlab/workspace.rb
qcmd-0.1.16.pre2 lib/qcmd/qlab/workspace.rb
qcmd-0.1.16.pre lib/qcmd/qlab/workspace.rb
qcmd-0.1.15 lib/qcmd/qlab/workspace.rb
qcmd-0.1.14 lib/qcmd/qlab/workspace.rb
qcmd-0.1.13 lib/qcmd/qlab/workspace.rb
qcmd-0.1.12 lib/qcmd/qlab/workspace.rb
qcmd-0.1.11 lib/qcmd/qlab/workspace.rb
qcmd-0.1.10 lib/qcmd/qlab/workspace.rb
qcmd-0.1.9 lib/qcmd/qlab/workspace.rb
qcmd-0.1.8 lib/qcmd/qlab/workspace.rb