slashjoin 0.0.2.1 → 0.0.2.2

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: 5348960e3159fc23f90930b1cfc403ed37ee9bda
4
+ data.tar.gz: 70da023d46c4c0c138e44e8267ccb329b13bfef2
5
+ SHA512:
6
+ metadata.gz: 14b8b0d99746ac9f6f38fb025f006a1c68a980ff3ae92ee5c92035d389d9884a83ec1bc95db5fafde0796a3a4867b71a2ffd9acbce900336f4dfe28c5f62e231
7
+ data.tar.gz: 2135d8c342017dd1bd1f4fc6fae6dd9b6a3250e46ae6da9a92eb20bd3eb0addd1aac0a5177960e3be8e36f5ce74d493609138c0d08d129d185755dba0e692c28
@@ -1,30 +1,7 @@
1
- require 'slashjoin/version'
2
-
3
- module Slashjoin
4
- @@no_patching ||= false
5
- @@use_pathname ||= false
6
-
7
- ALREADY_LOADED ||= {}
8
-
9
- def self.no_patching?
10
- @@no_patching
11
- end
12
-
13
- def self.use_pathname
14
- @@user_pathname = true
15
- end
16
-
17
- def self.user_pathname= (arg)
18
- @@user_pathname = arg
19
- end
20
-
21
- def self.use_pathname?
22
- @@use_pathname
23
- end
24
- end
1
+ require 'slashjoin/class'
25
2
 
26
3
  require 'slashjoin/string'
27
4
  require 'slashjoin/uri'
28
5
  require 'slashjoin/pathname'
29
6
 
30
- require 'slashjoin/patching'
7
+ Slashjoin.patching
@@ -0,0 +1,44 @@
1
+ require 'slashjoin/version'
2
+
3
+ module Slashjoin
4
+ @@no_patch = false
5
+ @@use_pathname = false
6
+
7
+ # @return [Slashjoin]
8
+ def self.no_patch
9
+ @@no_patch = true
10
+ return self
11
+ end
12
+
13
+ # return [Boolean]
14
+ def self.no_patch?
15
+ @@no_patch
16
+ end
17
+
18
+ # @return [Slashjoin]
19
+ def self.use_pathname
20
+ @@user_pathname = true
21
+ return self
22
+ end
23
+
24
+ # @return [Boolean]
25
+ def self.use_pathname?
26
+ @@use_pathname
27
+ end
28
+
29
+ # @return [Hash]
30
+ def self.loaded_classes
31
+ @@loaded_classes ||= {}
32
+ end
33
+
34
+ # @return [Boolean]
35
+ def self.already_loaded?
36
+ loaded_classes.any?
37
+ end
38
+
39
+ # @return [Slashjoin]
40
+ def self.patching
41
+ require 'slashjoin/patching'
42
+ return self
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module Slashjoin
2
- @@no_patch = true
2
+ no_patch
3
3
  end
@@ -1,6 +1,7 @@
1
-
2
- # Error when NOT loaded 'slashjoin', 'slashjoin/{string, uri, pathname}'
3
- raise if Slashjoin::ALREADY_LOADED.nil?
1
+ unless Slashjoin.already_loaded?
2
+ msg = 'Error when NOT loaded `slashjoin\', `slashjoin/{string, uri, pathname}\''
3
+ raise msg
4
+ end
4
5
 
5
6
  patches = {
6
7
  string: proc{
@@ -23,13 +24,12 @@ patches = {
23
24
  }
24
25
 
25
26
  no_lib = %w(string).map(&:to_sym)
26
- loaded = Slashjoin::ALREADY_LOADED
27
- all = loaded.size == 0
27
+ loaded = Slashjoin.loaded_classes
28
+ all = (loaded.size == 0)
28
29
 
29
30
  patches.each{ |key, patch|
30
- if all || loaded[key]
31
- (require(key.to_s) unless no_lib.include?(key)) && (puts "include #{key}.")
32
- #require key.to_s unless no_lib.include? key
31
+ if (all || loaded[key])
32
+ require(key.to_s) unless no_lib.include?(key)
33
33
  case patch
34
34
  when 'pathname'
35
35
  patch.call if Slashjoin::use_pathname?
@@ -38,4 +38,3 @@ patches.each{ |key, patch|
38
38
  end
39
39
  end
40
40
  }
41
-
@@ -1,8 +1,8 @@
1
+ require 'slashjoin/class'
1
2
  require 'pathname'
2
3
 
3
4
  module Slashjoin
4
- ALREADY_LOADED ||= {}
5
- ALREADY_LOADED[:pathname] = true
5
+ loaded_classes[:pathname] = true
6
6
 
7
7
  module Pathname
8
8
  def / (other)
@@ -10,4 +10,3 @@ module Slashjoin
10
10
  end
11
11
  end
12
12
  end
13
-
@@ -1,9 +1,9 @@
1
+ require 'slashjoin/class'
1
2
  require 'uri'
2
3
  require 'pathname'
3
4
 
4
5
  module Slashjoin
5
- ALREADY_LOADED ||= {}
6
- ALREADY_LOADED[:string] = true
6
+ loaded_classes[:string] = true
7
7
  module String
8
8
  def / (other)
9
9
  case
@@ -1,8 +1,8 @@
1
+ require 'slashjoin/class'
1
2
  require 'uri'
2
3
 
3
4
  module Slashjoin
4
- ALREADY_LOADED ||= {}
5
- ALREADY_LOADED[:uri] = true
5
+ loaded_classes[:uri] = true
6
6
 
7
7
  module URI
8
8
  def / (other)
@@ -1,5 +1,5 @@
1
1
  module Slashjoin
2
- @@use_pathname = true
2
+ use_pathname
3
3
  end
4
4
 
5
5
  require 'slashjoin'
@@ -1,3 +1,3 @@
1
1
  module Slashjoin
2
- VERSION = "0.0.2.1"
2
+ VERSION = "0.0.2.2"
3
3
  end
@@ -4,16 +4,16 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'slashjoin/version'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
- gem.name = "slashjoin"
7
+ gem.name = 'slashjoin'
8
8
  gem.version = Slashjoin::VERSION
9
- gem.authors = ["USAMI Kenta"]
10
- gem.email = ["tadsan@zonu.me"]
11
- gem.description = %q{add String#/ method, do {file|URI} path join}
12
- gem.summary = %q{atode kaku.}
13
- gem.homepage = 'https://github.com/zonuexe/ruby-slashjoin'
9
+ gem.authors = ['USAMI Kenta']
10
+ gem.email = ['tadsan@zonu.me']
11
+ gem.description = 'add String#/ method, do {file|URI} path join'
12
+ gem.summary = "inspired by \(backslash) operator of MortScript."
13
+ gem.homepage = 'http://dt.zonu.me/'
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
18
+ gem.require_paths = ['lib']
19
19
  end
@@ -1,33 +1,34 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- $: << File.expand_path(File.dirname(__FILE__))
3
+ $:.unshift(File.expand_path(File.dirname(__FILE__)))
4
+
4
5
  require 'spec_helper'
5
6
  require 'slashjoin'
6
7
 
7
8
  describe Slashjoin do
8
9
  context String do
9
- it "join to URI path name" do
10
- base = "https://github.com/"
11
- user = "zonuexe/"
12
- project = "ruby-slashjoin"
13
- user_uri = base / user
14
- user_uri.should == URI.parse("https://github.com/zonuexe/")
15
- proj_uri = user_uri / project
16
- proj_uri.should == URI.parse("https://github.com/zonuexe/ruby-slashjoin")
10
+ context "join to URI path name" do
11
+ let(:base){ "https://github.com/" }
12
+ let(:user){ "zonuexe/" }
13
+ let(:project){ "ruby-slashjoin" }
14
+ let(:user_uri){ base / user }
15
+ it{ expect(user_uri).to eq URI.parse("https://github.com/zonuexe/") }
16
+ let(:proj_uri){ user_uri / project }
17
+ it{ expect(proj_uri).to eq URI.parse("https://github.com/zonuexe/ruby-slashjoin") }
17
18
  end
18
- it "join to UNIX like path name" do
19
- home = "/home"
20
- megurine_home = (home / "megurine")
21
- megurine_home.should == "/home/megurine"
22
- megurine_home.class.should == String
19
+ context "join to UNIX like path name" do
20
+ let(:home){ "/home" }
21
+ let(:megurine_home){ home / "megurine" }
22
+ it{ expect(megurine_home).to eq "/home/megurine" }
23
+ it{ expect(megurine_home).to be_a String }
23
24
  end
24
25
  end
25
26
  context Pathname do
26
- it "join to" do
27
- home = Pathname.new("/home")
28
- megurine_home = (home / "megurine")
29
- megurine_home.should == Pathname.new("/home/megurine")
30
- megurine_home.class.should == Pathname
27
+ context "join to" do
28
+ let(:home){ Pathname.new("/home") }
29
+ let(:megurine_home){ home / "megurine" }
30
+ it{ expect(megurine_home).to eq Pathname.new("/home/megurine") }
31
+ it{ expect(megurine_home).to be_a Pathname }
31
32
  end
32
33
  end
33
34
  end
@@ -1,4 +1,3 @@
1
1
  $: << File.expand_path(File.join(File.dirname(__FILE__), '..','lib'))
2
2
 
3
3
  require 'rspec'
4
-
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slashjoin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.1
5
- prerelease:
4
+ version: 0.0.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - USAMI Kenta
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
11
+ date: 2013-06-08 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: add String#/ method, do {file|URI} path join
15
14
  email:
@@ -25,7 +24,8 @@ files:
25
24
  - README.md
26
25
  - Rakefile
27
26
  - lib/slashjoin.rb
28
- - lib/slashjoin/nopatching.rb
27
+ - lib/slashjoin/class.rb
28
+ - lib/slashjoin/nopatch.rb
29
29
  - lib/slashjoin/patching.rb
30
30
  - lib/slashjoin/pathname.rb
31
31
  - lib/slashjoin/string.rb
@@ -33,39 +33,34 @@ files:
33
33
  - lib/slashjoin/use_pathname.rb
34
34
  - lib/slashjoin/version.rb
35
35
  - slashjoin.gemspec
36
- - spec/regexp_spec.rb
37
36
  - spec/slashjoin_nopatching.rb
38
37
  - spec/slashjoin_spec.rb
39
38
  - spec/spec_helper.rb
40
- - spec/wcwidth_spec.rb
41
- homepage: https://github.com/zonuexe/ruby-slashjoin
39
+ homepage: http://dt.zonu.me/
42
40
  licenses: []
41
+ metadata: {}
43
42
  post_install_message:
44
43
  rdoc_options: []
45
44
  require_paths:
46
45
  - lib
47
46
  required_ruby_version: !ruby/object:Gem::Requirement
48
- none: false
49
47
  requirements:
50
- - - ! '>='
48
+ - - '>='
51
49
  - !ruby/object:Gem::Version
52
50
  version: '0'
53
51
  required_rubygems_version: !ruby/object:Gem::Requirement
54
- none: false
55
52
  requirements:
56
- - - ! '>='
53
+ - - '>='
57
54
  - !ruby/object:Gem::Version
58
55
  version: '0'
59
56
  requirements: []
60
57
  rubyforge_project:
61
- rubygems_version: 1.8.25
58
+ rubygems_version: 2.0.2
62
59
  signing_key:
63
- specification_version: 3
64
- summary: atode kaku.
60
+ specification_version: 4
61
+ summary: inspired by (backslash) operator of MortScript.
65
62
  test_files:
66
- - spec/regexp_spec.rb
67
63
  - spec/slashjoin_nopatching.rb
68
64
  - spec/slashjoin_spec.rb
69
65
  - spec/spec_helper.rb
70
- - spec/wcwidth_spec.rb
71
66
  has_rdoc:
@@ -1,14 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- $: << File.expand_path(File.dirname(__FILE__))
4
- require 'spec_helper'
5
-
6
- describe StringWidth::Tanasinn do
7
- module StringWidth
8
- module Tanasinn
9
- context RE_AMB_AS_SINGLE_2 do
10
-
11
- end
12
- end
13
- end
14
- end
@@ -1,66 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- $: << File.expand_path(File.dirname(__FILE__))
4
- require 'spec_helper'
5
-
6
- describe StringWidth::Tanasinn do
7
- before(:all){ include StringWidth::Tanasinn }
8
- describe "As single" do
9
- context "Ascii" do
10
- it "large A" do
11
- StringWidth::Tanasinn::wcwidth_amb_as_single("A").should == 1
12
- end
13
- it "large Z" do
14
- StringWidth::Tanasinn::wcwidth_amb_as_single("Z").should == 1
15
- end
16
- end
17
- context "Japanese" do
18
- it "Hiragana NU" do
19
- StringWidth::Tanasinn::wcwidth_amb_as_single("ぬ").should == 2
20
- end
21
- it "Hiragana RU" do
22
- StringWidth::Tanasinn::wcwidth_amb_as_single("る").should == 2
23
- end
24
- it "Hiragana PO" do
25
- StringWidth::Tanasinn::wcwidth_amb_as_single("ぽ").should == 2
26
- end
27
- it "Half Katakana GA" do
28
- ->{
29
- StringWidth::Tanasinn::wcwidth_amb_as_single("ガ")
30
- }.should raise_error ArgumentError
31
- end
32
- it "Half Katakana Small TSU" do
33
- StringWidth::Tanasinn::wcwidth_amb_as_single("ッ").should == 1
34
- end
35
- end
36
- end
37
- describe "As double" do
38
- context "Ascii" do
39
- it "large A" do
40
- StringWidth::Tanasinn::wcwidth_amb_as_double("A").should == 1
41
- end
42
- it "large Z" do
43
- StringWidth::Tanasinn::wcwidth_amb_as_double("Z").should == 1
44
- end
45
- end
46
- context "Japanese" do
47
- it "Hiragana NU" do
48
- StringWidth::Tanasinn::wcwidth_amb_as_double("ぬ").should == 2
49
- end
50
- it "Hiragana RU" do
51
- StringWidth::Tanasinn::wcwidth_amb_as_double("る").should == 2
52
- end
53
- it "Hiragana PO" do
54
- StringWidth::Tanasinn::wcwidth_amb_as_double("ぽ").should == 2
55
- end
56
- it "Half Katakana GA" do
57
- ->{
58
- StringWidth::Tanasinn::wcwidth_amb_as_double("ガ")
59
- }.should raise_error ArgumentError
60
- end
61
- it "Half Katakana Small TSU" do
62
- StringWidth::Tanasinn::wcwidth_amb_as_double("ッ").should == 1
63
- end
64
- end
65
- end
66
- end