ambition 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +6 -5
- data/ambition.gemspec +5 -5
- data/app_generators/ambition_adapter/ambition_adapter_generator.rb +2 -2
- data/app_generators/ambition_adapter/templates/lib/{base.rb.erb → adapter/base.rb.erb} +0 -0
- data/app_generators/ambition_adapter/templates/lib/{query.rb.erb → adapter/query.rb.erb} +0 -0
- data/app_generators/ambition_adapter/templates/lib/{select.rb.erb → adapter/select.rb.erb} +0 -0
- data/app_generators/ambition_adapter/templates/lib/{slice.rb.erb → adapter/slice.rb.erb} +0 -0
- data/app_generators/ambition_adapter/templates/lib/{sort.rb.erb → adapter/sort.rb.erb} +0 -0
- data/lib/ambition/api.rb +1 -1
- data/lib/ambition/core_ext.rb +0 -32
- data/lib/ambition/processors/base.rb +3 -2
- data/lib/ambition/processors/ruby.rb +2 -0
- data/lib/ambition/processors/select.rb +2 -2
- data/lib/ambition/sexp_translator.rb +15 -0
- data/lib/ambition.rb +1 -0
- metadata +8 -7
data/Manifest
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
app_generators/ambition_adapter/ambition_adapter_generator.rb
|
2
|
-
app_generators/ambition_adapter/templates/lib/base.rb.erb
|
2
|
+
app_generators/ambition_adapter/templates/lib/adapter/base.rb.erb
|
3
|
+
app_generators/ambition_adapter/templates/lib/adapter/query.rb.erb
|
4
|
+
app_generators/ambition_adapter/templates/lib/adapter/select.rb.erb
|
5
|
+
app_generators/ambition_adapter/templates/lib/adapter/slice.rb.erb
|
6
|
+
app_generators/ambition_adapter/templates/lib/adapter/sort.rb.erb
|
3
7
|
app_generators/ambition_adapter/templates/lib/init.rb.erb
|
4
|
-
app_generators/ambition_adapter/templates/lib/query.rb.erb
|
5
|
-
app_generators/ambition_adapter/templates/lib/select.rb.erb
|
6
|
-
app_generators/ambition_adapter/templates/lib/slice.rb.erb
|
7
|
-
app_generators/ambition_adapter/templates/lib/sort.rb.erb
|
8
8
|
app_generators/ambition_adapter/templates/LICENSE
|
9
9
|
app_generators/ambition_adapter/templates/Rakefile
|
10
10
|
app_generators/ambition_adapter/templates/README
|
@@ -23,6 +23,7 @@ lib/ambition/processors/ruby.rb
|
|
23
23
|
lib/ambition/processors/select.rb
|
24
24
|
lib/ambition/processors/slice.rb
|
25
25
|
lib/ambition/processors/sort.rb
|
26
|
+
lib/ambition/sexp_translator.rb
|
26
27
|
lib/ambition.rb
|
27
28
|
LICENSE
|
28
29
|
Manifest
|
data/ambition.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
|
2
|
-
# Gem::Specification for Ambition-0.5.
|
2
|
+
# Gem::Specification for Ambition-0.5.1
|
3
3
|
# Originally generated by Echoe
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = %q{ambition}
|
7
|
-
s.version = "0.5.
|
8
|
-
s.date = %q{2008-
|
7
|
+
s.version = "0.5.1"
|
8
|
+
s.date = %q{2008-02-16}
|
9
9
|
s.summary = %q{Ambition builds yer API calls from plain jane Ruby.}
|
10
10
|
s.email = %q{chris@ozmm.org}
|
11
11
|
s.homepage = %q{http://errtheblog.com/}
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.has_rdoc = true
|
16
16
|
s.required_ruby_version = Gem::Version::Requirement.new(">= 1.8.6")
|
17
17
|
s.authors = ["Chris Wanstrath"]
|
18
|
-
s.files = ["app_generators/ambition_adapter/ambition_adapter_generator.rb", "app_generators/ambition_adapter/templates/lib/base.rb.erb", "app_generators/ambition_adapter/templates/lib/
|
18
|
+
s.files = ["app_generators/ambition_adapter/ambition_adapter_generator.rb", "app_generators/ambition_adapter/templates/lib/adapter/base.rb.erb", "app_generators/ambition_adapter/templates/lib/adapter/query.rb.erb", "app_generators/ambition_adapter/templates/lib/adapter/select.rb.erb", "app_generators/ambition_adapter/templates/lib/adapter/slice.rb.erb", "app_generators/ambition_adapter/templates/lib/adapter/sort.rb.erb", "app_generators/ambition_adapter/templates/lib/init.rb.erb", "app_generators/ambition_adapter/templates/LICENSE", "app_generators/ambition_adapter/templates/Rakefile", "app_generators/ambition_adapter/templates/README", "app_generators/ambition_adapter/templates/test/helper.rb.erb", "app_generators/ambition_adapter/templates/test/select_test.rb.erb", "app_generators/ambition_adapter/templates/test/slice_test.rb.erb", "app_generators/ambition_adapter/templates/test/sort_test.rb.erb", "app_generators/ambition_adapter/USAGE", "bin/ambition_adapter", "lib/ambition/api.rb", "lib/ambition/context.rb", "lib/ambition/core_ext.rb", "lib/ambition/enumerable.rb", "lib/ambition/processors/base.rb", "lib/ambition/processors/ruby.rb", "lib/ambition/processors/select.rb", "lib/ambition/processors/slice.rb", "lib/ambition/processors/sort.rb", "lib/ambition/sexp_translator.rb", "lib/ambition.rb", "LICENSE", "Manifest", "README", "test/adapters/exemplar/association_test.rb", "test/adapters/exemplar/count_test.rb", "test/adapters/exemplar/detect_test.rb", "test/adapters/exemplar/enumerable_test.rb", "test/adapters/exemplar/helper.rb", "test/adapters/exemplar/index_operator.rb", "test/adapters/exemplar/reject_test.rb", "test/adapters/exemplar/select_test.rb", "test/adapters/exemplar/slice_test.rb", "test/adapters/exemplar/sort_test.rb", "test/debug", "test/helper.rb", "ambition.gemspec"]
|
19
19
|
s.executables = ["ambition_adapter"]
|
20
20
|
s.add_dependency(%q<ParseTree>, ["= 2.0.1"])
|
21
21
|
s.add_dependency(%q<ruby2ruby>, ["= 1.1.7"])
|
@@ -29,7 +29,7 @@ end
|
|
29
29
|
# require 'rake/testtask'
|
30
30
|
# require 'rake/rdoctask'
|
31
31
|
#
|
32
|
-
# Version = '0.5.
|
32
|
+
# Version = '0.5.1'
|
33
33
|
#
|
34
34
|
# module Rake::TaskManager
|
35
35
|
# def delete_task(task_class, *args, &block)
|
@@ -29,7 +29,7 @@ class AmbitionAdapterGenerator < RubiGen::Base
|
|
29
29
|
adapter_path = "lib/ambition/adapters/#{adapter_name}"
|
30
30
|
|
31
31
|
%w( base query select slice sort ).each do |file|
|
32
|
-
m.template "lib/#{file}.rb.erb", "#{adapter_path}/#{file}.rb"
|
32
|
+
m.template "lib/adapter/#{file}.rb.erb", "#{adapter_path}/#{file}.rb"
|
33
33
|
end
|
34
34
|
|
35
35
|
m.template 'lib/init.rb.erb', "#{adapter_path}.rb"
|
@@ -52,7 +52,7 @@ class AmbitionAdapterGenerator < RubiGen::Base
|
|
52
52
|
|
53
53
|
protected
|
54
54
|
def banner
|
55
|
-
"
|
55
|
+
"Usage: ambition_adapter adapter_name"
|
56
56
|
end
|
57
57
|
|
58
58
|
def add_options!(opts)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/ambition/api.rb
CHANGED
data/lib/ambition/core_ext.rb
CHANGED
@@ -1,38 +1,6 @@
|
|
1
|
-
##
|
2
|
-
# Taken from ruby2ruby, Copyright (c) 2006 Ryan Davis under the MIT License
|
3
|
-
require 'parse_tree'
|
4
|
-
require 'ruby2ruby'
|
5
|
-
|
6
1
|
class Object
|
7
|
-
def to_sexp
|
8
|
-
instance_eval <<-end_eval
|
9
|
-
return proc { #{inspect} }.to_sexp.last
|
10
|
-
end_eval
|
11
|
-
end
|
12
|
-
|
13
2
|
def metaclass; (class << self; self end) end
|
14
3
|
def meta_eval(&blk) metaclass.instance_eval(&blk) end
|
15
4
|
def meta_def(name, &blk) meta_eval { define_method name, &blk } end
|
16
5
|
def class_def(name, &blk) class_eval { define_method name, &blk } end
|
17
6
|
end
|
18
|
-
|
19
|
-
class ProcHolder
|
20
|
-
end
|
21
|
-
|
22
|
-
class Method
|
23
|
-
def to_sexp
|
24
|
-
ParseTree.translate(ProcHolder, :proc_to_method)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class Proc
|
29
|
-
def to_method
|
30
|
-
ProcHolder.send(:define_method, :proc_to_method, self)
|
31
|
-
ProcHolder.new.method(:proc_to_method)
|
32
|
-
end
|
33
|
-
|
34
|
-
def to_sexp
|
35
|
-
body = to_method.to_sexp[2][1..-1]
|
36
|
-
[:proc, *body]
|
37
|
-
end
|
38
|
-
end
|
@@ -82,7 +82,7 @@ module Ambition
|
|
82
82
|
##
|
83
83
|
# Helper methods
|
84
84
|
def to_s
|
85
|
-
process @block
|
85
|
+
process SexpTranslator.translate(@block)
|
86
86
|
end
|
87
87
|
|
88
88
|
def key
|
@@ -104,10 +104,11 @@ module Ambition
|
|
104
104
|
|
105
105
|
unless instance.respond_to? :context
|
106
106
|
klass.class_eval do
|
107
|
-
attr_accessor :context
|
107
|
+
attr_accessor :context, :negated
|
108
108
|
def owner; @context.owner end
|
109
109
|
def clauses; @context.clauses end
|
110
110
|
def stash; @context.stash end
|
111
|
+
def negated?; @negated end
|
111
112
|
end
|
112
113
|
end
|
113
114
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'parse_tree'
|
2
|
+
|
3
|
+
module Ambition
|
4
|
+
class SexpTranslator
|
5
|
+
@@block_cache = {}
|
6
|
+
|
7
|
+
def self.translate(block)
|
8
|
+
@@block_cache[block.to_s] ||= begin
|
9
|
+
klass = Class.new { define_method(:proc_to_method, block) }
|
10
|
+
body = ParseTree.translate(klass, :proc_to_method)[2][1..-1]
|
11
|
+
[:proc, *body]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/ambition.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ambition
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
7
|
-
date: 2008-
|
6
|
+
version: 0.5.1
|
7
|
+
date: 2008-02-16 00:00:00 -08:00
|
8
8
|
summary: Ambition builds yer API calls from plain jane Ruby.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -30,12 +30,12 @@ authors:
|
|
30
30
|
- Chris Wanstrath
|
31
31
|
files:
|
32
32
|
- app_generators/ambition_adapter/ambition_adapter_generator.rb
|
33
|
-
- app_generators/ambition_adapter/templates/lib/base.rb.erb
|
33
|
+
- app_generators/ambition_adapter/templates/lib/adapter/base.rb.erb
|
34
|
+
- app_generators/ambition_adapter/templates/lib/adapter/query.rb.erb
|
35
|
+
- app_generators/ambition_adapter/templates/lib/adapter/select.rb.erb
|
36
|
+
- app_generators/ambition_adapter/templates/lib/adapter/slice.rb.erb
|
37
|
+
- app_generators/ambition_adapter/templates/lib/adapter/sort.rb.erb
|
34
38
|
- app_generators/ambition_adapter/templates/lib/init.rb.erb
|
35
|
-
- app_generators/ambition_adapter/templates/lib/query.rb.erb
|
36
|
-
- app_generators/ambition_adapter/templates/lib/select.rb.erb
|
37
|
-
- app_generators/ambition_adapter/templates/lib/slice.rb.erb
|
38
|
-
- app_generators/ambition_adapter/templates/lib/sort.rb.erb
|
39
39
|
- app_generators/ambition_adapter/templates/LICENSE
|
40
40
|
- app_generators/ambition_adapter/templates/Rakefile
|
41
41
|
- app_generators/ambition_adapter/templates/README
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- lib/ambition/processors/select.rb
|
55
55
|
- lib/ambition/processors/slice.rb
|
56
56
|
- lib/ambition/processors/sort.rb
|
57
|
+
- lib/ambition/sexp_translator.rb
|
57
58
|
- lib/ambition.rb
|
58
59
|
- LICENSE
|
59
60
|
- Manifest
|