fdc 0.0.5 → 0.1.0.beta.1

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.
Files changed (3) hide show
  1. data/bin/fdc +1 -1
  2. data/lib/fdc/converter.rb +37 -9
  3. metadata +5 -8
data/bin/fdc CHANGED
@@ -98,7 +98,7 @@ ARGV.each do |file|
98
98
  next
99
99
  end
100
100
 
101
- @converter.compile(clamp=options[:clamp], extrude=options[:extrude], gps=options[:gps])
101
+ @converter.compile clamp: options[:clamp], extrude: options[:extrude], gps: options[:gps]
102
102
 
103
103
  if options[:stdout]
104
104
  STDOUT.puts @converter.kml
data/lib/fdc/converter.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'pathname'
2
+ require 'securerandom'
2
3
 
3
4
  require 'fdc/utilities'
4
5
  require 'fdc/exceptions'
@@ -39,21 +40,48 @@ class Fdc::Converter
39
40
  @parser.parse @file
40
41
 
41
42
  end
43
+
44
+ # Parse IGC file data from a supplied string
45
+ #
46
+ # @param [String] data The contents of the IGC file
47
+ # @param [Hash] opts Optional paramers
48
+ # @option opts [String] :encoding The encoding of the igc file data
49
+ # @raise [Fdc::FileFormatError] If the file format is invalid
50
+ def parse_str(data, opts={})
51
+ @parser.parse data
52
+ end
42
53
 
43
- # Compile the KML document from the parsed IGC file.
54
+ # # Compile the KML document from the parsed IGC file.
55
+ # #
56
+ # # @param [Boolean] clamp Whether the track should be clamped to the ground
57
+ # # @param [Boolean] extrude Whether the track should be extruded to the ground
58
+ # # @param [Boolean] gps Whether GPS altitude information should be used
59
+ # # @raise [RuntimeError] If {#parse} was not called before
60
+ # def compile(clamp=false, extrude=false, gps=false)
61
+ #
62
+ # # State assertion
63
+ # raise RuntimeError, "Cannot compile without preceding parse" unless @parser.ready?
64
+ #
65
+ # name = @path.basename(@path.extname)
66
+ # @compiler.compile name, clamp, extrude, gps
44
67
  #
45
- # @param [Boolean] clamp Whether the track should be clamped to the ground
46
- # @param [Boolean] extrude Whether the track should be extruded to the ground
47
- # @param [Boolean] gps Whether GPS altitude information should be used
48
- # @raise [RuntimeError] If {#parse} was not called before
49
- def compile(clamp=false, extrude=false, gps=false)
68
+ # end
50
69
 
70
+ # Compile the KML document from the parsed IGC file
71
+ #
72
+ # @param [Hash] opts Options for the compiled KML
73
+ # @option opts [String] :name The name of the document
74
+ # @option opts [Boolean] :clamp Whether the track should be clamped to the ground
75
+ # @option opts [Boolean] :extrude Whether the track should be extruded to the ground
76
+ # @option opts [Boolean] :gps Whether GPS altitude information should be used
77
+ def compile(opts={})
78
+
51
79
  # State assertion
52
80
  raise RuntimeError, "Cannot compile without preceding parse" unless @parser.ready?
53
81
 
54
- name = @path.basename(@path.extname)
55
- @compiler.compile name, clamp, extrude, gps
56
-
82
+ name = opts[:name] or SecureRandom.hex(8)
83
+ @compiler.compile name, opts[:clamp], opts[:extrude], opts[:gps]
84
+
57
85
  end
58
86
 
59
87
  # Export the compiled KML document
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fdc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
5
- prerelease:
4
+ version: 0.1.0.beta.1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tobias Noiges
@@ -72,16 +72,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  segments:
74
74
  - 0
75
- hash: 3174214199651078789
75
+ hash: -403667447316499823
76
76
  required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  none: false
78
78
  requirements:
79
- - - ! '>='
79
+ - - ! '>'
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
82
- segments:
83
- - 0
84
- hash: 3174214199651078789
81
+ version: 1.3.1
85
82
  requirements: []
86
83
  rubyforge_project:
87
84
  rubygems_version: 1.8.24