furnace-xray 1.0.0 → 1.1.0.pre1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ad3fbcd1c6346fa30c03fa890bd356da8440d602
4
+ data.tar.gz: ab2c38eee0ee6edaff32064341037e61874bb34f
5
+ SHA512:
6
+ metadata.gz: 2b18eba9f93d570ddc9f9c40a4fead4b045c46088354666248b1eb87aa1ef835e3b919a030b5f59248a7b183703284f69b0c13b27a563181eb06b0c0bacb081d
7
+ data.tar.gz: b9cfcca32473c06a899459259a602028b322ed9db8c30ce43aea2a8d8697c3e63fa3b832d7d64679828dd0f5ba71ed2f329037c7df7d4fb656791853a732d4ed
data/README.md CHANGED
@@ -47,6 +47,8 @@ To view collected data, just point furnace-xray to it:
47
47
  Now, open your ~~browser~~ Chrome or Chromium and point it to
48
48
  http://localhost:4567.
49
49
 
50
+ ![](http://f.cl.ly/items/2t0p052l1J1m283r2W2b/furnace-xray.png)
51
+
50
52
  ## Contributing
51
53
 
52
54
  1. Fork it
data/bin/furnace-xray CHANGED
@@ -20,4 +20,4 @@ end
20
20
 
21
21
  Trollop::die "File not specified or does not exist" unless ARGV[0] && File.exist?(ARGV[0])
22
22
 
23
- Furnace::Xray::App.run! ARGV[0], :environment => :production
23
+ Furnace::Xray::App.run! ARGV[0], :environment => :production
data/furnace-xray.gemspec CHANGED
@@ -19,15 +19,15 @@ Gem::Specification.new do |gem|
19
19
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
20
20
  gem.require_paths = ['lib']
21
21
 
22
- gem.add_dependency 'trollop'
23
- gem.add_dependency 'sprockets', '~> 2.0.0'
24
22
  gem.add_dependency 'sinatra'
25
- gem.add_dependency 'sinatra-sprockets-ext'
23
+ gem.add_dependency 'trollop'
26
24
  gem.add_dependency 'activesupport'
27
- gem.add_dependency 'sprockets-vendor_gems'
28
- gem.add_dependency 'haml'
29
- gem.add_dependency 'sass'
30
- gem.add_dependency 'sprockets-sass'
31
- gem.add_dependency 'compass'
25
+
26
+ gem.add_dependency 'haml', '3.1.7'
27
+ gem.add_dependency 'sass', '3.2.5'
28
+ gem.add_dependency 'sprockets', '2.8.2'
29
+ gem.add_dependency 'sprockets-sass', '0.9.1'
30
+ gem.add_dependency 'sprockets-helpers', '0.8.0'
32
31
  gem.add_dependency 'coffee-script'
32
+ gem.add_dependency 'compass'
33
33
  end
@@ -1,11 +1,10 @@
1
1
  require 'sinatra/base'
2
2
 
3
- require 'sprockets-vendor_gems/extend_all'
4
- require 'sinatra/sprockets'
5
-
6
3
  require 'haml'
7
- require 'sprockets-sass'
8
4
  require 'sass'
5
+ require 'sprockets'
6
+ require 'sprockets/sass'
7
+ require 'sprockets/helpers'
9
8
  require 'compass'
10
9
  require 'coffee-script'
11
10
 
@@ -19,35 +18,29 @@ end
19
18
  module Furnace
20
19
  module Xray
21
20
  class App < Sinatra::Base
21
+ register Sinatra::JstPages
22
+
23
+ set :static, true
24
+ set :public_folder, File.expand_path('../public', __FILE__)
25
+ set :sprockets, Sprockets::Environment.new(root)
26
+ set :assets_types, %w(javascripts stylesheets images)
27
+
22
28
  def self.run!(file, options={})
23
29
  set :json_location, file
30
+ assets_types.map{|x| sprockets.append_path ("#{root}/assets/#{x}") }
24
31
  super options
25
32
  end
26
33
 
27
- #
28
- # Sprockets
29
- #
30
- register Sinatra::Sprockets
34
+ serve_jst '/jst.js'
35
+
31
36
  use Module.new {
32
37
  def self.new(app)
33
38
  Rack::Builder.new(app) do
34
- map('/assets') { run Sinatra::Sprockets.environment }
39
+ map('/assets') { run App.sprockets }
35
40
  end
36
41
  end
37
42
  }
38
43
 
39
- #
40
- # JST
41
- #
42
- register Sinatra::JstPages
43
- serve_jst '/jst.js'
44
-
45
- #
46
- # App
47
- #
48
- enable :static
49
- set :public_folder, File.expand_path('../public', __FILE__)
50
-
51
44
  get '/' do
52
45
  haml :index
53
46
  end
@@ -14,14 +14,14 @@ class @Input
14
14
  transforms = Object.extended()
15
15
 
16
16
  @source.events.each (x, i) =>
17
- switch x.event
17
+ switch x.event
18
18
  when 'addInstruction'
19
19
  reducer.add x.name
20
20
  @events.add i
21
21
  when 'removeInstruction'
22
22
  reducer.exclude x.name
23
23
  @events.add i
24
- when 'updateInstruction'
24
+ when 'updateInstruction', 'renameInstruction'
25
25
  @events.add i if reducer.any(x.name)
26
26
  when 'type', 'transformStart'
27
27
  else
@@ -32,7 +32,7 @@ class @Input
32
32
  transforms[id] = {id: id, label: x.name}
33
33
 
34
34
  @transforms = transforms.values()
35
- @transforms = @transforms.filter (x, i) =>
35
+ @transforms = @transforms.filter (x, i) =>
36
36
  x.length = (@transforms[i+1]?.id || @events.length) - x.id
37
37
  x.id < @events.length-1
38
38
 
@@ -60,7 +60,7 @@ class @Input
60
60
  else
61
61
  @previousState = new InputState(@)
62
62
 
63
- @reset()
63
+ @reset()
64
64
  @increment(to)
65
65
 
66
66
  increment: (to) ->
@@ -123,7 +123,7 @@ class @Input
123
123
  @instructions[id].update event.opcode, event.name, event.parameters, operands, @type(event.type)
124
124
 
125
125
  addInstruction: (event) ->
126
- @instructionsMap.locate event.name, (i) =>
126
+ @instructionsMap.locateOrAdd event.name, (i) =>
127
127
  @blocksMap.locate event.basic_block, (b) =>
128
128
  @instructions[i].link @blocks[b], event.index
129
129
 
@@ -131,4 +131,8 @@ class @Input
131
131
  @instructionsMap.locate event.name, (i) =>
132
132
  @instructions[i].unlink()
133
133
 
134
- transformStart: (event) ->
134
+ renameInstruction: (event) ->
135
+ @instructionsMap.rename event.name, event.new_name, (i) =>
136
+ @instructions[i].name = event.new_name
137
+
138
+ transformStart: (event) ->
@@ -9,9 +9,9 @@ class @Map
9
9
  each: (block) -> @map.each block
10
10
 
11
11
  add: (name, block) ->
12
- id = @data.findIndex(name)
12
+ id = @map[name]
13
13
 
14
- if id < 0
14
+ unless id?
15
15
  @data.add name
16
16
  id = @data.length-1
17
17
  block(id) if block
@@ -22,7 +22,7 @@ class @Map
22
22
  find: (name) ->
23
23
  id = @map[name]
24
24
 
25
- if id < 0
25
+ unless id?
26
26
  error = "Map '#{@title}': '#{name}' element not found"
27
27
  throw error
28
28
 
@@ -42,4 +42,7 @@ class @Map
42
42
  @map[newName] = id
43
43
 
44
44
  locate: (name, block) ->
45
- block(@find(name))
45
+ block(@find(name))
46
+
47
+ locateOrAdd: (name, block) ->
48
+ block(@add(name))
@@ -5,9 +5,10 @@
5
5
 
6
6
  %link{:href => "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=", :rel => "icon", :type => "image/x-icon"}
7
7
 
8
- = javascript_include_tag 'application'
9
- = javascript_include_tag '/jst'
10
- = stylesheet_link_tag 'app'
8
+ %link{:href => '/assets/app.css', :rel => 'stylesheet', :type => 'text/css'}
9
+
10
+ %script{:src => '/assets/application.js', :type => 'text/javascript'}
11
+ %script{:src => '/jst.js', :type => 'text/javascript'}
11
12
 
12
13
  :javascript
13
14
  window.data = Input.normalize(#{File.read settings.json_location})
@@ -1,5 +1,5 @@
1
1
  module Furnace
2
2
  module Xray
3
- VERSION = '1.0.0'
3
+ VERSION = '1.1.0.pre1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,137 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furnace-xray
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.1.0.pre1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Boris Staal
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-27 00:00:00.000000000 Z
11
+ date: 2013-03-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: trollop
16
- requirement: &70220406738380 !ruby/object:Gem::Requirement
17
- none: false
14
+ name: sinatra
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70220406738380
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
- name: sprockets
27
- requirement: &70220406737540 !ruby/object:Gem::Requirement
28
- none: false
28
+ name: trollop
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ~>
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
- version: 2.0.0
33
+ version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70220406737540
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
- name: sinatra
38
- requirement: &70220406737020 !ruby/object:Gem::Requirement
39
- none: false
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *70220406737020
47
- - !ruby/object:Gem::Dependency
48
- name: sinatra-sprockets-ext
49
- requirement: &70220406736100 !ruby/object:Gem::Requirement
50
- none: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: haml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.7
55
62
  type: :runtime
56
63
  prerelease: false
57
- version_requirements: *70220406736100
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 3.1.7
58
69
  - !ruby/object:Gem::Dependency
59
- name: activesupport
60
- requirement: &70220406735100 !ruby/object:Gem::Requirement
61
- none: false
70
+ name: sass
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - '='
64
74
  - !ruby/object:Gem::Version
65
- version: '0'
75
+ version: 3.2.5
66
76
  type: :runtime
67
77
  prerelease: false
68
- version_requirements: *70220406735100
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 3.2.5
69
83
  - !ruby/object:Gem::Dependency
70
- name: sprockets-vendor_gems
71
- requirement: &70220406734200 !ruby/object:Gem::Requirement
72
- none: false
84
+ name: sprockets
85
+ requirement: !ruby/object:Gem::Requirement
73
86
  requirements:
74
- - - ! '>='
87
+ - - '='
75
88
  - !ruby/object:Gem::Version
76
- version: '0'
89
+ version: 2.8.2
77
90
  type: :runtime
78
91
  prerelease: false
79
- version_requirements: *70220406734200
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 2.8.2
80
97
  - !ruby/object:Gem::Dependency
81
- name: haml
82
- requirement: &70220406733660 !ruby/object:Gem::Requirement
83
- none: false
98
+ name: sprockets-sass
99
+ requirement: !ruby/object:Gem::Requirement
84
100
  requirements:
85
- - - ! '>='
101
+ - - '='
86
102
  - !ruby/object:Gem::Version
87
- version: '0'
103
+ version: 0.9.1
88
104
  type: :runtime
89
105
  prerelease: false
90
- version_requirements: *70220406733660
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.9.1
91
111
  - !ruby/object:Gem::Dependency
92
- name: sass
93
- requirement: &70220406733100 !ruby/object:Gem::Requirement
94
- none: false
112
+ name: sprockets-helpers
113
+ requirement: !ruby/object:Gem::Requirement
95
114
  requirements:
96
- - - ! '>='
115
+ - - '='
97
116
  - !ruby/object:Gem::Version
98
- version: '0'
117
+ version: 0.8.0
99
118
  type: :runtime
100
119
  prerelease: false
101
- version_requirements: *70220406733100
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 0.8.0
102
125
  - !ruby/object:Gem::Dependency
103
- name: sprockets-sass
104
- requirement: &70220406731920 !ruby/object:Gem::Requirement
105
- none: false
126
+ name: coffee-script
127
+ requirement: !ruby/object:Gem::Requirement
106
128
  requirements:
107
- - - ! '>='
129
+ - - '>='
108
130
  - !ruby/object:Gem::Version
109
131
  version: '0'
110
132
  type: :runtime
111
133
  prerelease: false
112
- version_requirements: *70220406731920
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
113
139
  - !ruby/object:Gem::Dependency
114
140
  name: compass
115
- requirement: &70220406730900 !ruby/object:Gem::Requirement
116
- none: false
141
+ requirement: !ruby/object:Gem::Requirement
117
142
  requirements:
118
- - - ! '>='
143
+ - - '>='
119
144
  - !ruby/object:Gem::Version
120
145
  version: '0'
121
146
  type: :runtime
122
147
  prerelease: false
123
- version_requirements: *70220406730900
124
- - !ruby/object:Gem::Dependency
125
- name: coffee-script
126
- requirement: &70220406752600 !ruby/object:Gem::Requirement
127
- none: false
148
+ version_requirements: !ruby/object:Gem::Requirement
128
149
  requirements:
129
- - - ! '>='
150
+ - - '>='
130
151
  - !ruby/object:Gem::Version
131
152
  version: '0'
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: *70220406752600
135
153
  description: A visualizer for transformations of code in Static Single Assignment
136
154
  form based on the Furnace library.
137
155
  email:
@@ -224,27 +242,26 @@ files:
224
242
  - sample.json
225
243
  homepage: https://github.com/evilmartians/furnace-xray
226
244
  licenses: []
245
+ metadata: {}
227
246
  post_install_message:
228
247
  rdoc_options: []
229
248
  require_paths:
230
249
  - lib
231
250
  required_ruby_version: !ruby/object:Gem::Requirement
232
- none: false
233
251
  requirements:
234
- - - ! '>='
252
+ - - '>='
235
253
  - !ruby/object:Gem::Version
236
254
  version: '0'
237
255
  required_rubygems_version: !ruby/object:Gem::Requirement
238
- none: false
239
256
  requirements:
240
- - - ! '>='
257
+ - - '>'
241
258
  - !ruby/object:Gem::Version
242
- version: '0'
259
+ version: 1.3.1
243
260
  requirements: []
244
261
  rubyforge_project:
245
- rubygems_version: 1.8.15
262
+ rubygems_version: 2.0.0
246
263
  signing_key:
247
- specification_version: 3
264
+ specification_version: 4
248
265
  summary: A visualizer for transformations of code in Static Single Assignment form
249
266
  based on the Furnace library.
250
267
  test_files: []