Hokkaido 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .DS_Store
1
2
  *.gem
2
3
  *.rbc
3
4
  .bundle
data/.gitmodules ADDED
@@ -0,0 +1,6 @@
1
+ [submodule "cucumber"]
2
+ path = cucumber
3
+ url = git@github.com:jsilverMDX/cucumber.git
4
+ [submodule "gherkin"]
5
+ path = gherkin
6
+ url = git@github.com:jsilverMDX/gherkin.git
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- Hokkaido (0.0.1)
4
+ Hokkaido (0.0.2)
5
5
  commander
6
6
  ruby_parser
7
7
 
data/README.md CHANGED
@@ -39,29 +39,19 @@ Where impossible or strange, A `FIXME` is produced. (not desirable but useful)
39
39
 
40
40
  The above may be expanded later.
41
41
 
42
- ## Installation
43
-
44
- Add this line to your application's Gemfile:
45
-
46
- gem 'Hokkaido'
47
-
48
- And then execute:
49
-
50
- $ bundle
51
-
52
- Or install it yourself as:
53
-
54
- $ gem install Hokkaido
55
-
56
42
  ## Usage
57
43
 
58
- `[bundle exec] Hokkaido <gem_name> <init_file> <lib_folder>`
44
+ Porting: `[bundle exec] Hokkaido port <gem_name> <init_file> <lib_folder>`
45
+ Testing: `[bundle exec] Hokkaido test <gem_name> <init_file> <lib_folder>`
46
+
47
+ Note, `init_file` is looked for within `lib_folder`
59
48
 
60
- ## Examples
49
+ ## Example
61
50
 
62
- Hokkaido term ansicolor.rb term/lib
63
- Hokkaido cucumber cucumber.rb cucumber/lib
64
- Hokkaido gherkin gherkin.rb gherkin/lib
51
+ Hokkaido port gherkin gherkin.rb gherkin-test/lib
52
+ Hokkaido port term ansicolor.rb term/lib
53
+ Hokkaido port cucumber cucumber.rb cucumber/lib
54
+ Hokkaido port gherkin gherkin.rb gherkin/lib
65
55
 
66
56
  ## Contributing
67
57
 
data/bin/Hokkaido CHANGED
@@ -8,15 +8,18 @@ program :version, '0.0.1'
8
8
  program :description, 'Gem port tool for RubyMotion'
9
9
 
10
10
  command :port do |c|
11
- c.syntax = "Usage: Hokkaido port <gem_name> <init_file> <lib_dir>"
11
+ c.syntax = "Usage: Hokkaido port <gem_name> <init_filename> <lib_dir>"
12
12
  c.description = 'Attempts to port the gem. This will modify the files!'
13
13
  c.option '--sim', TrueClass, 'Does not edit the gem files. Good for hacking Hokkaido'
14
14
  c.action do |args, options|
15
- if File.exists?(args[1]) && File.directory?(args[2]) && args[0].size > 1
15
+ if Hokkaido.valid_input?(args)
16
16
  puts "Init Lib:".colorize(:blue)+" #{args[1]}"
17
17
  puts "Gem name:".colorize(:blue)+" #{args[0]}"
18
18
  say "Lib folder:".colorize(:blue)+" #{args[2]}"
19
19
  port = Hokkaido::Port.new(args, options)
20
+ port.modify
21
+ say "Gem modification complete. It will now be tested.".colorize(:yellow)
22
+ say Hokkaido.self_test_result(port)
20
23
  else
21
24
  say "I can't process that."
22
25
  end
@@ -24,11 +27,11 @@ command :port do |c|
24
27
  end
25
28
 
26
29
  command :test do |c|
27
- c.syntax = "Usage: Hokkaido test <init_file>"
28
- c.description = 'Attempts to test the gem with a mocked RubyMotion.'
30
+ c.syntax = "Usage: Hokkaido port <gem_name> <lib_dir> <init_filename> "
31
+ c.description = 'Test a gem with a mocked RubyMotion to see if it passes.'
29
32
  c.action do |args, options|
30
33
  if args[0] && File.exists?(args[0])
31
- Hokkaido::Port.test(args[0])
34
+ say Hokkaido.self_test_result(Hokkaido::Port.new(args, options))
32
35
  else
33
36
  say "File not found."
34
37
  end
data/lib/Hokkaido.rb CHANGED
@@ -1,9 +1,6 @@
1
1
  require "Hokkaido/version"
2
2
  require 'gem_modifier'
3
3
  require 'term/ansicolor'
4
- require 'pry'
5
-
6
-
7
4
 
8
5
  module Hokkaido
9
6
 
@@ -19,26 +16,32 @@ module Hokkaido
19
16
 
20
17
  def initialize(info, options=nil)
21
18
  @mod_gem = GemModifier.new(info)
22
- # if options.sim
23
- # @mod_gem.simulate!
24
- # else
19
+ end
20
+
21
+ def modify
25
22
  @mod_gem.modify!
26
- puts "Gem modification complete. It will now be tested.".colorize(:yellow)
27
- self.test
28
- # end
29
23
  end
30
24
 
31
25
  def test
32
26
  true_path = File.join(@mod_gem.lib_folder, @mod_gem.init_lib)
33
27
  mocklib = File.expand_path('lib/motion_mock.rb')
34
- retval = system("/usr/bin/env ruby -r #{mocklib} #{true_path}")
35
- if retval
36
- puts "The #require removal was successful.".colorize(:green)
37
- else
38
- puts "The #require removal has failed.".colorize(:red)
39
- end
40
- return retval
28
+ system("/usr/bin/env ruby -r #{mocklib} #{true_path}")
41
29
  end
42
30
  end
43
31
 
32
+ def self.self_test_result(port)
33
+ if port.test
34
+ puts "The #require removal was successful.".colorize(:green)
35
+ else
36
+ puts "The #require removal has failed.".colorize(:red)
37
+ end
38
+ end
39
+
40
+ def self.valid_input?(args)
41
+ if args.length == 3 && args[0].length > 0
42
+ name, init_filename, lib_dir = args
43
+ init_path = File.join(lib_dir, init_filename)
44
+ File.directory?(lib_dir) && File.exists?(init_path)
45
+ end
46
+ end
44
47
  end
@@ -1,3 +1,3 @@
1
1
  module Hokkaido
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/motion_mock.rb CHANGED
@@ -1,6 +1,12 @@
1
1
  require 'rubygems'
2
2
  require 'pry'
3
3
 
4
+ # module Kernel
5
+ # def eval(foo)
6
+ # raise "RubyMotion can't #eval"
7
+ # end
8
+ # end
9
+
4
10
  module Motion
5
11
  FILES = []
6
12
  module Project
@@ -1,12 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Hokkaido::GemModifier do
4
- # it "sets up the 3 required input variables" do
5
- # info = ["cucumber", "cucumber/lib/cucumber.rb", "cucumber/lib"]
6
- # modifier = Hokkaido::GemModifier.new(info)
7
- # modifier.gem_name.should == "cucumber"
8
- # modifier.init_lib.should == "./cucumber/lib/cucumber.rb"
9
- # modifier.lib_folder.should == "cucumber/lib"
10
- # end
11
-
4
+ it "sets up the 3 required input variables" do
5
+ info = ["cucumber", "cucumber/lib/cucumber.rb", "cucumber/lib"]
6
+ modifier = Hokkaido::GemModifier.new(info)
7
+ modifier.gem_name.should == "cucumber"
8
+ modifier.init_lib.should == "cucumber/lib/cucumber.rb"
9
+ modifier.lib_folder.should == "cucumber/lib"
10
+ end
12
11
  end
@@ -1,14 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
-
4
-
5
3
  describe Hokkaido::Port do
6
- it "is a factory" do
7
- Hokkaido::Port.should respond_to(:new)
4
+ before do
5
+ File.directory?("gherkin").should be_true
6
+ FileUtils.cp_r "gherkin", "gherkin-spec"
7
+ @info = ["gherkin-spec", "gherkin.rb", "gherkin-spec/lib"]
8
8
  end
9
-
10
- it "should attempt to port a gem to RubyMotion" do
11
- port = Hokkaido::Port.new(["gherkin", "gherkin.rb", "gherkin/lib"])
9
+
10
+ it "should pass self test" do
11
+ port = Hokkaido::Port.new(@info)
12
+ port.modify
12
13
  port.test.should be_true
13
14
  end
15
+
16
+ after do
17
+ FileUtils.rmtree 'gherkin-spec'
18
+ end
14
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Hokkaido
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -133,8 +133,8 @@ executables:
133
133
  extensions: []
134
134
  extra_rdoc_files: []
135
135
  files:
136
- - .DS_Store
137
136
  - .gitignore
137
+ - .gitmodules
138
138
  - .rvmrc
139
139
  - Gemfile
140
140
  - Gemfile.lock
data/.DS_Store DELETED
Binary file