Jekyll에서 관련 포스트 기능이 이상하게 동작해서 해당 플러그인을 수정할 필요가 있었다. 플러그인이 Ruby라서 관련 문법을 정리해서 다음에 수정할 때 참고해야겠다.
디버깅 관련 :
|
puts variable.inspect puts variable.methods.sort puts variable.to_yaml |
문자열 관련 :
|
# concat STR1 = "A" STR2 = "B" source = "#{STR1}/#{STR2}/App.config" # replace 'AAA BBB'.gsub('AAA', 'CCC') |
배열 관련 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
# 배열 생성 arr = [] # 배열에 원소 추가 arr << el # 배열 갯수 arr.length # 배열 루프 arr.each do |row| puts "row: #{row}" end # mixed list site.pages.each {|row| puts "#{row.title}"} # 배열 모두 제거. arr을 전체 원소에 remove 액션 실행 arr.map(&:remove) |
클래스 관련 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
# 클래스 선언 class ClassName end # 새로운 인스턴스 만들기 instance = ClassName.new # 모듈 - ModuleName.rb로 저장 module ModuleName def ModuleName.methodName() return 'return value' end end # 모듈 사용 - return value를 출력 require './ModuleName.rb' puts ModuleName.methodName() |
모듈 확장하는 방법:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
# 모듈 정의 module ModuleName def ModuleMethodName puts "return value" end end # 인스턴스 메소드로 사용 가능 class ClassName1 include ModuleName end ClassName1.new.ModuleMethodName # return value # 클래스 메소드로 사용 가능 class ClassName2 extend ModuleName end ClassName2.ModuleMethodName # return value |
self.included를 사용한 모듈 확장
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
# 확장 모듈 module ModuleName # ClassModule을 클래스 메소드로 사용하기 위해 확장하는 역할 def self.included(klass) klass.extend(ClassModule) end # 클래스 메소드 정의 모듈 정의 module ClassModule def ClassMethodName return "return class" end end # 인스턴스 메소드 def InstanceMethodName puts "return instance" end end # ModuleName을 확장한 클래스 정의 class ClassName include ModuleName end # 클래스 사용 ClassName.ClassMethodName # return class ClassName.new.InstanceMethodName # return instance |
이슈
ERROR: Could not find a valid gem
gem을 설치하는데, 다음 에러가 발생했다.
|
λ gem install mdl ERROR: Could not find a valid gem 'mdl' (>= 0), here is why: Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz) |
SHA-1 개인키 서명이 취약해지면서 브라우저가 변하는 것을 대비하려고, 웹서버들이 SHA-2(특히, SHA256 이상)로 업그레이드 하게된 것이 원인이다.
해결방법은 최신 RubyGems을 다운로드하고, 설치하는 것이다.
|
gem install rubygems-update-2.6.11.gem update_rubygems |