grill 0.4.0 → 0.5.0

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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dd6821a9d580419f09f82949382f45babb98c4c5
4
+ data.tar.gz: e7f6327d76814658addb2d19cf987bb62a875a29
5
+ SHA512:
6
+ metadata.gz: 59e97e6e823e0af002d312f2487fde7a7662aabb4db224d5ef61b5fa526bfe0cf2545b27c59433c5b47cc3daed95b6ede448b3182449e578c4be26ea76ce3dd4
7
+ data.tar.gz: 09e4febb19acf13497426258cd0d713316b60a350357c27b72a2c83948ff7953dd97cf4775720d9f689b190709ccade16e73931f70faa65deb23dbecb5103f9b
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.3
5
+ - 2.0.0
6
+
7
+ script: 'ci/spec.rb'
8
+ before_install:
9
+ - gem install bundler rspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Grill
1
+ # Grill [![Build Status](https://travis-ci.org/uu59/grill.png?branch=master)](https://travis-ci.org/uu59/grill)
2
2
 
3
3
  <a href="http://en.wikipedia.org/wiki/File:Paul_Wall.jpg"><img src="http://upload.wikimedia.org/wikipedia/commons/9/99/Paul_Wall.jpg" /></a>
4
4
 
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # -- coding: utf-8
3
+
4
+ require "rubygems"
5
+ require "rspec"
6
+ RSpec::Core::Runner.run [File.expand_path("../../spec", __FILE__), "-c"]
@@ -23,16 +23,7 @@ module Grill
23
23
  end
24
24
 
25
25
  def implant(*args)
26
- gems = ""
27
- args.each do |arg|
28
- if arg.class == Symbol
29
- gems << File.read(File.join(home, arg.to_s))
30
- else
31
- gems << arg
32
- end
33
- gems << "\n"
34
- end
35
-
26
+ gems = build_gemfile(*args)
36
27
  gemfile = gemfile_path(gems)
37
28
  tmp = File.open(gemfile, "w")
38
29
  tmp.puts gems
@@ -50,6 +41,20 @@ module Grill
50
41
  Bundler.require
51
42
  end
52
43
 
44
+ def build_gemfile(*args)
45
+ gems = ""
46
+ args.each do |arg|
47
+ if arg.class == Symbol
48
+ gems << File.read(File.join(home, arg.to_s))
49
+ else
50
+ gems << arg
51
+ end
52
+ gems << "\n"
53
+ end
54
+ gems = "source 'https://rubygems.org'\n#{gems}" unless gems[/^\s*source /]
55
+ gems
56
+ end
57
+
53
58
  private
54
59
  def ruby
55
60
  "#{defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby18"}-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
@@ -1,3 +1,3 @@
1
1
  module Grill
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -15,65 +15,68 @@ describe Grill do
15
15
  Grill.home.should match %r!^#{ENV["GRILL_HOME"]}/.grill!
16
16
  end
17
17
 
18
- # cannot use `context` because test will be broken
19
- # I don't know why but maybe that `context` require Bundler
20
- it "#implant by String" do
21
- cleanroom do
22
- defined?(Bundler).should be_nil
23
- defined?(Dummy).should be_nil
24
- defined?(DummyGit).should be_nil
25
-
26
- Grill.implant(<<-GEM)
27
- gem "bundler"
28
- gem "dummy", :path => "#{File.expand_path(".././support", __FILE__)}"
29
- gem "dummy_git", :git => "file://#{File.expand_path(".././support/dummy_git", __FILE__)}"
30
- GEM
31
- defined?(Bundler).should_not be_nil
32
- defined?(Dummy).should_not be_nil
33
- defined?(DummyGit).should_not be_nil
34
- end
35
- end
18
+ describe "#implant" do
19
+ it "by String" do
20
+ cleanroom do
21
+ defined?(Dummy).should be_nil
36
22
 
37
- it "#implant by Symbol" do
38
- cleanroom do
39
- name = :test
40
- File.open("#{Grill.home}/#{name}", "w") do |f|
41
- f.puts <<-GEM
42
- gem "dummy", :path => "#{File.expand_path(".././support", __FILE__)}"
43
- gem "dummy2", :path => "#{File.expand_path(".././support", __FILE__)}"
23
+ Grill.implant(<<-GEM)
24
+ gem "dummy", :path => "#{File.expand_path(".././support/dummy", __FILE__)}"
44
25
  GEM
26
+ defined?(Dummy).should_not be_nil
45
27
  end
46
- defined?(Dummy).should be_nil
47
- defined?(Dummy2).should be_nil
28
+ end
29
+
30
+ it "multiple" do
31
+ cleanroom do
32
+ defined?(Dummy).should be_nil
33
+ defined?(Dummy2).should be_nil
48
34
 
49
- Grill.implant name
50
- defined?(Dummy).should_not be_nil
51
- defined?(Dummy2).should_not be_nil
35
+ Grill.implant <<-FOO, <<-BAR
36
+ gem "dummy", :path => "#{File.expand_path(".././support/dummy", __FILE__)}"
37
+ FOO
38
+ gem "dummy2", :path => "#{File.expand_path(".././support/dummy2", __FILE__)}"
39
+ BAR
40
+
41
+ defined?(Dummy).should_not be_nil
42
+ defined?(Dummy2).should_not be_nil
43
+ end
52
44
  end
45
+
53
46
  end
54
47
 
55
- it "#implant multiple" do
56
- cleanroom do
57
- defined?(Dummy).should be_nil
58
- defined?(Dummy2).should be_nil
48
+ describe "#build_gemfile" do
49
+
50
+ it "auto completion `source` if lacked" do
51
+ gemfile = Grill.build_gemfile "gem 'rack'"
52
+ gemfile["source"].should_not be_nil
53
+ gemfile["https://rubygems.org"].should_not be_nil
54
+ end
59
55
 
60
- Grill.implant <<-FOO, <<-BAR
61
- gem "dummy", :path => "#{File.expand_path(".././support", __FILE__)}"
62
- FOO
63
- gem "dummy2", :path => "#{File.expand_path(".././support", __FILE__)}"
64
- BAR
56
+ it "can receive Symbol" do
57
+ name = :test
58
+ gemfile = <<-GEM
59
+ source "https://rubygems.org"
60
+ gem "dummy", :path => "#{File.expand_path(".././support/dummy", __FILE__)}"
61
+ gem "dummy2", :path => "#{File.expand_path(".././support/dummy2", __FILE__)}"
62
+ GEM
65
63
 
66
- defined?(Dummy).should_not be_nil
67
- defined?(Dummy2).should_not be_nil
64
+ File.open("#{Grill.home}/#{name}", "w") do |f|
65
+ f.write gemfile
66
+ end
67
+
68
+ # strip \n for normalize
69
+ Grill.build_gemfile(name).rstrip.should == gemfile.rstrip
68
70
  end
69
71
  end
70
72
 
73
+
71
74
  it "separete Gemfile different contants" do
72
- gemfile1 = 'gem "bundler"'
75
+ gemfile1 = 'gem "hogehoge"'
73
76
  file1 = Grill.gemfile_path(gemfile1)
74
77
 
75
78
  gemfile2 = <<-GEM
76
- gem "dummy", :path => "#{File.expand_path(".././support", __FILE__)}"
79
+ gem "dummy", :path => "#{File.expand_path(".././support/dummy", __FILE__)}"
77
80
  GEM
78
81
  file2 = Grill.gemfile_path(gemfile2)
79
82
 
@@ -9,8 +9,11 @@ require "rspec/matchers/built_in/be"
9
9
  RSpec.configure do |config|
10
10
  # Bundler is a singleton, so we must isolate each test processes
11
11
  def cleanroom(&block)
12
- pending "unsupported `fork`" unless
13
- pid = fork { block.call }
12
+ pending "unsupported `fork`" unless Process.respond_to?(:fork)
13
+ Process.fork do
14
+ block.call
15
+ end
14
16
  Process.waitall
17
+ $?.to_i.should == 0
15
18
  end
16
19
  end
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grill
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - uu59
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-11 00:00:00.000000000 Z
11
+ date: 2013-07-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.1.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.1.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Implant Gemfile into your script
@@ -51,10 +46,12 @@ extensions: []
51
46
  extra_rdoc_files: []
52
47
  files:
53
48
  - .gitignore
49
+ - .travis.yml
54
50
  - Gemfile
55
51
  - LICENSE.txt
56
52
  - README.md
57
53
  - Rakefile
54
+ - ci/spec.rb
58
55
  - grill.gemspec
59
56
  - lib/grill.rb
60
57
  - lib/grill/version.rb
@@ -66,27 +63,26 @@ files:
66
63
  - spec/support/dummy2/lib/dummy2.rb
67
64
  homepage: https://github.com/uu59/grill
68
65
  licenses: []
66
+ metadata: {}
69
67
  post_install_message:
70
68
  rdoc_options: []
71
69
  require_paths:
72
70
  - lib
73
71
  required_ruby_version: !ruby/object:Gem::Requirement
74
- none: false
75
72
  requirements:
76
- - - ! '>='
73
+ - - '>='
77
74
  - !ruby/object:Gem::Version
78
75
  version: '0'
79
76
  required_rubygems_version: !ruby/object:Gem::Requirement
80
- none: false
81
77
  requirements:
82
- - - ! '>='
78
+ - - '>='
83
79
  - !ruby/object:Gem::Version
84
80
  version: '0'
85
81
  requirements: []
86
82
  rubyforge_project:
87
- rubygems_version: 1.8.23
83
+ rubygems_version: 2.0.3
88
84
  signing_key:
89
- specification_version: 3
85
+ specification_version: 4
90
86
  summary: Implant Gemfile into your script
91
87
  test_files:
92
88
  - spec/grill_spec.rb