esruby 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a16d0112d53861ad14f8c825229b924f1a980cdf
4
- data.tar.gz: 0df764960a1cdff6f71723c596825a92995f4709
3
+ metadata.gz: d42dbf349bcea95903d0de6774803ab39bd5fe32
4
+ data.tar.gz: b1b862fa53cf9ffdfbc8e0dc6f339084551f1ac6
5
5
  SHA512:
6
- metadata.gz: 233b64432005b46c61fdcad9a06ef7e9a84f9a1eb79ce02ac38c6172a1e0c8a16a584f6e35b8b340b412d34e84a608468356a67fe6677df5e1e0d13e76957c30
7
- data.tar.gz: 65d573fe29d8430b7ac4a55a8590c3e1396f0a43cc559d1050834b73eda6fcf0b3de97ba0314965463424f9ddbbe811c58b7811ff6ccbaae1c3ba0b5f50ef720
6
+ metadata.gz: d654fe70e2d4d3e4a6ada3bc14c76a2913ac6ab3c1f9232b8344bb158ebcd5246d3eb276c260febc9e6a77afeb3bd76b41190babd2d9a7ec9e8c664932c452ba
7
+ data.tar.gz: 168b15df66a42ad1fd0f9254afe4dd74fea26e96643ea232650fbb58bf26d5da313592dc8183bcb4bb977bca21a618a7099d89e0e8bbb5b64020b4a4aa945256
data/README.md CHANGED
@@ -30,6 +30,7 @@ to your `.bashrc` and `.profile`
30
30
  # Try
31
31
  * create a new esruby project with `esruby new project`
32
32
  * `cd project`
33
+ * download the gem `https://github.com/robfors/esruby-esruby` and put it in `gems/`
33
34
  * build the project with `esruby build config.rb`
34
35
  * you will now have `www/app.js` and `www/index.html`
35
36
  * a simple way to serve these files would be `ruby -run -e httpd www -p 4444`
data/lib/esruby.rb CHANGED
@@ -2,6 +2,7 @@ require 'erubis'
2
2
  require 'fileutils'
3
3
  require 'forwardable'
4
4
  require 'rake'
5
+ require 'json'
5
6
 
6
7
  require_relative "esruby/build.rb"
7
8
  require_relative "esruby/build/configuration.rb"
data/lib/esruby/build.rb CHANGED
@@ -13,7 +13,7 @@ module ESRuby
13
13
  new_build
14
14
  end
15
15
 
16
- def_delegators :@configuration, :root_directory, :build_directory,
16
+ def_delegators :@configuration, :project_directory, :build_directory,
17
17
  :build_mode, :output, :mruby_directory, :gems
18
18
 
19
19
  def initialize(&block)
@@ -23,9 +23,9 @@ module ESRuby
23
23
 
24
24
  def build
25
25
  FileUtils.mkdir_p(build_directory)
26
- load_gems
27
26
  build_mruby_config
28
27
  build_mruby
28
+ load_gems
29
29
  build_app
30
30
  end
31
31
 
@@ -34,12 +34,18 @@ module ESRuby
34
34
  end
35
35
 
36
36
  def load_gems
37
- @configuration.gems.each do |gem_path|
38
- load("#{gem_path}/esruby_gem")
37
+ gem_paths = JSON.parse(File.read(gem_paths_file))
38
+ gem_paths.each do |gem_path|
39
+ esruby_spec_path = "#{gem_path}/esruby_gem"
40
+ load(esruby_spec_path) if File.file?(esruby_spec_path)
39
41
  end
40
42
  nil
41
43
  end
42
44
 
45
+ def gem_paths_file
46
+ "#{build_directory}/gem_paths.json"
47
+ end
48
+
43
49
  def prepended_js_sources
44
50
  js_files = []
45
51
  Gem::Specification.specifications.each do |specification|
@@ -66,13 +72,12 @@ module ESRuby
66
72
  template = File.read("#{gem_directory}/resources/build_config.eruby")
67
73
  eruby = Erubis::Eruby.new(template)
68
74
  config = {}
69
- config[:prepended_js_sources] = prepended_js_sources
70
- config[:appended_js_sources] = appended_js_sources
71
75
  config[:optimization_argument] = optimization_argument
72
76
  config[:closure_argument] = closure_argument
73
77
  config[:debug_argument] = debug_argument
74
78
  config[:build_directory] = build_directory
75
79
  config[:gems] = gems
80
+ config[:gem_paths_file] = gem_paths_file
76
81
  new_output = eruby.result(config)
77
82
  output_path = "#{build_directory}/build_config.rb"
78
83
  old_output = File.read(output_path) if File.exists?(output_path)
@@ -114,7 +119,7 @@ module ESRuby
114
119
  end
115
120
 
116
121
  def build_app
117
- mrbc = "#{mruby_directory}/bin/mrbc"
122
+ mrbc = "#{build_directory}/host/bin/mrbc"
118
123
  js_arguments = prepended_js_sources.map { |path| "--pre-js #{path}" }.join(" ")
119
124
  js_arguments += " "
120
125
  js_arguments += appended_js_sources.map { |path| "--post-js #{path}" }.join(" ")
@@ -7,7 +7,7 @@ module ESRuby
7
7
  :output
8
8
 
9
9
  def initialize
10
- @root_directory = nil
10
+ @project_directory = nil
11
11
  @mruby_directory = "#{ESRuby.gem_directory}/resources/mruby"
12
12
  @output = 'output.js'
13
13
  @ruby_sources = []
@@ -16,31 +16,31 @@ module ESRuby
16
16
  @gems = []
17
17
  end
18
18
 
19
- def root_directory
20
- raise "'root_directory' not set" unless @root_directory
21
- @root_directory
19
+ def project_directory
20
+ raise "'project_directory' not set" unless @project_directory
21
+ @project_directory
22
22
  end
23
23
 
24
- def root_directory=(new_root_directory)
25
- root_directory = File.expand_path(new_root_directory)
26
- raise "'root_directory' not found" unless File.directory?(root_directory)
27
- @root_directory = root_directory
24
+ def project_directory=(new_project_directory)
25
+ new_project_directory = File.expand_path(new_project_directory)
26
+ raise "'project_directory' not found" unless File.directory?(new_project_directory)
27
+ @project_directory = new_project_directory
28
28
  end
29
29
 
30
30
  def add_ruby_source(path)
31
- @ruby_sources << File.expand_path(path, root_directory)
31
+ @ruby_sources << File.expand_path(path, project_directory)
32
32
  end
33
33
 
34
34
  def add_prepended_js_source(path)
35
- @prepended_js_sources << File.expand_path(path, root_directory)
35
+ @prepended_js_sources << File.expand_path(path, project_directory)
36
36
  end
37
37
 
38
38
  def add_appended_js_source(path)
39
- @appended_js_sources << File.expand_path(path, root_directory)
39
+ @appended_js_sources << File.expand_path(path, project_directory)
40
40
  end
41
41
 
42
42
  def build_directory=(new_build_directory)
43
- @build_directory = File.expand_path(new_build_directory, root_directory)
43
+ @build_directory = File.expand_path(new_build_directory, project_directory)
44
44
  end
45
45
 
46
46
  def build_mode=(new_build_mode)
@@ -50,19 +50,21 @@ module ESRuby
50
50
  end
51
51
 
52
52
  def output=(new_output)
53
- @output = File.expand_path(new_output, root_directory)
53
+ @output = File.expand_path(new_output, project_directory)
54
54
  end
55
55
 
56
56
  def mruby_directory=(new_mruby_directory)
57
- mruby_directory = File.expand_path(new_mruby_directory, root_directory)
58
- raise "'mruby_directory' not found" unless File.directory?(mruby_directory)
59
- @mruby_directory = mruby_directory
57
+ new_mruby_directory = File.expand_path(new_mruby_directory, project_directory)
58
+ raise "'mruby_directory' not found" unless File.directory?(new_mruby_directory)
59
+ @mruby_directory = new_mruby_directory
60
60
  end
61
61
 
62
- def add_gem(path)
63
- path = File.expand_path(path, root_directory)
64
- raise "gem #{path} not found" unless File.directory?(path)
65
- @gems << path
62
+ def add_gem(arg)
63
+ if arg.is_a?(String)
64
+ arg = File.expand_path(arg, project_directory)
65
+ raise "gem #{arg} not found" unless File.directory?(arg)
66
+ end
67
+ @gems << arg
66
68
  end
67
69
 
68
70
  end
@@ -34,21 +34,35 @@ MRuby::CrossBuild.new('app') do |conf|
34
34
  c.flags << "-Wall"
35
35
  c.flags << "-Wno-warn-absolute-paths"
36
36
  c.flags << "--bind"
37
- <% for path in prepended_js_sources %>
38
- c.flags << "--pre-js <%= path %>"
39
- <% end %>
40
- <% for path in appended_js_sources %>
41
- c.flags << "--post-js <%= path %>"
42
- <% end %>
43
37
  c.flags << "<%= optimization_argument %>"
44
38
  c.flags << "<%= closure_argument %>"
45
39
  c.flags << "<%= debug_argument %>"
46
40
  end
47
41
 
48
42
  conf.gembox('default')
49
- #conf.gem :github => 'robfors/esruby-esruby'
43
+ conf.gem :github => 'robfors/esruby-esruby'
50
44
  <% for gem in gems %>
51
45
  conf.gem(<%= gem.inspect %>)
52
46
  <% end %>
53
47
 
54
48
  end
49
+
50
+
51
+ module MRuby
52
+ module Gem
53
+ class List
54
+
55
+ old_check = instance_method(:check)
56
+ define_method(:check) do |build|
57
+ return_value = old_check.bind(self).call(build)
58
+ if build.name == 'app'
59
+ gem_paths = map { |gem| gem.dir }
60
+ require 'json'
61
+ File.write("<%= gem_paths_file %>", gem_paths.to_json)
62
+ end
63
+ return return_value
64
+ end
65
+
66
+ end
67
+ end
68
+ end
@@ -1,37 +1,37 @@
1
1
  # This file sets up the build environment for a webruby project.
2
2
  ESRuby::Build.new do |conf|
3
3
 
4
- conf.root_directory = File.dirname(__FILE__)
4
+ conf.project_directory = File.dirname(__FILE__)
5
5
 
6
6
  conf.add_ruby_source 'app/app.rb'
7
- #conf.add_prepended_js_source 'app/prepended.js'
8
- #conf.add_appended_js_source 'app/appended.js'
7
+ #conf.add_prepended_js_source 'app/prepend.js'
8
+ #conf.add_appended_js_source 'app/append.js'
9
9
 
10
10
  # By default, the build output directory is "build/"
11
11
  conf.build_directory = 'build'
12
12
 
13
- # Use 'release' for O2 mode build, and everything else for O0 mode.
14
- # Or you can also use '-O0', '-O1', '-O2', '-O3', etc. directly
13
+ # note: dont change this yet
14
+ # Use :production for O2 mode build, and :development for O0 mode.
15
+ # Or you can not yet use '-O0', '-O1', '-O2', '-O3', etc. directly
16
+ # note :production mode is still having trouble working
15
17
  #conf.build_mode = :production
16
18
  conf.build_mode = :development
17
19
 
18
- # By default the final output file name is "webruby.js"
20
+ # set the final output file name
19
21
  conf.output = "www/app.js"
20
22
 
23
+ # to override the mruby version, then specify your copy here
21
24
  #conf.mruby_directory = 'mruby'
22
25
 
26
+ # note: dont change this yet
23
27
  # We found that if memory init file is used, browsers will hang
24
28
  # for a long time without response. As a result, we disable memory
25
29
  # init file by default. However, you can test this yourself
26
30
  # and re-enable it by commenting/removing the next line.
27
31
  #conf.ldflags << "--memory-init-file 0"
28
32
 
29
- # JavaScript calling interface
30
- # conf.add_gem 'gems/esruby-bind'
31
-
32
- # for now you will need to download the gem
33
- # https://github.com/robfors/esruby-esruby
34
- # and add it here
35
- conf.add_gem 'gems/esruby-esruby'
33
+ # JavaScript binding interface
34
+ # see: https://github.com/robfors/esruby-bind for more info
35
+ # conf.add_gem :github => 'robfors/esruby-bind'
36
36
 
37
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Fors
@@ -419,7 +419,6 @@ files:
419
419
  - resources/project_template/app/app.rb
420
420
  - resources/project_template/config.rb
421
421
  - resources/project_template/www/index.html
422
- - resources/rb/append.rb
423
422
  homepage: https://github.com/robfors/esruby
424
423
  licenses:
425
424
  - MIT
@@ -1,3 +0,0 @@
1
- #ESRuby.eval = Proc.new do |code|
2
- #eval(code)
3
- #end