show_code 0.1.3 → 0.1.4

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.
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