당신의 첫 번째 루비 보석을 만드는 방법(단계 안내서)
5607 단어 railsrubyopensource
그러나 개발자가 어디서부터 시작했는지 모르거나 창업판이 어디서 만들어졌는지 모르는 경우가 적지 않다.개발자들은 이것이 어렵고 복잡한 임무일 수도 있다고 생각하는데, 이런 상황도 매우 흔하다.
이 때문에 본고의 목적은 당신의 첫 번째gem를 어떻게 개발하고 개발 과정에서 관련된 서로 다른 구성 요소를 설명하는 것입니다.
이곳의 Rootstrap에서 우리는 개원 세계의 일부가 되는 것에 대해 매우 흥미를 느낀다.이 때문에 우리는 이 주제에서 한동안 일했고 서로 다른 언어/틀에 라이브러리를 구축하여 대중에게 보여 주었다.
예를 들어, 우리는 rsgem을 만들었습니다. 이것은 gm입니다. 이 문서에 기반한 gm를 만드는 기본 프로젝트를 만들 수 있습니다.
창업을 시작하다
이곳의 첫 번째 단계는
$ gem install rsgem
을 실행하여rsgem를 설치하는 것이다.gm가 설치되면, 우리가 원하는 gm 이름을 포함하여 $ rsgem new [name]
을 실행해야 합니다.이 블로그에서 우리는 실행 명령
$ rsgem new blog_gem
에 주의를 기울일 것이다. 왜냐하면 이것은 다음과 같은 구조를 가진 프로젝트를 생성하기 때문이다.특히gem rsgem은 디렉토리를 생성하고 파일을 표시하는 명령이기 때문에 명령 "bundle gem"을 기반으로 합니다.따라서, 우리는 우리가 만들고자 하는gem를 위한 서로 다른 구성 요소를 연구할 것이다.
휴지통 폴더
Bin 폴더에서 콘솔과 설치 파일을 찾습니다.여기서 중요한 것은 콘솔 파일을 강조 표시하는 유틸리티입니다. 여기서 다음 코드를 볼 수 있습니다.
#!/usr/bin/env ruby
require 'bundler/setup'
require 'blog_gem'
# You can add fixtures and/or initialization code here to make experimenting
# with your gem easier. You can also use a different console, if you like.
# (If you use this, don't forget to add pry to your Gemfile!)
# require "pry"
# Pry.start
require 'irb'
IRB.start(__FILE__)
만약gem를 사용하여 터미널에서 테스트를 해야 한다면, 명령 패키지 컨트롤러'require name '만 사용하면, 우리의 모든 방법으로 인터랙티브 루비 셸과 gm의 의존 항목에 접근할 수 있습니다.Googlegem 예시에서, Bundle 컨트롤러 blog gem만 포함하면 됩니다.라이브러리 폴더
Lib 폴더는 우리가 클래스, 코드, 방법을 놓은 곳이기 때문에, 클래스, 코드, 방법은gem을 사용할 때 개발자에게 제공된다.
자세히 보면 우리gem라는 폴더를 볼 수 있고, 폴더 안에서 보면 버젼이라는 파일을 발견할 수 있습니다.
이 버전 파일은gem의 현재 버전을 표시하는 데 사용되며,gempec 파일의 버젼 속성을 완성하는 데도 사용됩니다. 뒤에서 볼 수 있습니다.
이 외에도 gem 파일 이름이 있습니다.rb (예제 "blog gem.rb"에서) gm의 마스터 파일입니다.이 파일에는 다음과 유사한 특정 코드가 포함되어 있습니다.
require 'blog_gem/version'
module BlogGem
class Error < StandardError; end
# Your code goes here...
end
여기서 보듯이, 이것은 하나의 클래스입니다. 이 클래스에 코드를 직접 넣을 수 있습니다.개발자에 따라 달라지지만, 보통 이 파일에 코드를 추가하지 않습니다."Requires"를 파일에 추가하는 것이 아니라,gem 방법을 제공하는 클래스를 포함합니다.이 종류는 루비 준칙을 따르는 일반적인 오류 처리를 포함하고 있음을 알 수 있다.
사양 폴더
소프트웨어 개발 분야에서 좋은 소프트웨어는 항상 코드를 실현하는 단원 테스트를 지원해야 한다.Rootstrap에서는 Rspec을 사용합니다.
우리의 테스트 파일은 spec 폴더에 넣어야 합니다. 이것은 gm의 단원 테스트를 실현할 수 있도록 하기 때문에, RSpec 명령을 사용하여 컨트롤러에서 실행할 수 있습니다.
gempec 파일
require_relative 'lib/blog_gem/version'
Gem::Specification.new do |spec|
spec.name = 'blog_gem'
spec.version = BlogGem::VERSION
spec.authors = ['TimoPeraza']
spec.email = ['[email protected]']
spec.summary = ''
spec.description = ''
spec.homepage = ''
spec.license = 'MIT'
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
# spec.metadata["homepage_uri"] = spec.homepage
# spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir['LICENSE.txt', 'README.md', 'lib/**/*']
spec.bindir = 'exe'
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ['lib']
spec.add_development_dependency 'rake'
spec.add_development_dependency 'reek'
spec.add_development_dependency 'rspec'
spec.add_development_dependency 'rubocop'
spec.add_development_dependency 'simplecov', '~> 0.17.1'
end
이 파일에서, 우리의gem에 누가 만들었는지, 이메일, 설명, 버전 등 모든 정보를 제공할 것입니다.이 파일에는 gm가 발표할 수 있는 파일과 gm가 필요로 하는 외부 의존항도 포함됩니다.기본적으로 Rsgem은 Rake, Reek, Rspec, Rubocop 및 Simplecov과 같은 개발 종속성을 추가합니다.우리가 이렇게 하는 것은 코드의 질에 관심을 가지는 것을 좋아하기 때문에, 우리의gem가 가능한 한 높은 품질을 가지도록 이러한 의존항을 추가했다.
자술서
마지막으로, 자술한 파일에 gm와 관련된 모든 정보를 추가해야 합니다.예를 들어, 그것이 어떻게 작동하는지, 어떻게 설치하는지, 그것이 제공하는 방법, 그리고 개발자에게 유용한 모든 것들.
뭘 가져가?
현재 프로젝트에 포함된 구성 요소에 대해 대체적으로 알고 있습니다. 작업을 시작하고 첫 번째gem를 개발할 준비가 되어 있습니다.
이 동작을 어떻게 실행하는지에 대한 더 많은 정보는 아래 페이지 rubygems을 보시기를 강력히 권장합니다.
당신이 이 박문을 읽는 데 시간을 써 주셔서 감사합니다. 당신이 이 정보를 이용할 수 있기를 바랍니다.
Reference
이 문제에 관하여(당신의 첫 번째 루비 보석을 만드는 방법(단계 안내서)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/timoperaza/how-to-make-your-first-ruby-gem-a-step-by-step-guide-14ld텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)