Sha256: c48a522bd63c08f7c649fb74fb00555250fd63e1dd4a02af7104dd179105f9d5

Contents?: true

Size: 848 Bytes

Versions: 7

Compression:

Stored size: 848 Bytes

Contents

# frozen_string_literal: true

require "sod"

module Milestoner
  module CLI
    module Actions
      module Cache
        # Handles creating or updating a user within the cache.
        class Create < Sod::Action
          include Import[:logger, client: :cache]

          description "Create user."

          ancillary %(Example: "1,zoe,Zoƫ Washburne".)

          on %w[-c --create], argument: "external_id,handle,name"

          def call values
            process(values).bind { |user| log_info "Created: #{user.name.inspect}" }
          end

          private

          def process values
            external_id, handle, name = values.split ","
            client.commit(:users) { upsert({external_id:, handle:, name:}) }
          end

          def log_info(message) = logger.info { message }
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
milestoner-17.6.0 lib/milestoner/cli/actions/cache/create.rb
milestoner-17.5.0 lib/milestoner/cli/actions/cache/create.rb
milestoner-17.4.0 lib/milestoner/cli/actions/cache/create.rb
milestoner-17.3.0 lib/milestoner/cli/actions/cache/create.rb
milestoner-17.2.0 lib/milestoner/cli/actions/cache/create.rb
milestoner-17.1.0 lib/milestoner/cli/actions/cache/create.rb
milestoner-17.0.0 lib/milestoner/cli/actions/cache/create.rb