streetaddressch 0.0.1 → 0.0.2

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.
@@ -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