streetaddressch 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,12 +6,14 @@ Rakefile
6
6
  config/hoe.rb
7
7
  config/requirements.rb
8
8
  lib/streetaddressch.rb
9
+ lib/streetaddressch/chstatemachine.rb
9
10
  lib/streetaddressch/version.rb
10
11
  log/debug.log
11
12
  script/destroy
12
13
  script/generate
13
14
  script/txt2html
14
15
  setup.rb
16
+ spec/simple_spec.rb
15
17
  spec/spec.opts
16
18
  spec/spec_helper.rb
17
19
  spec/streetaddressch_spec.rb
data/README.txt CHANGED
@@ -4,11 +4,11 @@
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
- FIX (describe your package)
7
+ Street Address Analyzer
8
8
 
9
9
  == FEATURES/PROBLEMS:
10
10
 
11
- * list of features or problems
11
+ * Street Address Analyzer
12
12
 
13
13
  == SYNOPSIS:
14
14
 
@@ -16,11 +16,12 @@ FIX (describe your package)
16
16
 
17
17
  == REQUIREMENTS:
18
18
 
19
- * list of requirements
19
+ * statemachine
20
+ * rmmseg
20
21
 
21
22
  == INSTALL:
22
23
 
23
- * sudo gem install, anything else
24
+ * sudo gem installstreetaddressch
24
25
 
25
26
  == LICENSE:
26
27
 
@@ -2,7 +2,7 @@ require 'streetaddressch/version'
2
2
 
3
3
  AUTHOR = 'David Ruan' # can also be an array of Authors
4
4
  EMAIL = "ruanwz@gmail.com"
5
- DESCRIPTION = "description of gem"
5
+ DESCRIPTION = "Street Address Analyzer"
6
6
  GEM_NAME = 'streetaddressch' # what ppl will type to install your gem
7
7
  RUBYFORGE_PROJECT = 'streetaddressch' # The unix name for your project
8
8
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
@@ -1,5 +1,4 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
2
  require 'streetaddressch/chstatemachine'
3
3
  module Streetaddressch
4
-
5
4
  end
@@ -0,0 +1,60 @@
1
+ $KCODE = 'u'
2
+ require 'rubygems'
3
+ require 'jcode'
4
+ require 'strscan'
5
+ require 'statemachine'
6
+ module StreetAddressCh
7
+ class ChStatemachineContext
8
+ attr_accessor :statemachine
9
+ def shift_word(tmp)
10
+ @statemachine.result_list << tmp.to_s
11
+ end
12
+
13
+ end
14
+
15
+ class ChStateMachine
16
+ attr_reader :text, :length
17
+ attr_accessor :result_list
18
+ def initialize(text)
19
+ @text = text
20
+ @length = text.jlength
21
+ @result_list = Array.new
22
+ @sm = Statemachine.build do
23
+ trans :start_st, :province_ev, :province_st, :shift_word
24
+ trans :start_st, :city_ev, :city_st, :shift_word
25
+ trans :province_st, :city_ev, :city_st, :shift_word
26
+ trans :province_st, :district_ev, :district_st, :shift_word
27
+ trans :city_st, :street_ev, :street_st, :shift_word
28
+ trans :city_st, :district_ev, :district_st, :shift_word
29
+ trans :district_st, :district_ev, :district_st, :shift_word
30
+ trans :district_st, :street_ev, :street_st, :shift_word
31
+ context ChStatemachineContext.new
32
+ end
33
+ @sm.context.statemachine = self
34
+ end
35
+ def is_english?
36
+ return @text.length == @text.jlength
37
+ end
38
+ def tokenize
39
+ tmp =Array.new
40
+ @text.each_char do |char|
41
+ tmp << char
42
+ case char
43
+ when '省'
44
+ @sm.province_ev tmp
45
+ tmp=[]
46
+ when '市'
47
+ @sm.city_ev tmp
48
+ tmp=[]
49
+ when '区'
50
+ @sm.district_ev tmp
51
+ tmp=[]
52
+ when '路'
53
+ @sm.street_ev tmp
54
+ tmp=[]
55
+ end
56
+ end
57
+ @result_list
58
+ end
59
+ end
60
+ end
@@ -2,7 +2,7 @@ module Streetaddressch #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,22 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ describe 'simple test' do
3
+ before do
4
+ simple_address = '广东省广州市天河区五山路49号'
5
+ @sm = StreetAddressCh::ChStateMachine.new simple_address
6
+ end
7
+
8
+ it 'should return length of the address' do
9
+ @sm.length.should == 15
10
+
11
+ end
12
+
13
+ it 'should return an array for the address string' do
14
+ @sm.tokenize.should == ['广东省','广州市','天河区','五山路']
15
+ end
16
+
17
+ it 'should be able to tell it is not english address' do
18
+ @sm.is_english?.should == false
19
+ end
20
+ end
21
+
22
+
@@ -1 +1,3 @@
1
- --colour
1
+ --colour
2
+ --diff
3
+ --format s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: streetaddressch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Ruan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-17 00:00:00 -05:00
12
+ date: 2008-03-18 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,7 +30,7 @@ dependencies:
30
30
  - !ruby/object:Gem::Version
31
31
  version: 0.1.5
32
32
  version:
33
- description: description of gem
33
+ description: Street Address Analyzer
34
34
  email:
35
35
  - ruanwz@gmail.com
36
36
  executables: []
@@ -52,12 +52,14 @@ files:
52
52
  - config/hoe.rb
53
53
  - config/requirements.rb
54
54
  - lib/streetaddressch.rb
55
+ - lib/streetaddressch/chstatemachine.rb
55
56
  - lib/streetaddressch/version.rb
56
57
  - log/debug.log
57
58
  - script/destroy
58
59
  - script/generate
59
60
  - script/txt2html
60
61
  - setup.rb
62
+ - spec/simple_spec.rb
61
63
  - spec/spec.opts
62
64
  - spec/spec_helper.rb
63
65
  - spec/streetaddressch_spec.rb
@@ -98,7 +100,7 @@ rubyforge_project: streetaddressch
98
100
  rubygems_version: 1.0.1
99
101
  signing_key:
100
102
  specification_version: 2
101
- summary: description of gem
103
+ summary: Street Address Analyzer
102
104
  test_files:
103
105
  - test/test_streetaddressch.rb
104
106
  - test/test_helper.rb