Thor : 클래스 변수가 작동하지 않습니다.

옵티머스 프라임

다음 테스트 코드가 있습니다.

require "thor"

module Snap
  class CLI < Thor
    desc 'login', 'Login Credentials'
    def login(user,pass)
      @username = user
      @password = pass
      say @password
    end

    desc 'block', 'Block user'
    def block(input)
      say @username
    end
  end
end

명령 줄에 Snap login abc xyz를 입력하면 xyz로 출력을 얻습니다. 하지만 Snap block a를 입력하면. 내가 얻는 출력은 공백입니다. 즉 : 사용자 이름이나 암호에 아무것도 저장되지 않습니다.

이것이 왜이며 어떻게 해결할 수 있습니까?

패트릭 오스 시티

문제는 프로그램이 두 번의 명령 호출 사이에 종료된다는 것입니다. 따라서 모든 상태가 손실되고 결과적으로 사용자 이름이 손실됩니다.

명령의 여러 호출에서 변수를 유지하려면 파일에 저장해야합니다. 예를 들어 사용자의 홈 디렉토리에 숨겨진 파일을 yaml 형식으로 저장할 수 있습니다.

주의 : 이렇게하면 구성 파일에 일반 텍스트로 암호가 저장됩니다!

require 'thor'
require 'yaml'

module Snap
  class CLI < Thor
    def initialize(*args)
      super
      read_config
    end

    desc 'login', 'Login Credentials'
    def login(user, pass)
      @username = user
      @password = pass
      say @password
      write_config
    end

    desc 'block', 'Block user'
    def block(input)
      say @username
    end

    private

    CONFIG_FILE = '~/.myprogram.conf'

    def write_config
      config = {}
      config['username'] = @username
      config['password'] = @password
      File.open(CONFIG_FILE, 'w') do |f|
        f.write config.to_yaml
      end
    end

    def read_config
      config = YAML.load_file(CONFIG_FILE)
      @username = config['username']
      @password = config['password']
    end
  end
end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CodeinGame Power of Thor 레벨 2가 작동하지 않습니다.

분류에서Dev

getWidth가 클래스 변수로 올바르게 작동하지 않습니다.

분류에서Dev

GestureRecognizer의 하위 클래스가 작동하지 않습니다.

분류에서Dev

Typecasting PFObject 하위 클래스가 작동하지 않습니다.

분류에서Dev

Init 하위 클래스가 작동하지 않습니다.

분류에서Dev

Jquery 추가 클래스가 작동하지 않습니다.

분류에서Dev

Wordpress 메뉴 CSS 클래스가 작동하지 않습니다.

분류에서Dev

Wordpress 메뉴 CSS 클래스가 작동하지 않습니다.

분류에서Dev

예외 클래스 코드가 작동하지 않습니다.

분류에서Dev

싱글 톤 클래스가 작동하지 않습니다.

분류에서Dev

CSS 클래스가 제대로 작동하지 않습니다.

분류에서Dev

CSS 클래스가 작동하지 않습니다.

분류에서Dev

mysqli db 연결 클래스가 작동하지 않습니다.

분류에서Dev

Jquery .find 클래스가 작동하지 않습니다.

분류에서Dev

AngularJS 조건부 클래스가 작동하지 않습니다.

분류에서Dev

CSS 클래스 선택기가 작동하지 않습니다.

분류에서Dev

CSS onclick 활성 클래스가 작동하지 않습니다.

분류에서Dev

WC_Customer () 클래스가 작동하지 않습니다.

분류에서Dev

PHP 템플릿 클래스가 작동하지 않습니다.

분류에서Dev

@Autowired가 @Configurable 클래스에서 작동하지 않습니다.

분류에서Dev

Django 아바타 클래스가 작동하지 않습니다.

분류에서Dev

PHP print- TD 클래스가 작동하지 않습니다.

분류에서Dev

Javascript 클래스 생성자가 작동하지 않습니다.

분류에서Dev

예외 클래스가 작동하지 않습니다.

분류에서Dev

PHP 클래스 $ this-> regex가 작동하지 않습니다.

분류에서Dev

클래스 구문의 $ watch가 작동하지 않습니다.

분류에서Dev

css 클래스가 제대로 작동하지 않습니다.

분류에서Dev

Codeigniter 이메일 클래스가 작동하지 않습니다.

분류에서Dev

Java 클래스 함수가 제대로 작동하지 않습니다.

Related 관련 기사

  1. 1

    CodeinGame Power of Thor 레벨 2가 작동하지 않습니다.

  2. 2

    getWidth가 클래스 변수로 올바르게 작동하지 않습니다.

  3. 3

    GestureRecognizer의 하위 클래스가 작동하지 않습니다.

  4. 4

    Typecasting PFObject 하위 클래스가 작동하지 않습니다.

  5. 5

    Init 하위 클래스가 작동하지 않습니다.

  6. 6

    Jquery 추가 클래스가 작동하지 않습니다.

  7. 7

    Wordpress 메뉴 CSS 클래스가 작동하지 않습니다.

  8. 8

    Wordpress 메뉴 CSS 클래스가 작동하지 않습니다.

  9. 9

    예외 클래스 코드가 작동하지 않습니다.

  10. 10

    싱글 톤 클래스가 작동하지 않습니다.

  11. 11

    CSS 클래스가 제대로 작동하지 않습니다.

  12. 12

    CSS 클래스가 작동하지 않습니다.

  13. 13

    mysqli db 연결 클래스가 작동하지 않습니다.

  14. 14

    Jquery .find 클래스가 작동하지 않습니다.

  15. 15

    AngularJS 조건부 클래스가 작동하지 않습니다.

  16. 16

    CSS 클래스 선택기가 작동하지 않습니다.

  17. 17

    CSS onclick 활성 클래스가 작동하지 않습니다.

  18. 18

    WC_Customer () 클래스가 작동하지 않습니다.

  19. 19

    PHP 템플릿 클래스가 작동하지 않습니다.

  20. 20

    @Autowired가 @Configurable 클래스에서 작동하지 않습니다.

  21. 21

    Django 아바타 클래스가 작동하지 않습니다.

  22. 22

    PHP print- TD 클래스가 작동하지 않습니다.

  23. 23

    Javascript 클래스 생성자가 작동하지 않습니다.

  24. 24

    예외 클래스가 작동하지 않습니다.

  25. 25

    PHP 클래스 $ this-> regex가 작동하지 않습니다.

  26. 26

    클래스 구문의 $ watch가 작동하지 않습니다.

  27. 27

    css 클래스가 제대로 작동하지 않습니다.

  28. 28

    Codeigniter 이메일 클래스가 작동하지 않습니다.

  29. 29

    Java 클래스 함수가 제대로 작동하지 않습니다.

뜨겁다태그

보관