plotrobber 0.0.3 → 0.0.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.
@@ -1,3 +1,3 @@
1
1
  module Plotrobber
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/plotrobber.rb CHANGED
@@ -10,9 +10,9 @@ def plotting(&blk)
10
10
  end
11
11
  end
12
12
 
13
- def plot(title = nil, &blk)
13
+ def plot(filename=nil, &blk)
14
14
  Gnuplot::Plot.new(@@gp) do |p|
15
- p.title(title) if title
15
+ p.magic_terminal(filename) if filename
16
16
  p.instance_exec(p, &blk)
17
17
  end
18
18
  end
@@ -25,7 +25,7 @@ class Gnuplot::Plot
25
25
  def store(data)
26
26
  (@store ||= {})[data] ||= begin
27
27
  file = Tempfile.new(['plotrobber.','.dat'])
28
- file.write data.map{|x|x.join("\t")}.join("\n")
28
+ file.write Array(data).map{|x|x.join("\t")}.join("\n")
29
29
  file.write "\n"
30
30
  file.rewind
31
31
 
@@ -33,6 +33,15 @@ class Gnuplot::Plot
33
33
  end
34
34
  end
35
35
 
36
+ def magic_terminal(name)
37
+ newest_change = caller.map {|c| File.mtime(c[/.*\.rb:/][0..-2]) }.max
38
+
39
+ unless ENV.key? 'STAGE'
40
+ terminal File.extname(name)[1..-1]
41
+ output name
42
+ end
43
+ end
44
+
36
45
  def source_name(what)
37
46
  name = case what
38
47
  when String then what
@@ -41,7 +50,7 @@ class Gnuplot::Plot
41
50
  else what.to_s
42
51
  end
43
52
 
44
- unless name.start_with?("'") or name['(']
53
+ if !name.start_with?("'") and File.exists?(name)
45
54
  name = "'#{name}'"
46
55
  end
47
56
 
@@ -60,6 +69,7 @@ class Gnuplot::Plot
60
69
  show name, options
61
70
  end
62
71
 
72
+
63
73
  def fit(what, using, use_b = true)
64
74
  name = source_name what
65
75
 
@@ -70,7 +80,7 @@ class Gnuplot::Plot
70
80
  using_str = using.join(':')
71
81
  via_str = use_b ? "#{m}, #{b}" : m
72
82
 
73
- please '%s(x) = %s*x + %s' % [f, m, use_b ? b : 0]
83
+ please '%s(x) = %s*x + %s + 1e-9' % [f, m, use_b ? b : 0]
74
84
  please 'fit %s(x) %s using %s via %s' % [f, name, using_str, via_str]
75
85
 
76
86
  "#{f}(x)"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plotrobber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-14 00:00:00.000000000 Z
12
+ date: 2013-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gnuplot