我的源代码如下:
<h3>Header3 (Start here)</h3>
<ul>
<li>List items</li>
<li>Etc...</li>
</ul>
<h3>Header 3</h3>
<ul>
<li>List items</li>
<ul>
<li>Nested list items</li>
<li>Nested list items</li></ul>
<li>List items</li>
</ul>
<h2>Header 2 (end here)</h2>
Run Code Online (Sandbox Code Playgroud)
我希望所有"li"标签跟在第一个"h3"标签之后,并停在下一个"h2"标签,包括所有嵌套的li标签.
firstH3 = soup.find('h3')
正确找到我想要开始的地方.
firstH3 = soup.find('h3') # Start here
uls = []
for nextSibling in firstH3.findNextSiblings():
if nextSibling.name == 'h2':
break
if nextSibling.name == 'ul':
uls.append(nextSibling)
Run Code Online (Sandbox Code Playgroud)
给我一个UL列表,每个都有我需要的LI内容.
摘录"uls"列表:
<ul>
...
<li><i><a href="/wiki/Agent_Cody_Banks" title="Agent Cody Banks">Agent Cody Banks</a></i> (2003)</li>
<li><i><a href="/wiki/Agent_Cody_Banks_2:_Destination_London" title="Agent Cody Banks 2: Destination London">Agent Cody Banks 2: Destination …
Run Code Online (Sandbox Code Playgroud) RSpec有:
describe "the user" do
before(:each) do
@user = Factory :user
end
it "should have access" do
@user.should ...
end
end
Run Code Online (Sandbox Code Playgroud)
你会如何用Test :: Unit对这样的测试进行分组?例如,在我的控制器测试中,我想在用户登录时以及没有人登录时测试控制器.
我想写一个gem,一旦捆绑到Rails 3.1 Gemfile,包含一些样板CSS和JS文件.
我知道生成器,但是如果没有它们我怎么能这样做,这样可以添加和删除gem的效果而不需要在Rails Gemfile中编辑一行?
理想情况下,我希望gem在安装时包含其默认的CSS/JS,然后让用户使用生成器生成CSS/JS文件,如果他们想要进行任何修改.
这是我从jquery-rails复制的示例gem ,其中包含没有生成器的javascript文件.
css_gem/
lib/
css_gem.rb {1}
css_gem/
engine.rb {2}
app/
assets/
stylesheets/
css_gem/
index.css {3}
base.css {4}
Run Code Online (Sandbox Code Playgroud)
{1} lib/css_gem.rb
module CssGem
require "css_gem/engine"
end
Run Code Online (Sandbox Code Playgroud)
{2} lib/css_gem/engine.rb
module CSSGem
class Engine < Rails::Engine
end
end
Run Code Online (Sandbox Code Playgroud)
{3} app/assets/stylesheets/css_gem/index.css
/*
*= require base
*/
Run Code Online (Sandbox Code Playgroud)
{4} app/assets/stylesheets/css_gem/base.css
.custom { color: red; }
Run Code Online (Sandbox Code Playgroud)
Rails Gemfile
gem 'css_gem', :path => 'path_to_my_local_gem'
Run Code Online (Sandbox Code Playgroud)
这对我不起作用,Rails没有看到CSS文件.我究竟做错了什么?
解决方案:谢天谢地,我找到了一个视频来握住我的手:http://house9.blogspot.com/2011/06/rails-31-asset-gem.html
我不得不手动添加*= require css_gem
到我的Rails样式表清单(app/assets/stylesheets/application.css).咄.
我正在试图弄清楚如何手动签署/验证提交,但我无法弄清楚正在签署哪些数据来创建签名.换句话说,我想不出什么<data>
在gpg --verify <commit-sig> <data>
需求如此.
这是git源代码的相关部分:https://github.com/git/git/blob/master/commit.c#L1047-L1231但我也是C.的新手.
这是一些示例数据:
在一个新的git仓库中,我创建了一个文件ledger.txt
并使用签名提交提交它:
git config --global user.signingkey 7E482429
git init
echo "EAC5-531F-38E8-9670-81AE-4E77-C7AA-5FC3-7E48-2429 1\n" > ledger.txt
git add ledger.txt
git commit -m "Initial commit" --gpg-sign=7E482429
Run Code Online (Sandbox Code Playgroud)
在这里它是在日志中:
git log --show-signature
commit 876793da21833b5b8197b08462523fd6aad3e5ba
gpg: Signature made Fri May 9 20:01:55 2014 CDT using RSA key ID 7E482429
gpg: Good signature from "Dan Neumann <danrodneu@gmail.com>"
Author: Dan Neumann <danrodneu@gmail.com>
Date: Fri May 9 20:01:55 2014 -0500
Initial commit
Run Code Online (Sandbox Code Playgroud)
这是漂亮的打印提交对象(它存在于.git/objects/87/6793da21833b5b8197b08462523fd6aad3e5ba …
我有一个运行全新安装的Ubuntu 10.04 LTS的VPS.我正在尝试使用Flask微框架设置一个实时应用程序,但它给了我麻烦.当我试图让它运行时我记笔记,这是我的逐个播放,以确定我出错的确切位置.
http://flask.pocoo.org/docs/installation/#installation
$ adduser myapp
$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv
/home/myapp/
-- www/
$ sudo pip install virtualenv
/home/myapp/
-- www/
-- env/
$ . env/bin/activate
$ easy_install Flask
Run Code Online (Sandbox Code Playgroud)
http://flask.pocoo.org/docs/deploying/mod_wsgi/
$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-wsgi
Run Code Online (Sandbox Code Playgroud)
$ nano /home/myapp/www/myapp.wsgi
--myapp.wsgi contents:--------------------------
activate_this = '/home/myapp/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
from myapp import app as application
/home/myapp/
-- www/
-- myapp.wsgi
-- env/
Run Code Online (Sandbox Code Playgroud)
$ nano …
Run Code Online (Sandbox Code Playgroud) 我的控制器规范失败,因为Factory Girl似乎正在创建非唯一用户,即使我对需要唯一的用户属性进行排序.
错误
1) TopicsController POST #create when topic is invalid should render new
Failure/Error: let(:invalid_topic) {Factory.build :invalid_topic}
ActiveRecord::RecordInvalid:Validation failed: Email has already been taken, Username has already been taken
2) TopicsController POST #create when topic is valid should redirect to show
Failure/Error: let(:valid_topic) {Factory.build :topic}
ActiveRecord::RecordInvalid:
Validation failed: Email has already been taken, Username has already been taken
Run Code Online (Sandbox Code Playgroud)
控制器规格(RSpec)
describe "POST #create" do
let(:valid_topic) {Factory.build :topic}
let(:invalid_topic) {Factory.build :invalid_topic}
context "when topic is invalid" do
it "should render new" …
Run Code Online (Sandbox Code Playgroud) 与大多数网站的工作方式相同,我将"UsErNaMe"存储在数据库中,但允许用户使用"用户名"登录.
这是一个相当明显和必要的功能,很多人似乎已经问过它,但我一直磕磕绊绊的解决方案似乎与Devise自己的文档没有关系.
例如,请考虑此博客文章:http://anti-pattern.com/2011/5/16/case-insensitive-keys-with-devise
[...]你可能遇到了一些用户喜欢用大写字母在他们的登录名(电子邮件和/或用户名)中输入某些字母的问题,但是当他们尝试登录时,他们希望它不区分大小写.没有不合理的要求[...]
凉!这就是我想要的.
他的解决方案
# config/initializers/devise.rb
Devise.setup do |config|
config.case_insensitive_keys = [:email, :username]
end
Run Code Online (Sandbox Code Playgroud)
这是我一直在寻找的解决方案.但这是该配置选项的文档:
# Configure which authentication keys should be case-insensitive.
# These keys will be downcased upon creating or modifying a user and when used
# to authenticate or find a user. Default is :email.
config.case_insensitive_keys = [ :username, :email ]
Run Code Online (Sandbox Code Playgroud)
特别是:"这些密钥将在创建/修改用户时降低." 换句话说,用户名在数据库中被降级.
核实:
User.create username: "UsErNaMe", password: "secret", email: "email@com.com"
#=> <User username="username"...>
Run Code Online (Sandbox Code Playgroud)
我错过了一些痛苦明显的东西吗?
巫术认证宝石:https://github.com/NoamB/sorcery
Sorcery的创建者在其Test :: Unit功能测试中提供了一个带有Sorcery测试助手的示例Rails应用程序:https://github.com/NoamB/sorcery-example-app/blob/master/test/functional/users_controller_test.rb
# Test::Unit functional test example
require 'test_helper'
class UsersControllerTest < ActionController::TestCase
setup do
@user = users(:noam)
end
test "should show user" do
login_user
get :show, :id => @user.to_param
assert_response :success
end
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何使用login_user
我的RSpec控制器规格.
/gems/sorcery-0.7.5/lib/sorcery/test_helpers/rails.rb:7:in `login_user':
undefined method `auto_login' for nil:NilClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
以下是关于上述错误的Sorcery gem中的相关代码:https: //github.com/NoamB/sorcery/blob/master/lib/sorcery/test_helpers/rails.rb
module Sorcery
module TestHelpers
module Rails
# logins a user and calls all callbacks
def login_user(user = nil)
user ||= @user
@controller.send(:auto_login,user)
@controller.send(:after_login!,user,[user.send(user.sorcery_config.username_attribute_names.first),'secret']) …
Run Code Online (Sandbox Code Playgroud) 我有一堆文件名为:
2011-04-02-hello.rb
2011-04-02-bye.rb
2011-06-22-cat.rb
2011-06-17-dog.rb
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以通过键入访问第一个文件vim h<TAB>
,并自动完成其余文件.
在终端中,如何在名称中间自动填充部分匹配的文件名?
我正在学习Scala,但我正在努力学习如何设置开发环境.
文件层次结构
my_app/
|
+-- Gemfile
+-- app.rb
Run Code Online (Sandbox Code Playgroud)的Gemfile
source :rubygems
gem "mechanize"
Run Code Online (Sandbox Code Playgroud)app.rb
require "mechanize"
agent = Mechanize.new
page = agent.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)安装依赖项并运行它
$ bundle install
$ ruby app.rb
Run Code Online (Sandbox Code Playgroud)我正在阅读关于sbt以及package/imports/jar依赖项如何在Java/Scala中工作,但我似乎无法过滤掉这些必需品.
运行sbt
并下载Mechanize依赖项后,如何识别使其运行所需的必要import
语句?
val agent = new MechanizeAgent
val page: HtmlDocument = agent.get("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)我通过手动导入.jars然后从库中导入包直到编译器/运行时错误停止并且代理工作,从而在Eclipse中工作.但这种经历令人沮丧,我来这里悔改.
这个问题的含义:Java生态系统/工作流程对我来说是压倒性的,因为他已经习惯了Ruby的轻松无IDE工作流程.我认为相当于一块骨头会给我一个开始建立的地方.
理想情况下,我希望在依赖Eclipse之前让Scala开发只使用Vim和命令行.
这个Iconv习惯用法将字符串转码为UTF-8并删除无法音译的字符:
require "iconv"
def normalize(text)
Iconv.new('UTF-8//IGNORE', 'UTF-8').iconv(text.dup)
end
Run Code Online (Sandbox Code Playgroud)
你怎么会为此写一个测试?
编辑:我最终简化了问题,因为我意识到尝试在Rails # encoding: utf-8
spec文件中测试它的上下文使问题变得复杂.所以现在赏金有点傻但是我会奖励它,如果有人可以展示我可以解决的测试.
我刚才最近捡起它,让我的网络服务器上的Python运行起来很烦人.
我选择了Bottle.py,因为它看起来很简单,易于访问和包含.我对Web服务器的工作原理(如何弄乱它们)的经验和知识很少,如果我不需要,我不愿意使用我的服务器的Apache,因为它已经托管了一个非常活跃的留言板.
Bottle的文档似乎假定了我没有的服务器/ python理解的一两步,因为我已经将bottle.py复制到我的doc根目录时,我甚至不确定在哪里放置实际的路由/网站内容.或者当我去"mydomain.com"时服务器如何知道运行瓶子(或执行python).
这个jquery代码适用于jquery格式.
我想将此jquery代码转换为coffeescript代码:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('.preview_browse img#thumb').attr('src', e.target.result).width(251).show();
};
reader.readAsDataURL(input.files[0]);
$('.not_found_image_browse').hide();
}
}
Run Code Online (Sandbox Code Playgroud)
我从http://js2coffee.org/获得此代码:
readURL = (input) ->
if input.files and input.files[0]
reader = new FileReader()
reader.onload = (e) ->
$(".preview_browse img#thumb").attr("src", e.target.result).width(251).show()
reader.readAsDataURL input.files[0]
$(".not_found_image_browse").hide()
Run Code Online (Sandbox Code Playgroud)
但是当我在post.js.coffee中的项目rails中输入此代码时,对我来说效果不佳.
我在浏览器控制台中遇到此错误:
readURL is not defined
onchange()onchange (line 2)
event = change
[Break On This Error]
readURL(this);
Run Code Online (Sandbox Code Playgroud)
这是我的输入文件中的html代码:
<input id="post_image" class="file required" type="file" onchange="readURL(this)" name="post[image]">
Run Code Online (Sandbox Code Playgroud)