analyst 1.0.0 → 1.0.1

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: cacc928955bbd8e72446dcf6b20a5cbebc5ec4fc
4
- data.tar.gz: b4c9cad57b52ba7f6c48f04f9295935cbe918463
3
+ metadata.gz: eab9524eb5763fcc6b6c96491d3eda6670cda02f
4
+ data.tar.gz: ad946eb37111ca6329f1b089a59d99c1234a4740
5
5
  SHA512:
6
- metadata.gz: 00085874da8ad41948eca83217e3d36e519518a65d197c8fb6b38bb2fbca0ae3fd6a25bb7f3f00337d5400f1d240987a630955a6eefde5419001db7655637360
7
- data.tar.gz: 238d01df95d83893c687a2bf1e1e9b578dc12218f446137439a997127ec92f16fec87c38b1e1317c4f26a88a563907e5ad92755bdae8e79d96fc41dbb138b0ea
6
+ metadata.gz: 84bd02e46b5745ae1f4b1847b61b3f003b014cb5370c71fdcd9bd9fdf56e6559441e70a11567d3932789061d2aed3dc9e04fadf61e395cd41fd14c2bc459982e
7
+ data.tar.gz: 3c539573aa32661008537ed3353a704a9f12b2f31d7166a770b6badabda94efa115ccd88d8d716d86141f83f22563202a557747b354529349ba05739652ce572
data/analyst.gemspec CHANGED
@@ -20,9 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "haml"
22
22
  spec.add_dependency "parser"
23
- spec.add_dependency "rainbow"
24
- spec.add_dependency "rouge"
25
- spec.add_dependency "terminal-table"
26
23
  spec.add_dependency "thor"
27
24
 
28
25
  spec.add_development_dependency "bundler", "~> 1.6"
@@ -10,7 +10,11 @@ module Analyst
10
10
  end
11
11
 
12
12
  def full_name
13
- parent.nil? ? name : parent.full_name + '::' + name
13
+ (scope.nil? ? parent.full_name : scope.full_name) + '::' + name
14
+ end
15
+
16
+ def scope
17
+ @scope ||= process_node(ast.children.first)
14
18
  end
15
19
 
16
20
  private
@@ -1,3 +1,3 @@
1
1
  module Analyst
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -20,10 +20,36 @@ describe Analyst::Entities::ClassMethod do
20
20
  end
21
21
  end
22
22
 
23
- describe "#fulL_name" do
23
+ describe "#full_name" do
24
24
  it "returns its fully qualified name" do
25
25
  expect(method.full_name).to eq("DefaultCarrier::register")
26
26
  end
27
27
  end
28
28
 
29
- end
29
+ context "using `class << self` blocks" do
30
+
31
+ let(:code) {<<-CODE
32
+ class BodyBuilder
33
+ class << self
34
+ def generate_tanning_booth
35
+ TanningBooth.new
36
+ end
37
+ end
38
+ end
39
+ CODE
40
+ }
41
+
42
+ describe "#name" do
43
+ it "returns its short name" do
44
+ expect(method.name).to eq("generate_tanning_booth")
45
+ end
46
+ end
47
+
48
+ describe "#full_name" do
49
+ it "returns its fully qualified name" do
50
+ pending "must resolve out handling of singleton classes"
51
+ expect(method.full_name).to eq("BodyBuilder::generate_tanning_booth")
52
+ end
53
+ end
54
+ end
55
+ end
@@ -40,6 +40,34 @@ describe Analyst::Entities::Hash do
40
40
  [Analyst::Entities::MethodCall, Analyst::Entities::MethodCall]
41
41
  )
42
42
  end
43
- end
44
43
 
45
- end
44
+ describe "`extract_values` option" do
45
+ let(:code) { "{ :name => 'Jim', :sex => :male, Coolness => get_coolness }" }
46
+ let(:hash) { Analyst.for_source(code).hashes.first }
47
+
48
+ context "with `extract_values: true` (default)" do
49
+ let(:hash_frd) { hash.to_hash }
50
+
51
+ it "extracts symbols and strings" do
52
+ coolness = hash.constants.first
53
+ get_coolness = hash.pairs.last.method_calls.first
54
+
55
+ expect(hash_frd.keys).to match_array [:name, :sex, coolness]
56
+ expect(hash_frd.values).to match_array ['Jim', :male, get_coolness]
57
+ end
58
+ end
59
+
60
+ context "with `extract_values: false`" do
61
+ let(:hash_frd) { hash.to_hash(extract_values: false) }
62
+
63
+ it "returns Entities instead of primitives" do
64
+ key_classes = hash_frd.keys.map(&:class)
65
+ value_classes = hash_frd.values.map(&:class)
66
+
67
+ expect(key_classes).to eq [Analyst::Entities::Symbol, Analyst::Entities::Symbol, Analyst::Entities::Constant]
68
+ expect(value_classes).to eq [Analyst::Entities::String, Analyst::Entities::Symbol, Analyst::Entities::MethodCall]
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -3,10 +3,12 @@ require 'spec_helper'
3
3
  describe Analyst::Entities::SingletonClass do
4
4
 
5
5
  let(:code) {<<-CODE
6
- class FriendlyStaff
7
- class << self
8
- def greet_customers
9
- "Hello customers!"
6
+ module Arbys
7
+ class FriendlyStaff
8
+ class << self
9
+ def greet_customers
10
+ "Hello customers!"
11
+ end
10
12
  end
11
13
  end
12
14
  end
@@ -22,9 +24,9 @@ describe Analyst::Entities::SingletonClass do
22
24
  end
23
25
  end
24
26
 
25
- describe "#fulL_name" do
27
+ describe "#full_name" do
26
28
  it "returns its fully qualified name" do
27
- expect(singleton.full_name).to eq("FriendlyStaff!SINGLETON")
29
+ expect(singleton.full_name).to eq("Arbys::FriendlyStaff!SINGLETON")
28
30
  end
29
31
  end
30
32
 
@@ -34,4 +36,4 @@ describe Analyst::Entities::SingletonClass do
34
36
  end
35
37
  end
36
38
 
37
- end
39
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: analyst
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coraline Ada Ehmke
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-26 00:00:00.000000000 Z
12
+ date: 2014-12-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: haml
@@ -39,48 +39,6 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
- - !ruby/object:Gem::Dependency
43
- name: rainbow
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '0'
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
- - !ruby/object:Gem::Dependency
57
- name: rouge
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :runtime
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- - !ruby/object:Gem::Dependency
71
- name: terminal-table
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :runtime
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '0'
84
42
  - !ruby/object:Gem::Dependency
85
43
  name: thor
86
44
  requirement: !ruby/object:Gem::Requirement