10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

通过 Ambition 实现 Ruby 抽象数据查询

2007 年 9 月 27 日

如何减少从不同数据源获取与整合信息的复杂性,是当前的一项挑战。然而,.NET 已经拥有了 LINQ ,Ruby 却没有相似的解决方案。虽然已有一些 DSL 项目使用 Rub 语言进行查询,却并非以 Ruby 的语法形式进行查询。

Chris Wanstrath 为此设计了新的解决方案: Ambition 。Ambition 利用了 ParseTree 来处理解析树,并将纯 Ruby 查询转换成 SQL 查询(在目标数据库为关系型数据库时),最终您可以使用 Ruby 编写如下的查询语句:

User.first<br></br># which will translate into "SELECT * FROM users LIMIT 1"<br></br>User.select { |u| u.karma > 20 }.sort_by(&:karma).first(5)<br></br># which will translate into "SELECT * FROM users WHERE (users.karma> 20)<br></br># ORDER BY users.karma LIMIT 5"Chris 最初打算以 Rack 项目为目标的,但在他研究了 LINQ 之后,便转变了原先的目标。

我们的注意力从 Rack 转向了 LINQ。更确切地说,我们不想仅是支持其他的 ORMs—我们期望 Ambition 成为面向 SQL、LDAP、XPath 的查询语言。Ambition 的 1.0 版本将是后端无关的(backend-agnostic)。或许因此我们将考虑把项目的名称改为 Hubris?时间会说明一切。

感兴趣的读者可以使用 Git 在如下地址获取最新的程序源代码:git://errtheblog.com/git/ambition

查看英文原文: Abstracting Data Query in Ruby with Ambition

2007 年 9 月 27 日 02:30425
用户头像

发布了 74 篇内容, 共 98684 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

5分钟速读之Rust权威指南(三十)多线程

码生笔谈

rust

TcaplusDB亮相全球云计算大会 一举斩获优秀解决方案奖

TcaplusDB

数据库 nosql tencentdb TcaolusDB

带你认识Flink容错机制的两大方面:作业执行和守护进程

华为云开发者社区

flink 守护进程 容错 作业执行 Flink 容错机制

AI云市场的繁盛之夏:AI花开果熟,百度抢先品尝第一口甜

脑极体

国际禁毒日 | 和TcaplusDB一起向毒品say NO!

TcaplusDB

nosql tencentdb TcaplusDB database

云小课 | 华为云KYON:网段零修改上云,简单又好用

华为云开发者社区

KYON企业级云网络 私网NAT网关 弹性负载均衡ELB 虚拟私有云VPC L2CG VPVEP

JavaScript学习(九)

空城机

JavaScript 前端 6月日更

“动态规划”这词太吓人,其实可以叫“状态缓存”

华为云开发者社区

Java 动态规划 超时 dp数组 状态缓存

[TcaplusDB知识库]TcaplusDB高可用部署

TcaplusDB

nosql tencentdb TcaplusDB Tcaplus

华为自研PB级分布式时序数据库揭秘第一期:初识GaussDB(for Influx)

华为云数据库小助手

数据库 GaussDB(for Influx) 华为云数据库

【熬夜整理近百份大厂面经】2022校招提前批面经总结分享(腾讯、字节、阿里、百度、京东等招聘信息+必考点+简历书写)

学无止境的阿奔

c++ 程序员 面试 后端开发 秋招

公司给的期权有没有价值?

石云升

期权 职场经验 6月日更

zookeeper客户端zkclient和curator的api

赵镇

zookeeper

华为云官网前端的技术演进与低代码实践

华为云开发者社区

前端 低代码 可视化 页面 华为云官网

阿里内部不外传的50万字Java面试手册,首次开放,一天遭狂转10w次

Java架构师迁哥

极光统一消息系统UMS新版上线!多维数据统计分析助推运营增长

极光开发者

JSON 数据格式该怎么使用

网络安全学海

json 网络安全 安全 信息漏洞 渗透测试

快手严厉整治违规商业内容:必须构建平台良性生态链

石头IT视角

mysql的存储引擎知多少

卢卡多多

KV存储引擎 MySQL 数据库 6月日更

在线html链接提取工具

入门小站

工具

THOR:MindSpore 自研高阶优化器源码分析和实践应用

华为云开发者社区

网络 mindspore THOR 高阶优化器 THOR算法

极光开发者周刊【No.0625】

极光开发者

Django搭建个人博客网站---模块划分

IT蜗壳-Tango

6月日更

Scrum | 你需要知道这些

Python研究所

项目管理 Scrum 敏捷

[译] R8 优化: Switch 场景下的枚举

Antway

6月日更

Vue源码学习 | 从源码中学习Javascript技巧

devpoint

JavaScript Vue 6月日更

矩阵分解推荐算法(十八)

数据与智能

推荐算法 矩阵运算

七种方式教你在SpringBoot初始化时搞点事情

L

Java

Kubernetes手记(22)- K8S包管理器

雪雷

6月日更

Linux之touch命令

入门小站

Linux

TcaplusDB君 | 行业新闻汇编(6月24日)

tcaplus

数据库 TcaplusDB

通过Ambition实现Ruby抽象数据查询-InfoQ