我想为我在最后一刻附加的Ruby on Rails应用程序构建一个真正快速而又脏的管理后端.我已经看过activescaffold并简化并认为它们都非常有吸引力,它们应该很容易运行,但我不太明白如何设置任何一个作为后端管理页面.它们看起来像标准的Ruby on Rails生成器/脚手架一样工作,用于创建模型 - 视图 - 控制器 - 表名称对应的可见前端.
当玩家已经在使用并且您想尽可能地避免影响其任何相关文件时,如何创建admin_players界面?
管理员无法使用原始资源的显示,编辑和索引.
我有一个项目,用户需要为ui定义一组完全用javascript编写的指令.我需要能够解析一串指令然后将它们转换成指令.是否有任何库可用于解析100%javascript?或者将在javascript中生成的生成器?谢谢!
我想编写一个从未真正产生任何东西的Python生成器函数.基本上它是一个"无所事事"的插件,可以被其他代码用来调用生成器(但并不总是需要它的结果).到目前为止我有这个:
def empty_generator():
# ... do some stuff, but don't yield anything
if False:
yield
Run Code Online (Sandbox Code Playgroud)
现在,这可行,但我想知道是否有更具表现力的方式来说同样的事情,即声明一个函数是一个生成器,即使它从不产生任何值.我上面使用的技巧是在我的函数中显示Python一个yield语句,即使它无法访问.
我目前正在研究Tour of Go,我认为goroutines的使用方式与Python生成器类似,特别是问题66.我认为66看起来很复杂,所以我把它重写为:
package main
import "fmt"
func fibonacci(c chan int) {
x, y := 1, 1
for {
c <- x
x, y = y, x + y
}
}
func main() {
c := make(chan int)
go fibonacci(c)
for i := 0; i < 10; i++ {
fmt.Println(<-c)
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效.几个问题:
fibonacci将尽快填满10个其他位置,并尽可能快地main消耗掉这些位置.这是正确的吗?这会比以1的缓冲区大小更高的性能而牺牲内存,对吗?fibonacci发送者关闭,当我们离开这里的范围时会发生什么?我的期望是,一旦c和go fibonacci超出范围,渠道和它的一切得到垃圾收集.我的直觉告诉我这可能不会发生什么.同样臭名昭着的错误
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer generator-angular@0.7.1 wants generator-karma@~0.6.0 npm ERR! peerinvalid Peer generator-angular-ui-router@0.5.3 wants generator-karma@~0.5.0 npm ERR! System Darwin 12.5.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "generator-angular" npm ERR! cwd /Users/dmitrizaitsev/Dropbox/Priv/APP/my-yo-project npm ERR! node -v v0.10.24 npm ERR! npm -v 1.3.21 npm ERR! code EPEERINVALID
来自安装各种包装,例如
npm update -g yo
Run Code Online (Sandbox Code Playgroud)
唯一找到的卸载建议generator-karma没有帮助 - 它重新安装回来.
更好地解释它为什么会发生和工作解决方案?
我无法理解这种send方法.我知道它用于操作发电机.但语法在这里:generator.send(value).
我莫名其妙地无法理解为什么值应该成为当前yield表达式的结果.我准备了一个例子:
def gen():
for i in range(10):
X = yield i
if X == 'stop':
break
print("Inside the function " + str(X))
m = gen()
print("1 Outside the function " + str(next(m)) + '\n')
print("2 Outside the function " + str(next(m)) + '\n')
print("3 Outside the function " + str(next(m)) + '\n')
print("4 Outside the function " + str(next(m)) + '\n')
print('\n')
print("Outside the function " + str(m.send(None)) + '\n') # Start generator …Run Code Online (Sandbox Code Playgroud) 我试图测试我的传奇可以遵循的每个场景,但我无法实现我想要的行为.这很简单,我有一个HTTP请求(登录),我想通过模拟我的API方法来测试成功和失败的情况.
但是,它看起来call effect不会激活我的api功能,我还没有真正得到它是如何工作的,但我想中间件是负责调用该功能,因为我不去通过商店我的测试,我无法得到结果.
所以我的问题是,当您需要在异步调用旁边发送不同的操作(通常是成功或失败)时,如何测试您的传奇?
我找了一个例子,我发现sagas成功并失败但是失败案例从未经过测试,例如在这里的购物车示例中
SAGA.JS
export function* login(action) {
try {
const user = yield call(api.login, action);
return yield put(actions.loginSuccess(user));
} catch(e) {
yield put(actions.loginFail(e));
}
}
export default function* rootAuthenticationSagas() {
yield* takeLatest(LOGIN, login);
}
Run Code Online (Sandbox Code Playgroud)
TEST.JS
describe('login', () => {
context('When it fails', () => {
before('Stub the api', () => {
sinon.stub(api, 'login', () => {
// IT NEVER COMES HERE !
return Promise.reject({ error: 'user not found' });
});
});
it('should return …Run Code Online (Sandbox Code Playgroud) 我正在尝试:rtype:为生成器函数编写类型提示.它返回的类型是什么?
例如,假设我有这个函数产生字符串:
def read_text_file(fn):
"""
Yields the lines of the text file one by one.
:param fn: Path of text file to read.
:type fn: str
:rtype: ???????????????? <======================= what goes here?
"""
with open(fn, 'rt') as text_file:
for line in text_file:
yield line
Run Code Online (Sandbox Code Playgroud)
返回类型不只是一个字符串,它是某种可迭代的字符串?所以我不能写:rtype: str.什么是正确的提示?
我认为我的问题与此有关,但并不完全相似.考虑以下代码:
def countdown(n):
try:
while n > 0:
yield n
n -= 1
finally:
print('In the finally block')
def main():
for n in countdown(10):
if n == 5:
break
print('Counting... ', n)
print('Finished counting')
main()
Run Code Online (Sandbox Code Playgroud)
此代码的输出是:
Counting... 10
Counting... 9
Counting... 8
Counting... 7
Counting... 6
In the finally block
Finished counting
Run Code Online (Sandbox Code Playgroud)
是否保证在"完成计数"之前打印"在最后一个块中"这一行?或者这是因为cPython实现细节,当引用计数达到0时,对象将被垃圾收集.
另外我对如何好奇finally的块countdown执行发电机?例如,如果我将代码更改main为
def main():
c = countdown(10)
for n in c:
if n == 5:
break
print('Counting... ', n)
print('Finished …Run Code Online (Sandbox Code Playgroud) 几个星期前,我看到一个带有强大生成器的网站,可以创建自己的源代码文件的精美图片.生成器创建的图像具有可变效果,如透视变换和景深等.
通常情况下我不会在这里问这样的问题,但我用Google搜索超过2小时,我再也找不到这个发电机了.我真的很疯狂 - 我知道这个网站存在...
这是使用此生成器生成的代码示例图:

非常感谢你!Waescher
generator ×10
python ×5
javascript ×2
yield ×2
admin ×1
angularjs ×1
backend ×1
go ×1
goroutine ×1
image ×1
karma-runner ×1
lexer ×1
node.js ×1
parsing ×1
python-2.7 ×1
python-3.x ×1
reactjs ×1
redux ×1
redux-saga ×1
scaffolding ×1
type-hinting ×1
yeoman ×1