class Sourcery < Formula desc "Meta-programming for Swift, stop writing boilerplate code." homepage "https://github.com/krzysztofzablocki/Sourcery" url "https://github.com/krzysztofzablocki/Sourcery/archive/0.6.1.tar.gz" sha256 "6ecf08242cba168150035b4df9681e299fa4c0d709359e0eae091ea5b4f352cc" head "https://github.com/krzysztofzablocki/Sourcery.git" bottle do cellar :any sha256 "c2f0d8a92c9599b5a368ed64ffa77fd4efc2a6e7795ca0871c42dba9b3a14495" => :sierra end depends_on :xcode => ["6.0", :run] depends_on :xcode => ["8.3", :build] def install ENV.delete("CC") ENV["SDKROOT"] = MacOS.sdk_path system "swift", "build", "-c", "release", "-Xswiftc", "-static-stdlib" bin.install ".build/release/sourcery" lib.install Dir[".build/release/*.dylib"] end test do # Tests are temporarily disabled because of sandbox issues, # as Sourcery tries to write to ~/Library/Caches/Sourcery # See https://github.com/krzysztofzablocki/Sourcery/pull/133 # # Remove this test once the PR has been merged and been tagged with a release assert_match version.to_s, shell_output("#{bin}/sourcery --version").chomp # Re-enable these tests when the issue has been closed # # (testpath/"Test.swift").write <<-TEST_SWIFT # enum One { } # enum Two { } # TEST_SWIFT # # (testpath/"Test.stencil").write <<-TEST_STENCIL # // Found {{ types.all.count }} Types # // {% for type in types.all %}{{ type.name }}, {% endfor %} # TEST_STENCIL # system "#{bin}/sourcery", testpath/"Test.swift", testpath/"Test.stencil", testpath/"Generated.swift" # expected = <<-GENERATED_SWIFT # // Generated using Sourcery 0.5.3 - https://github.com/krzysztofzablocki/Sourcery # // DO NOT EDIT # # # // Found 2 Types # // One, Two, # GENERATED_SWIFT # assert_match expected, (testpath/"Generated.swift").read, "sourcery generation failed" end end