如果源不可访问,请忽略Gemfile`source`

时间:2016-09-08 09:04:15

标签: ruby rubygems bundler gemfile

我们有一个内部gem服务器来存储一些组织特定的gem。我们通过Gemfile中的源选项使用它:

source 'https://local-gems.example.com' do
  gem 'local-gem'
end

内部gem服务器仅在内部网络上可用。

如果我不在网络上,我可以运行bundle if:

  1. 我注释掉了source声明(以及相关的end
  2. 源组中定义的gem已安装在系统上。
  3. 这意味着如果我在家工作,我需要记住注释掉source声明,然后记得在提交任何更改之前再次取消注释。

    有没有办法修改Gemfile,以便检测到源不可用并忽略它?也就是说,我可以配置Gemfile,这样每次我离开本地网络时都不必注释掉这些行吗?

1 个答案:

答案 0 :(得分:2)

您可以将任意Ruby添加到您的Gemfile中,这样您就可以执行以下操作:

string oneToThousand = @"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n" +
                        "21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31\r\n32\r\n33\r\n34\r\n35\r\n36\r\n37\r\n38\r\n39\r\n40\r\n" +
                        "41\r\n42\r\n43\r\n44\r\n45\r\n46\r\n47\r\n48\r\n49\r\n50\r\n51\r\n52\r\n53\r\n54\r\n55\r\n56\r\n57\r\n58\r\n59\r\n60\r\n" +
                        "61\r\n62\r\n63\r\n64\r\n65\r\n66\r\n67\r\n68\r\n69\r\n70\r\n71\r\n72\r\n73\r\n74\r\n75\r\n76\r\n77\r\n78\r\n79\r\n80\r\n" +
                        "81\r\n82\r\n83\r\n84\r\n85\r\n86\r\n87\r\n88\r\n89\r\n90\r\n91\r\n92\r\n93\r\n94\r\n95\r\n96\r\n97\r\n98\r\n99\r\n100\r\n";
                        /* Continue to 1000 */

Console.WriteLine(oneToThousand);

例如,您可以像这样使用if (some check if hostname resolves) source 'https://local-gems.example.com' do gem 'local-gem' end end

curl
相关问题