mrb 0.0.3 → 0.0.4

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: 1044b40a821e666cf29545373999082f6ee240d5
4
- data.tar.gz: 690d0ab0389f198378c874df07f6695f9f08abd3
3
+ metadata.gz: d8527524e3b2cb21e9e74a8e55340675b5b025a3
4
+ data.tar.gz: 16d9840def0e4e19a6b3957c93e4eac4aa2dad42
5
5
  SHA512:
6
- metadata.gz: 210107874307b7668277931a9e5c371a9855b999441f022cfe9631f6358c6bf42042c4d844b7b054877170705c138482c984b00754b8d75cded38387c8295db9
7
- data.tar.gz: 0bd666aa3111d5ba1d89bc11a1c91ddc512e5a7311b651b9b2fe023baf5c2edd9b647360a07d9bb9f0498fa989e0edce6ed3c32d9edf3b411e07728825bf1765
6
+ metadata.gz: 3072c56d4dac309d301f356738e5aa7f7107637aa795939033c77b8b83d2188bb1e0ce6f055056cfee6d26e07eb25bc52d8e04e960eb80c273f3a9095c191ecb
7
+ data.tar.gz: 035ad8b87bff7ec8a8ce63b105ef032b5f2c198c72ed6616b6213a9a79a9c06d7646fc2d50f7822b462757e6839dac0f149fe85a08eaf0b4d2c2d3a3791f4f56
@@ -3,15 +3,17 @@ MRuby::CrossBuild.new('<%= config['name'] %>') do |conf|
3
3
  toolchain :<%= config['toolchain'] %>
4
4
  <% end %>
5
5
 
6
- <% if config.key?('debug') %>
6
+ <% if config.key?('debug') && config['debug'].casecmp('enable') == 0 %>
7
7
  enable_debug
8
8
  <% end %>
9
9
 
10
- <% config['gem'].each do |gem| %>
11
- <% if gem.is_a?(String) %>
10
+ <% if config.key?('gem') && config['gem'].is_a?(Array) %>
11
+ <% config['gem'].each do |gem| %>
12
+ <% if gem.is_a?(String) %>
12
13
  conf.gem '<%= gem %>'
13
- <% elsif gem.is_a?(Hash) && gem.key?('github') %>
14
+ <% elsif gem.is_a?(Hash) && gem.key?('github') %>
14
15
  conf.gem :github => '<%= gem['github'] %>'
16
+ <% end %>
15
17
  <% end %>
16
18
  <% end %>
17
19
 
@@ -3,15 +3,17 @@ MRuby::Build.new('<%= config['name'] %>') do |conf|
3
3
  toolchain :<%= config['toolchain'] %>
4
4
  <% end %>
5
5
 
6
- <% if config.key?('debug') %>
6
+ <% if config.key?('debug') && config['debug'].casecmp('enable') == 0 %>
7
7
  enable_debug
8
8
  <% end %>
9
9
 
10
- <% config['gem'].each do |gem| %>
11
- <% if gem.is_a?(String) %>
10
+ <% if config.key?('gem') && config['gem'].is_a?(Array) %>
11
+ <% config['gem'].each do |gem| %>
12
+ <% if gem.is_a?(String) %>
12
13
  conf.gem '<%= gem %>'
13
- <% elsif gem.is_a?(Hash) && gem.key?('github') %>
14
+ <% elsif gem.is_a?(Hash) && gem.key?('github') %>
14
15
  conf.gem :github => '<%= gem['github'] %>'
16
+ <% end %>
15
17
  <% end %>
16
18
  <% end %>
17
19
 
data/lib/mrb/cli.rb CHANGED
@@ -12,36 +12,25 @@ module Mrb
12
12
 
13
13
  desc "gem NAME", "create necessary files, directory constitution"
14
14
  def gem(name)
15
- if m = name.match(/^mruby-(.*)/)
16
- full_name = name
17
- name = m[1]
18
- else
19
- full_name = "mruby-#{name}"
20
- name = name
21
- end
15
+ variables = Util.gen_names(name)
16
+ full_name = variables[:full_name]
22
17
 
18
+ FileUtils.mkdir_p full_name
23
19
  puts "Creating gem '#{full_name}'..."
24
20
 
25
- variables = {
26
- :full_name => full_name,
27
- :internal_name => full_name.gsub(/-/, '_'),
28
- :name => name,
29
- }
30
-
31
- FileUtils.mkdir_p full_name
32
- File.write "#{full_name}/README.md", Mrb::Template.render('gem/README.md.erb', variables)
21
+ File.write "#{full_name}/README.md", Mrb::Template.render_readme(variables)
33
22
  puts " create #{full_name}/README.md"
34
- File.write "#{full_name}/mrbgem.rake", Mrb::Template.render('gem/mrbgem.rake.erb', variables)
23
+ File.write "#{full_name}/mrbgem.rake", Mrb::Template.render_mrbgem(variables)
35
24
  puts " create #{full_name}/mrbgem.rake"
36
25
 
37
26
  FileUtils.mkdir_p "#{full_name}/src"
38
- File.write "#{full_name}/src/example.c", Mrb::Template.render('gem/example.c.erb', variables)
27
+ File.write "#{full_name}/src/example.c", Mrb::Template.render_example_c(variables)
39
28
  puts " create #{full_name}/src/example.c"
40
29
 
41
30
  FileUtils.mkdir_p "#{full_name}/test"
42
- File.write "#{full_name}/test/example.c", Mrb::Template.render('gem/test_example.c.erb', variables)
31
+ File.write "#{full_name}/test/example.c", Mrb::Template.render_test_example_c(variables)
43
32
  puts " create #{full_name}/test/example.c"
44
- File.write "#{full_name}/test/example.rb", Mrb::Template.render('gem/test_example.rb.erb', variables)
33
+ File.write "#{full_name}/test/example.rb", Mrb::Template.render_test_example_rb(variables)
45
34
  puts " create #{full_name}/test/example.rb"
46
35
  end
47
36
 
@@ -49,20 +38,32 @@ module Mrb
49
38
  def config(file)
50
39
  yaml = YAML.load_file(file)
51
40
 
41
+ unless yaml.is_a?(Hash)
42
+ # minimize_config
43
+ yaml = {
44
+ 'build' => {
45
+ 'host' => {
46
+ 'toolchain' => 'gcc',
47
+ 'gembox' => 'default',
48
+ }
49
+ }
50
+ }
51
+ end
52
+
52
53
  text = ''
53
54
  if yaml.key?('build')
54
55
  yaml['build'].keys.each do |name|
55
56
  config = yaml['build'][name]
56
57
  config['name'] = name
57
- text << Mrb::Template.render_config('config/build_config_host.erb', config)
58
+ text << Mrb::Template.render_build_config_host(config)
58
59
  end
59
60
  end
60
61
 
61
- if yaml.key?('cross_build')
62
- yaml['cross_build'].keys.each do |name|
63
- config = yaml['cross_build'][name]
62
+ if yaml.key?('crossbuild')
63
+ yaml['crossbuild'].keys.each do |name|
64
+ config = yaml['crossbuild'][name]
64
65
  config['name'] = name
65
- text << Mrb::Template.render_config('config/build_config_crossbuild.erb', config)
66
+ text << Mrb::Template.render_build_config_crossbuild(config)
66
67
  end
67
68
  end
68
69
 
@@ -70,6 +71,31 @@ module Mrb
70
71
  File.write "./build_config.rb", text.gsub(/^$\n/, '')
71
72
  end
72
73
 
74
+ desc "build", "build mruby"
75
+ def build(file)
76
+ yaml = YAML.load_file(file)
77
+
78
+ if !yaml.is_a?(Hash) || yaml.key?('mruby')
79
+ $stderr.puts 'Error: Not found mruby location.'
80
+ return
81
+ end
82
+
83
+ if yaml['mruby'].key?('github')
84
+ github_path = yaml['mruby']['github']
85
+ %x{git clone https://github.com/#{github_path}.git}
86
+ mruby_path = './mruby'
87
+ elsif yaml['mruby'].key?('path')
88
+ mruby_path = yaml['mruby']['path']
89
+ end
90
+
91
+ puts "Buildding ..."
92
+ file_path = File.expand_path(file)
93
+ Dir.chdir(mruby_path) do
94
+ config file_path
95
+ %x{rake}
96
+ end
97
+ end
98
+
73
99
  desc "version", "show version number"
74
100
  def version()
75
101
  puts Mrb::VERSION
data/lib/mrb/template.rb CHANGED
@@ -16,6 +16,34 @@ module Mrb
16
16
  ERB.new(self.read(name)).result(b)
17
17
  end
18
18
 
19
+ def self.render_readme(variables)
20
+ render('gem/README.md.erb', variables)
21
+ end
22
+
23
+ def self.render_mrbgem(variables)
24
+ render('gem/mrbgem.rake.erb', variables)
25
+ end
26
+
27
+ def self.render_example_c(variables)
28
+ render('gem/example.c.erb', variables)
29
+ end
30
+
31
+ def self.render_test_example_c(variables)
32
+ render('gem/test_example.c.erb', variables)
33
+ end
34
+
35
+ def self.render_test_example_rb(variables)
36
+ render('gem/test_example.rb.erb', variables)
37
+ end
38
+
39
+ def self.render_build_config_host(config)
40
+ render_config('config/build_config_host.erb', config)
41
+ end
42
+
43
+ def self.render_build_config_crossbuild(config)
44
+ render_config('config/build_config_crossbuild.erb', config)
45
+ end
46
+
19
47
  private
20
48
  def self.config_to_binding(config)
21
49
  config = {} unless config.is_a?(Hash)
data/lib/mrb/util.rb ADDED
@@ -0,0 +1,19 @@
1
+ module Mrb
2
+ class Util
3
+ def self.gen_names(name)
4
+ if m = name.match(/^mruby-(.*)/)
5
+ full_name = name
6
+ name = m[1]
7
+ else
8
+ full_name = "mruby-#{name}"
9
+ name = name
10
+ end
11
+
12
+ {
13
+ :full_name => full_name,
14
+ :internal_name => full_name.gsub(/-/, '_'),
15
+ :name => name,
16
+ }
17
+ end
18
+ end
19
+ end
data/lib/mrb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mrb
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/mrb.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "mrb/version"
2
2
  require "mrb/cli.rb"
3
3
  require 'mrb/template.rb'
4
+ require 'mrb/util.rb'
4
5
 
5
6
  module Mrb
6
7
  # Your code goes here...
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - qtakamitsu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-06 00:00:00.000000000 Z
11
+ date: 2015-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,6 +96,7 @@ files:
96
96
  - lib/mrb.rb
97
97
  - lib/mrb/cli.rb
98
98
  - lib/mrb/template.rb
99
+ - lib/mrb/util.rb
99
100
  - lib/mrb/version.rb
100
101
  - mrb.gemspec
101
102
  homepage: https://github.com/qtkmz/mrb