class Object

Constants

USER_XCODE_SNIPPETS_DIRECTORY

Public Instance Methods

extract_front_matter!() click to toggle source
# File lib/oss_xcodesnippet/commands/install.rb, line 50
def extract_front_matter!
  @snippet = OSSXcodeSnippet::Snippet.new

  front_matter, contents = YAML::FrontMatter.extract(@content)

  if front_matter.empty?
    say_error "No YAML Front Matter Detected" and abort
  else
    @snippet.contents = contents.strip
    @snippet.completion_prefix = File.basename(@input_filepath, File.extname(@input_filepath))
    @snippet.language = case File.extname(@input_filepath)
                        when ".swift" then "Xcode.SourceCodeLanguage.Swift"
                        when ".m" then "Xcode.SourceCodeLanguage.Objective-C"
                        when ".mm" then "Xcode.SourceCodeLanguage.Objective-C++"
                        else ""
                        end
    @snippet.title = front_matter["title"] || ""
    @snippet.summary = front_matter["summary"] || ""
    @snippet.completion_scopes = [front_matter["completion-scope"]] || front_matter["completion-scopes"] || "All"
    @snippet.identifier = SecureRandom.uuid().upcase
    @snippet.is_user_snippet = true
    @snippet.version = 0
  end
end