rubyserif 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,52 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
8
+
9
+ <title>File: test.rb [RDoc Documentation]</title>
10
+
11
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
12
+
13
+ <script src="../js/jquery.js" type="text/javascript"
14
+ charset="utf-8"></script>
15
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
16
+ charset="utf-8"></script>
17
+ <script src="../js/quicksearch.js" type="text/javascript"
18
+ charset="utf-8"></script>
19
+ <script src="../js/darkfish.js" type="text/javascript"
20
+ charset="utf-8"></script>
21
+ </head>
22
+
23
+ <body class="file file-popup">
24
+ <div id="metadata">
25
+ <dl>
26
+ <dt class="modified-date">Last Modified</dt>
27
+ <dd class="modified-date">2012-03-14 17:45:16 -0400</dd>
28
+
29
+
30
+ <dt class="requires">Requires</dt>
31
+ <dd class="requires">
32
+ <ul>
33
+
34
+ </ul>
35
+ </dd>
36
+
37
+
38
+
39
+ </dl>
40
+ </div>
41
+
42
+ <div id="documentation">
43
+
44
+ <div class="description">
45
+ <h2>Description</h2>
46
+
47
+ </div>
48
+
49
+ </div>
50
+ </body>
51
+ </html>
52
+
data/lib/js.rb ADDED
@@ -0,0 +1,50 @@
1
+ module JavaScript
2
+ def JavaScript.Version
3
+ return '0.1'
4
+ end
5
+ class Object
6
+ def initialize(hash={}, constants=[]) #Put keys into constants that you want to be read only
7
+ @hash,@constants=hash,constants
8
+ end
9
+ def method_missing(name, *args, &block)
10
+ if name.to_s =~ /=$/
11
+ raise "Cannot modify object constant - #{name.to_s.sub(/=/,'')}" if @constants.include? name.to_s.sub(/=/,'').to_sym
12
+ @hash[name.to_s.sub(/=/,'').to_sym] = ((args==[]) ? ((block.nil?) ? nil : block) : args[0])
13
+ elsif name =~ /^\/(.+?)$/
14
+ /($1.to_sym) #/
15
+ else
16
+ return @hash[name]
17
+ end
18
+ end
19
+ def /(args=:elements) #/
20
+ case args
21
+ when :elements
22
+ return @hash.keys
23
+ when :constants
24
+ return @constants.keys
25
+ else
26
+ return nil
27
+ end
28
+ end
29
+ end
30
+
31
+ class Function
32
+ def initialize(&code)
33
+ @code = code
34
+ end
35
+
36
+ def [](*args)
37
+ i='a'; string=''
38
+ while(arg = args.shift)
39
+ @temp = {}
40
+ eval "@temp[:#{i}] = arg"
41
+ string << ", @temp[:#{i}]"
42
+ i.next!
43
+ end
44
+ string.sub!(/\,/,'')
45
+ eval "@code.call #{string}"
46
+ @temp = nil
47
+ end
48
+ end
49
+
50
+ end
data/test/test.rb ADDED
@@ -0,0 +1,30 @@
1
+ require_relative '../javascript.gem'
2
+ puts "Creating object JavaScript::Object.new({ :foo => 'bar', :hello => 'world' }, [ :hello ] "
3
+ obj = JavaScript::Object.new({ :foo => 'bar', :hello => 'world' }, [ :hello ])
4
+ puts "Setting obj.foo to 'car'"
5
+ obj.foo = 'car'
6
+ (obj.foo == 'car') ? puts 'Success' : puts "Failed to set obj.foo to 'car'"
7
+ puts "Creating new element cat"
8
+ obj.cat = true
9
+ (obj.cat) ? puts "Success" : puts "Cat element not created"
10
+ puts "Attempting to write constant 'hello'"
11
+ begin
12
+ obj.hello = 'fail'
13
+ puts 'Constant not write protected'
14
+ rescue
15
+ puts 'Success'
16
+ end
17
+
18
+ puts "Attempting to read elements"
19
+ (obj/:elements) ? puts "Success" : puts "Failed"
20
+
21
+ puts "Testing JavaScript::Function"
22
+ function = JavaScript::Function.new { true }
23
+ if function.class == Proc
24
+ puts 'Success'
25
+ end
26
+ puts "Testing successful use of JavaScript::Function#[]"
27
+ if (function[].class == TrueClass)
28
+ puts 'Success'
29
+ end
30
+
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubyserif
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Matt Carey[swarley]
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-14 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A JavaScript-ish interface for ruby including a JSON object class like
15
+ OpenStruct. And a function class that resembles making anonymous functions, named
16
+ ones to come? Maybe?
17
+ email: matthew.b.carey@gmail.com
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - doc/lib/js_rb.html
23
+ - doc/Makefile.html
24
+ - doc/rdoc.css
25
+ - doc/images/page_white_width.png
26
+ - doc/images/page_white_text.png
27
+ - doc/images/tag_green.png
28
+ - doc/images/find.png
29
+ - doc/images/zoom.png
30
+ - doc/images/page_green.png
31
+ - doc/images/bullet_black.png
32
+ - doc/images/bullet_toggle_minus.png
33
+ - doc/images/ruby.png
34
+ - doc/images/wrench_orange.png
35
+ - doc/images/date.png
36
+ - doc/images/brick_link.png
37
+ - doc/images/loadingAnimation.gif
38
+ - doc/images/bullet_toggle_plus.png
39
+ - doc/images/plugin.png
40
+ - doc/images/wrench.png
41
+ - doc/images/brick.png
42
+ - doc/images/macFFBgHack.png
43
+ - doc/images/package.png
44
+ - doc/images/bug.png
45
+ - doc/JavaScript/Function.html
46
+ - doc/JavaScript/Object.html
47
+ - doc/JavaScript.html
48
+ - doc/js/jquery.js
49
+ - doc/js/thickbox-compressed.js
50
+ - doc/js/darkfish.js
51
+ - doc/js/quicksearch.js
52
+ - doc/test/test_rb.html
53
+ - doc/created.rid
54
+ - doc/index.html
55
+ - lib/js.rb
56
+ - Makefile
57
+ - test/test.rb
58
+ - README.md
59
+ homepage: https://github.com/swarley/rubyserif
60
+ licenses: []
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project:
79
+ rubygems_version: 1.8.11
80
+ signing_key:
81
+ specification_version: 3
82
+ summary: Javascripty things to use. No dependencies, one file, yeah. As simple as
83
+ it gets.
84
+ test_files: []