delorean_lang 0.0.33

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,100 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+
4
+ require 'rspec'
5
+ require 'delorean_lang'
6
+ require 'active_record'
7
+
8
+ # Requires supporting files with custom matchers and macros, etc,
9
+ # in ./support/ and its subdirectories.
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+
14
+ end
15
+
16
+ def defn(*l)
17
+ l.join("\n") + "\n"
18
+ end
19
+
20
+ ######################################################################
21
+ # ActiveRecord related
22
+
23
+ ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
24
+
25
+ ActiveRecord::Migration.create_table :dummies do |t|
26
+ t.string :name
27
+ t.decimal :number
28
+ t.references :dummy
29
+ t.timestamps
30
+ end
31
+
32
+ class Dummy < ActiveRecord::Base
33
+ attr_accessible :name, :number, :dummy
34
+ belongs_to :dummy
35
+
36
+ def self.i_just_met_you(name, number)
37
+ Dummy.new(name: name, number: number)
38
+ end
39
+
40
+ I_JUST_MET_YOU_SIG = [2, 2]
41
+
42
+ def self.call_me_maybe(*a)
43
+ a.inject(0, :+)
44
+ end
45
+
46
+ CALL_ME_MAYBE_SIG = [0, Float::INFINITY]
47
+
48
+ def self.this_is_crazy
49
+ end
50
+
51
+ def self.miss_you_so_bad
52
+ d = Dummy.create(name: "hello", number: 123)
53
+ res = Dummy.new(name: "jello", number: 456, dummy: d)
54
+ end
55
+
56
+ MISS_YOU_SO_BAD_SIG = [0, 0]
57
+
58
+ def self.i_threw_a_hash_in_the_well
59
+ {a: 123, "a" => 456, b: 789}
60
+ end
61
+
62
+ I_THREW_A_HASH_IN_THE_WELL_SIG = [0, 0]
63
+ end
64
+
65
+ module M
66
+ class LittleDummy
67
+ include Delorean::Model
68
+
69
+ delorean_fn(:heres_my_number, sig: [0, Float::INFINITY]) do
70
+ |*a|
71
+ a.inject(0, :+)
72
+ end
73
+ end
74
+ end
75
+
76
+ ######################################################################
77
+
78
+ class TestContainer < Delorean::AbstractContainer
79
+ def initialize(scripts={})
80
+ super()
81
+ @scripts = scripts
82
+ end
83
+
84
+ def merge(scripts)
85
+ @scripts.merge!(scripts)
86
+ end
87
+
88
+ def get_engine(name, version)
89
+ script = @scripts[ [name, version] ]
90
+
91
+ raise "can't find #{name} #{version}" unless script
92
+
93
+ engine = Delorean::Engine.new name
94
+ engine.parse script, self
95
+ engine
96
+ end
97
+ end
98
+
99
+ ######################################################################
100
+
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delorean_lang
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.33
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Arman Bostani
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: treetop
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activerecord
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - '='
36
+ - !ruby/object:Gem::Version
37
+ version: 3.2.11
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.2.11
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: sqlite3
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: A "compiler" for the Delorean programming language
79
+ email:
80
+ - arman.bostani@pnmac.com
81
+ executables: []
82
+ extensions: []
83
+ extra_rdoc_files: []
84
+ files:
85
+ - .gitignore
86
+ - .rspec
87
+ - Gemfile
88
+ - LICENSE
89
+ - README.md
90
+ - Rakefile
91
+ - delorean.gemspec
92
+ - lib/delorean/base.rb
93
+ - lib/delorean/container.rb
94
+ - lib/delorean/delorean.rb
95
+ - lib/delorean/delorean.treetop
96
+ - lib/delorean/engine.rb
97
+ - lib/delorean/error.rb
98
+ - lib/delorean/functions.rb
99
+ - lib/delorean/model.rb
100
+ - lib/delorean/nodes.rb
101
+ - lib/delorean/version.rb
102
+ - lib/delorean_lang.rb
103
+ - spec/dev_spec.rb
104
+ - spec/eval_spec.rb
105
+ - spec/func_spec.rb
106
+ - spec/parse_spec.rb
107
+ - spec/spec_helper.rb
108
+ homepage: http://rubygems.org/gems/delorean_lang
109
+ licenses: []
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ requirements: []
127
+ rubyforge_project:
128
+ rubygems_version: 1.8.25
129
+ signing_key:
130
+ specification_version: 3
131
+ summary: Delorean compiler
132
+ test_files:
133
+ - spec/dev_spec.rb
134
+ - spec/eval_spec.rb
135
+ - spec/func_spec.rb
136
+ - spec/parse_spec.rb
137
+ - spec/spec_helper.rb
138
+ has_rdoc: