小编old*_*god的帖子

在Ruby 1.9.3中通过RSpec配置包含命名空间模块

我喜欢使用RSpec的include配置方法来包含仅用于命名空间的模块,这样我就不必为其内部类和模块使用完全限定名.这适用于Ruby 1.9.2中的RSpec 2.11.0.但现在在Ruby 1.9.3上这已不再适用了.我怎样才能让它再次运作?

这是一个示例foobar_spec.rb:

module Foo
  class Bar
  end
end

RSpec.configure do |config|
  config.include Foo
end

describe Foo::Bar do
  it "should work" do
    Bar.new
  end
end
Run Code Online (Sandbox Code Playgroud)

如果您通过以下命令调用它:

rspec foobar_spec.rb
Run Code Online (Sandbox Code Playgroud)

它可以在Ruby 1.9.2中正常工作.但它会在Ruby 1.9.3中引发以下错误:

Failure/Error: Bar.new
     NameError:
       uninitialized constant Bar
Run Code Online (Sandbox Code Playgroud)

ruby rspec namespaces ruby-1.9.3

3
推荐指数
2
解决办法
6319
查看次数

ServiceWorker:没有针对javascript触发请求的FetchEvent?

我正在使用Chrome stable 46.

我有一个非常基本的网站.一个button.onclick fetch('a')和一个<a>打开的标签b.这两个URL ab不存在的,我打算抓住他们的服务人员和刚刚返回new Response().

如果我单击提取的按钮a,服务工作者不参与,我收到404错误.
但是,如果我点击进入的链接,b服务工作人员就会获取并返回响应.

问题:为什么服务工作者没有为fetch('a')请求获取任何FetchEvent ?

请参阅以下文件

HTML

<html>
  <body>
    <p><button onclick="fetch('a');">fetch a</button></p>
    <p><a href="b">go to b</a></p>
    <script src="js.js" defer></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

js.js

navigator.serviceWorker.register('sw.js');
Run Code Online (Sandbox Code Playgroud)

sw.js

self.onfetch = function(event) {
  var request = event.request;
  event.respondWith(
    caches.match(request).then(function(response) {
      return new Response('here is your onfetch response');
    })
  );
};
Run Code Online (Sandbox Code Playgroud)

javascript fetch asp.net-web-api service-worker fetch-api

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

多部分/替代内容类型需要内容传输编码吗?

我有一个发送电子邮件的应用程序,并且好几个月,它运行正常.我最近遇到了utf-8发送到iPhone的编码电子邮件的问题Exchange account(即没有IMAP).
所有的接收者都必须看到一大堆毫无意义的人物LS0tLS0tPV9QYXJ0XzE0N18[....].

将我的电子邮件标题与Gmail进行比较后,我注意到我有一个额外的Content-Transfer-Encoding关联Content-Type: multipart/alternative;.
我的电子邮件看起来像

Delivered-To: ...
Received: ...
...
MIME-Version: ...
Content-Type: multipart/alternative; 
    boundary="----=_boundary" 
Content-Transfer-Encoding: Base64  # <= the extra setting

----=_boundary
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: Base64

YmVu0Cg==

----=_boundary
Content-type: text/html; charset=utf-8
Content-Transfer-Encoding: Base64

PGh0bWwgeG1sbnM6bz0iIj48aGVhZD48dGl0bGU+PC90aXRsZT48L2hlYWQ+PGJvZHk+YmVub2l0
PC9ib2R5PjwvaHRtbD4NCjx9IjAiIC8+Cg==

----=_boundary
Run Code Online (Sandbox Code Playgroud)

如果我删除了额外的设置,我的电子邮件将被收到并正确显示.

我的问题:

  1. 是否Encoding基本需要设置Content-Type: multipart/alternative;,即使是特定情况?
  2. 删除它是否安全,并像以前一样继续使用我的应用程序?

编辑 我发现IETF:

编码注意事项:多部分内容类型不能包含编码.

但我也发现Wikipedia:

多部分类型的内容传输编码必须始终是"7比特","8比特"或"二进制",以避免多级解码所带来的复杂性.

这不矛盾吗?

email postfix-mta smtp content-type sendmail

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

没有被/\s /转义的空格

我正在处理一些以奇怪方式表现的字符串.

在ruby中的正则表达式中,/ s不识别某些空格.

"175  75   16C  101/99    R".gsub( /\s/ , 'x' )
 => "175 x75  x16C x101/99   xR"
Run Code Online (Sandbox Code Playgroud)

预期的结果是每个空格都转换为'x'

我试图强制编码为UTF-8到字符串,但它也没有工作.我需要一个正则表达式匹配我的字符串中的每种空格并将它们转换为常规空格.

编辑:

str.encode('utf-8').chars.each { |c| puts c.ord }     
49
55
53
160
32
55
53
160
160
32
49
54
67
160
32
49
48
49
47
57
57
160
160
160
32
82
Run Code Online (Sandbox Code Playgroud)

ruby regex whitespace

2
推荐指数
1
解决办法
87
查看次数

如何使用 Espresso 检查 BottomNavigationItemView 的断言?

BottomNavigationItemView实现ItemView具有该setChecked()方法的接口。

我试图用 Espresso 断言检查了一个 itemView 但我得到了同样的错误,无论我的期望值是什么,isChecked()或者isNotChecked().

我的测试:

ViewInteraction buttonHome = onView(
    allOf(withId(R.id.bottomHome),
          childAtPosition(
              childAtPosition(
                  withId(R.id.bottom_navigation),
                  0),
              0),
          isDisplayed()));
    buttonHome.check(matches(isNotChecked()));
Run Code Online (Sandbox Code Playgroud)

错误信息

android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'with checkbox state: is <true>' doesn't match the selected view.
Expected: with checkbox state: is <true>
Got: "BottomNavigationItemView{id=2131493015, res-name=bottomHome, visibility=VISIBLE, width=360, height=168, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}"
Run Code Online (Sandbox Code Playgroud)

我怎么能断言 aBottomNavigationItemView是当前选定的项目BottomNavigationView

android android-testing android-espresso bottomnavigationview

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

如何在Android中将视图与屏幕右侧对齐?

如何在Android中将视图与屏幕右侧对齐?我用过这个但没有用过请帮忙吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/widget0"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#FFFFFF" android:paddingLeft="10px" android:paddingTop="10px"
    android:paddingBottom="10px" android:paddingRight="10px">

    <LinearLayout android:id="@+id/heading" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:orientation="horizontal">

        <ImageView android:id="@+id/widget30" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:src="@drawable/logo_cpw">
        </ImageView>

            <EditText android:id="@+id/widget28" android:layout_width="134px"
                android:layout_height="35px" android:text="EditText"
                android:textSize="18sp" android:background="@drawable/rounded_edit_text_effects"
                android:gravity="right" android:layout_alignParentRight="true" android:paddingRight="-10px">
            </EditText>

    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我使用了absoluteLayout而不是relativelayout,但那也没用.请帮忙 ?

android

1
推荐指数
1
解决办法
2万
查看次数

使用Fixnum对象和String对象处理object_id方法的区别

我对所有ruby对象中存在的一种先天方法(即object_id方法)的工作感到困惑.当我一次又一次地在任何Fixnum对象上运行object_id方法时,例如在irb中,如果我这样做,

>> 100.object_id
=> 201

并再次这样做,

>> 100.object_id
=> 201

但是当我使用String对象时

>>"你好".object_id
=> 162333336

并再次这样做,

>>"你好".object_id
=> 15502236

为什么这样?在ruby中,一切都是一个对象,每个对象都有一个名为object_id的固有方法,它唯一地标识对象.但是在这里,ruby让我感到困惑,因为它将具有相同文本(即"Hello")的两个字符串视为不同,但两个具有相同值(即100)的Fixnum对象相同,并为它们提供相同的对象ID.为什么这样?谁能帮帮我吗?

ruby ruby-on-rails

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

多线如果是红宝石

我知道其他地方已经触及了这些问题,但我对if elseruby中多行(块?)语句的正确语法略感不安.

举个例子:

if condition then
  do something
  do somethingelse
  do yetanotherthing
  done
else
  do acompletelyunrelatedthing
done
Run Code Online (Sandbox Code Playgroud)

我知道then如果使用多行,则需要声明,但是doneelse必要之前是否需要?这似乎会脱离if...else上下文.当我这样做时,done我得到:

syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

当我不包括它时,我得到:

syntax error, unexpected keyword_else, expecting keyword_end

ruby if-statement block

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

Rails模型奇异格式

这是在我的应用程序中创建模型时是否发生错误的问题.

我以通常的方式创建了一个模型

rails g model Media
Run Code Online (Sandbox Code Playgroud)

现在我认为这实际上会创造以下内容

 class CreateMedias < ActiveRecord::Migration
   def change
     create_table :medias do |t|
       t.timestamps
     end
   end
 end
Run Code Online (Sandbox Code Playgroud)

但它没有创造

  class CreateMedia < ActiveRecord::Migration
    def change
      create_table :media do |t|
        t.timestamps
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

我认为模型表示为单一媒体,但数据库由许多媒体组成.为什么迁移不会改变为媒体?最好删除此模型并再次尝试,还是这种正常行为?

谢谢

ruby model ruby-on-rails-3

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

Android 在 WebView 请求上添加 X-Requested-With 有什么好处?

全部在标题中。

每次自动设置此标头对任何人都有好处吗?有谁知道这个规范背后的想法?

android android-webview

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