show_code 0.1.3 → 0.1.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: 5ab123ab2b788e63a6f7c1395bae7876797af614
4
- data.tar.gz: 7aa5dc0ba82d9beee57702ffd5d9d601ab3a1797
3
+ metadata.gz: f4dc7933daf56bb40881fccf3193259dbea82a12
4
+ data.tar.gz: 3d0bf6b6681fbe6b2136579425287a7e07e8743c
5
5
  SHA512:
6
- metadata.gz: 0276b4538244c23480e8548572281facde845301f88eeaca0388af490a25a3a8fb65fe499d93294cbb4faf274647582f6ad04fde0cc16f41de6c40ba7dca9926
7
- data.tar.gz: 2ce50ad3e766ea265b474be62d537a7a47025127f02842d2f40f850953cf031403a81c7bb014cfa2994b80eba1feb0a895f99783d8b33e7b0e112a7367c4ed40
6
+ metadata.gz: e372241a9e9d6e1a360389998b3f9af656e4f5145711bfed78f4fa07a1bf1528c5fde4ca8e6822e54508c2671432d38e076f2e19a7f1ed057bacf4310eb8c336
7
+ data.tar.gz: b63de7c35538f346b82520ccdef2f6b0dc980e50ff2db126e98f0e3164df2f454d9647ebc99efd34a6d2ada556737814e49fd0dadb76a46d21badfd3f35ab155
data/.gitignore CHANGED
@@ -46,3 +46,4 @@ Gemfile.lock
46
46
 
47
47
  # PROJECT::RBENV
48
48
  .ruby-gemset
49
+ *.gem
@@ -1,14 +1,14 @@
1
1
  module ShowCode
2
- class SourceLocation
2
+ class SourceLocationError < StandardError; end
3
3
 
4
+ class SourceLocation
4
5
  attr :method, :file, :line
5
6
 
6
7
  def initialize(target)
7
8
  if target.is_a?(String)
8
-
9
- target = target.gsub! '.new', '.allocate'
10
- klass = target.split('.')[0..-2].join('.')
11
- method = target.split('.').last
9
+ arr = target.split('.').map{|t| t == 'new' ? 'allocate' : t}
10
+ klass = arr[0..-2].join('.')
11
+ method = arr[-1]
12
12
 
13
13
  # refer:
14
14
  # Object.instance_method(:method).bind(User).call(:current).source_location
@@ -19,10 +19,14 @@ module ShowCode
19
19
  elsif target.is_a?(Method) || target.is_a?(UnboundMethod)
20
20
  @method = target
21
21
  else
22
- raise ArgumentError, 'bad argument (expected Method object or String)'
22
+ raise ArgumentError, 'bad argument (expected Method object or Chaining string)'
23
23
  end
24
24
 
25
- @file, @line = @method.source_location
25
+ if @method.source_location.nil?
26
+ raise SourceLocationError, 'cannot find the method source location'
27
+ else
28
+ @file, @line = @method.source_location
29
+ end
26
30
 
27
31
  end
28
32
 
@@ -1,3 +1,3 @@
1
1
  module ShowCode
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/show_code.rb CHANGED
@@ -1,4 +1,7 @@
1
- Dir[File.dirname(__FILE__) + "/show_code/*.rb"].each { |file| require(file) }
1
+ require_relative 'show_code/version'
2
+ require_relative 'show_code/source_location'
3
+ require_relative 'show_code/syntax_exception'
4
+ require_relative 'show_code/code'
2
5
 
3
6
  module ShowCode
4
7
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: show_code
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - cenxky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-27 00:00:00.000000000 Z
11
+ date: 2017-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler