小编tom*_*ham的帖子

跨Docker容器共享预编译资产

我有一个与我的rails容器分开的nginx容器,并且希望能够使用nginx容器从rails提供预编译资产.这听起来像卷容器的工作,但我很快就需要学习docker并无休止地阅读文档.有人不得不处理类似的情况吗?

ruby-on-rails nginx docker

21
推荐指数
2
解决办法
5295
查看次数

我应该实现方法链吗?

我正在编写一个javascript DSL,并想知道在实现允许在单个对象上调用多个方法的javascripts时,方法链是否是常见的做法.我来自Ruby背景,使用instance_eval更容易实现DSL,所以我更喜欢以类似的方式实现我的包,但我不想违反惯例.

我的选择是通过例子:

MyObject('test').method1(function() {
  console.log('hi');
}).method2(function() {
  console.log('bye');
});
Run Code Online (Sandbox Code Playgroud)

要么:

MyObject('test', function() {
  this.method1(function() {
    console.log('hi');
  });

  this.method2(function() {
    console.log('bye');
  });
});
Run Code Online (Sandbox Code Playgroud)

我想我会把它抛给JS大师,看看实现它的首选方法是什么.我认为这确实是个人偏好的问题,但可能有一种更为公认的方法.任何想法?

javascript dsl method-chaining

6
推荐指数
0
解决办法
110
查看次数

CMake库依赖项

这可能有点难以解释.我已经为我正在编写的一系列C++库设置了一个目录结构.我打算用CMake来处理这些库的构建.在大多数情况下,这些库是完全独立的"子系统",但在奇怪的地方,一个库需要访问另一个库中包含的头文件.这是我的目录结构.

base
 ?? cmake
 ?? docs
 ?? examples
 ?? sources
    ?? libA
    ?   ?? include
    ?   ?   ?? libA
    ?   ?       ?? core.h
    ?   ?       ?? *.h
    ?   ?? source
    ?   ?   ??*.cpp
    ?? libB
        ?? include
        ?   ?? libB
        ?       ?? message.h
        ?       ?? *.h
        ?? source
            ?? *.cpp
Run Code Online (Sandbox Code Playgroud)

CMakeLists.txt几个地方有文件.主要的是在根目录中base,它设置了一堆变量和选项,最后调用add_subdirectory(sources).在sourcesCMakeLists.txt文件只是简单地调用:

add_subdirectory(libA)
add_subdirectory(libB)
Run Code Online (Sandbox Code Playgroud)

最后有CMakeLists.txt两个文件libAlibB目录.除目标名称外,它们大致相同.其中一个文件的示例是:

set(target libA)

# Sources
set(include_path "${CMAKE_CURRENT_SOURCE_DIR}/include/${target}")
set(source_path  "${CMAKE_CURRENT_SOURCE_DIR}/source")

# Add …
Run Code Online (Sandbox Code Playgroud)

c++ cmake

6
推荐指数
2
解决办法
2948
查看次数

Phoenix框架模式匹配请求标头

我正在尝试为API版本实现自定义插件.现在我需要能够匹配通过请求头传递的值(即Accept: application/vnd.app.v1+json).到目前为止,我已实施以下内容:

defmodule UsersApi.Plugs.APIVersion do
  import Plug.Conn

  @versions ["application/vnd.app.v1+json", "application/vnd.app.v2+json"]

  def init(version), do: version

  def call(%{req_headers: %{"accept" => version}} = conn, _) when version in @versions do
    assign(conn, :version, version)
  end

  def call(conn, version), do: assign(conn, :version, version)
end
Run Code Online (Sandbox Code Playgroud)

这当前没有工作,并且call/2在没有指定接受标头时被设计为后备的第二个.如何匹配请求标头?

elixir phoenix-framework plug

3
推荐指数
1
解决办法
3089
查看次数