seis_ruby 0.2.2 → 0.2.3

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.
data/README.rdoc CHANGED
@@ -2,13 +2,13 @@
2
2
  == What is this?
3
3
  Ruby library and command line tools for earthquake science.
4
4
 
5
- == Command line tool
5
+ == Command Line Tool
6
6
  seis_ruby help
7
7
 
8
8
  == Library
9
9
  Please check {SeisRuby::Command} which provides handy methods via {::SeisRuby}.
10
10
 
11
- == Quick start
11
+ == Quick Start
12
12
  require 'seis_ruby'
13
13
  sac = SeisRuby.load_file('test_read.SAC') # Read a SAC file
14
14
  sac.head[:a] += 3.0 # Shift Tp 3.0 seconds
@@ -2,7 +2,6 @@ require 'thor'
2
2
 
3
3
  class ::SeisRuby::Application < Thor
4
4
  require 'yaml'
5
- require 'pry'
6
5
  require 'fileutils'
7
6
 
8
7
  COMMAND = 'seis_ruby'
@@ -10,6 +9,8 @@ class ::SeisRuby::Application < Thor
10
9
 
11
10
  desc "repl", "Start interactive mode."
12
11
  def repl
12
+ repl_hook()
13
+
13
14
  Pry.start(
14
15
  ::TOPLEVEL_BINDING,
15
16
  prompt: [
@@ -26,7 +27,7 @@ class ::SeisRuby::Application < Thor
26
27
  def generate_completion
27
28
  FileUtils.mkdir_p(File.dirname(COMPLETION_FILE))
28
29
  FileUtils.mv(COMPLETION_FILE, "#{COMPLETION_FILE}.#{Time.now.ymdhms}.bak") if File.exist?(COMPLETION_FILE)
29
- File.write(COMPLETION_FILE, completion_function_str)
30
+ File.write(COMPLETION_FILE, completion_function_str())
30
31
 
31
32
  puts <<-EOS
32
33
  Please add following code to your ~/.bashrc if necessary.
@@ -45,6 +46,10 @@ fi
45
46
 
46
47
  private
47
48
 
49
+ def repl_hook
50
+ require 'pry'
51
+ end
52
+
48
53
  def completion_function_str
49
54
  <<-EOS
50
55
  _#{COMMAND}()
@@ -1,34 +1,6 @@
1
1
  class ::SeisRuby::Data::Cmtsolution < ::SeisRuby::Data
2
2
  require 'ostruct'
3
3
 
4
- def self.load_file(file)
5
- load(File.read_uri(file), file: file)
6
- end
7
-
8
- def self.load(raw_data, meta_data)
9
- new(raw_data, meta_data)
10
- end
11
-
12
- def initialize(raw_data, meta_data)
13
- @raw_data = raw_data
14
- @meta_data = meta_data
15
- parse!
16
- end
17
- attr_accessor :hypocenter
18
- attr_accessor :centroid
19
-
20
- private
21
-
22
- def parse!
23
- lines\
24
- = @raw_data\
25
- .split("\n")\
26
- .map(&:strip)\
27
- .delete_if(&:empty?)
28
- @hypocenter = Hypocenter.new(lines[0])
29
- @centroid = Centroid.new(lines[1..-1])
30
- end
31
-
32
4
  class Hypocenter < OpenStruct
33
5
  FIELDS = [
34
6
  # name, column, converter
@@ -94,4 +66,32 @@ class ::SeisRuby::Data::Cmtsolution < ::SeisRuby::Data
94
66
  end
95
67
  attr_accessor :table
96
68
  end
69
+
70
+ def self.load_file(file)
71
+ load(File.read_uri(file), file: file)
72
+ end
73
+
74
+ def self.load(raw_data, meta_data)
75
+ new(raw_data, meta_data)
76
+ end
77
+
78
+ def initialize(raw_data, meta_data)
79
+ @raw_data = raw_data
80
+ @meta_data = meta_data
81
+ parse!
82
+ end
83
+ attr_accessor :hypocenter
84
+ attr_accessor :centroid
85
+
86
+ private
87
+
88
+ def parse!
89
+ lines\
90
+ = @raw_data\
91
+ .split("\n")\
92
+ .map(&:strip)\
93
+ .delete_if(&:empty?)
94
+ @hypocenter = Hypocenter.new(lines[0])
95
+ @centroid = Centroid.new(lines[1..-1])
96
+ end
97
97
  end
@@ -146,7 +146,7 @@ module ::SeisRuby::Data::Sac::Head
146
146
  begin
147
147
  [field.name, field.converter_from_head.call(val)]
148
148
  rescue ArgumentError => e
149
- $stderr.puts "#{field.name.inspect}"
149
+ $stderr.puts "Field name: #{field.name.inspect}"
150
150
  raise e
151
151
  end
152
152
  }
@@ -0,0 +1,7 @@
1
+ require 'mechanize'
2
+
3
+ class ::SeisRuby::Database::GlobalCmtCatalogSearch::CmtsolutionFormat::CustomHtmlParser < ::Mechanize::Page
4
+ def initialize(uri = nil, response = nil, body = nil, code = nil, mech = nil)
5
+ super(uri, response, body.gsub(/<=/, '&lt;='), code, mech)
6
+ end
7
+ end
@@ -1,10 +1,10 @@
1
1
  module ::SeisRuby::Database::GlobalCmtCatalogSearch::CmtsolutionFormat
2
- require 'mechanize'
3
-
4
2
  class << self
5
3
  def load_file(uri)
4
+ load_file_hook()
5
+
6
6
  agent = Mechanize.new{|a|
7
- a.pluggable_parser.html = CustomHtmlParser
7
+ a.pluggable_parser.html = ::SeisRuby::Database::GlobalCmtCatalogSearch::CmtsolutionFormat::CustomHtmlParser
8
8
  }
9
9
  agent.get(uri)
10
10
 
@@ -20,11 +20,12 @@ module ::SeisRuby::Database::GlobalCmtCatalogSearch::CmtsolutionFormat
20
20
  end
21
21
  events.concat(load_file(next_link.uri))
22
22
  end
23
- end
24
23
 
25
- class CustomHtmlParser < ::Mechanize::Page
26
- def initialize(uri = nil, response = nil, body = nil, code = nil, mech = nil)
27
- super(uri, response, body.gsub(/<=/, '&lt;='), code, mech)
24
+ private
25
+
26
+ def load_file_hook
27
+ require 'mechanize'
28
+ require 'seis_ruby/database/global_cmt_catalog_search/cmtsolution_format/custom_html_parser'
28
29
  end
29
30
  end
30
31
  end
@@ -16,12 +16,16 @@ module ::SeisRuby::Database::GlobalCmtCatalogSearch
16
16
  # @param [String] uri URI of a first page of Global CMT Catalog Search result.
17
17
  # @return [Array<Hash>] {::SeisRuby::Data::Cmtsolution#parse}
18
18
  def load_file(uri)
19
- raise ArgumentError, "Not a URI of #{self}: #{uri}" unless uri =~ URI_FOR_SELF_REG
20
- module_from_list_number(Regexp.last_match(1).to_i).load_file(uri)
19
+ raise ArgumentError, "Not a URI of #{self}: #{uri}" unless uri_for_self?(uri)
20
+ module_from_uri(uri).load_file(uri)
21
21
  end
22
22
 
23
23
  private
24
24
 
25
+ def module_from_uri(uri)
26
+ module_from_list_number(list_number_from_uri(uri))
27
+ end
28
+
25
29
  def module_from_list_number(list_number)
26
30
  case list_number
27
31
  when 0
@@ -40,5 +44,10 @@ module ::SeisRuby::Database::GlobalCmtCatalogSearch
40
44
  raise ArgumentError, "Unsupported list number: #{list_number}"
41
45
  end
42
46
  end
47
+
48
+ def list_number_from_uri(uri)
49
+ uri =~ URI_FOR_SELF_REG
50
+ Regexp.last_match(1).to_i
51
+ end
43
52
  end
44
53
  end
@@ -1,3 +1,3 @@
1
1
  module SeisRuby
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seis_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-13 00:00:00.000000000 Z
12
+ date: 2012-12-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: watchr
16
- requirement: &2169113040 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0.7'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2169113040
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.7'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: thor
27
- requirement: &2169112060 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0.15'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *2169112060
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.15'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: mechanize
38
- requirement: &2169111540 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '2.5'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *2169111540
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.5'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: pry
49
- requirement: &2169110540 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 0.9.10
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *2169110540
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.10
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: ruby_patch
60
- requirement: &2169109360 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,7 +85,12 @@ dependencies:
65
85
  version: 1.1.0
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *2169109360
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.1.0
69
94
  description: Ruby library for earthquake science.
70
95
  email:
71
96
  executables:
@@ -93,6 +118,7 @@ files:
93
118
  - lib/seis_ruby/database.rb
94
119
  - lib/seis_ruby/database/global_cmt_catalog_search.rb
95
120
  - lib/seis_ruby/database/global_cmt_catalog_search/cmtsolution_format.rb
121
+ - lib/seis_ruby/database/global_cmt_catalog_search/cmtsolution_format/custom_html_parser.rb
96
122
  - lib/seis_ruby/version.rb
97
123
  - seis_ruby.gemspec
98
124
  - test.watchr
@@ -140,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
166
  version: '0'
141
167
  requirements: []
142
168
  rubyforge_project:
143
- rubygems_version: 1.8.15
169
+ rubygems_version: 1.8.23
144
170
  signing_key:
145
171
  specification_version: 3
146
172
  summary: Ruby library for earthquake science.