Class: HTTPCommandParser

Inherits:
Object
  • Object
show all
Defined in:
lib/HTTPRequestDataParser/HTTPCommandParser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ HTTPCommandParser

Returns a new instance of HTTPCommandParser.



7
8
9
10
11
12
13
# File 'lib/HTTPRequestDataParser/HTTPCommandParser.rb', line 7

def initialize(args)
  @command = args
  @path_class_mapping  = Hash.new
  @url_str = ""
  @params = ""
  @primary_key = ""
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



5
6
7
# File 'lib/HTTPRequestDataParser/HTTPCommandParser.rb', line 5

def params
  @params
end

#path_class_mappingObject

Returns the value of attribute path_class_mapping.



5
6
7
# File 'lib/HTTPRequestDataParser/HTTPCommandParser.rb', line 5

def path_class_mapping
  @path_class_mapping
end

#primary_keyObject

Returns the value of attribute primary_key.



5
6
7
# File 'lib/HTTPRequestDataParser/HTTPCommandParser.rb', line 5

def primary_key
  @primary_key
end

#url_strObject

Returns the value of attribute url_str.



5
6
7
# File 'lib/HTTPRequestDataParser/HTTPCommandParser.rb', line 5

def url_str
  @url_str
end

Instance Method Details

#parseCommandObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/HTTPRequestDataParser/HTTPCommandParser.rb', line 16

def parseCommand
  url_begin = false 
  path_class_mapping_begin = false;
  primary_key_begin = false

  @command.each do |param|
    if param[0] == "-"
      flag=param[1]
      case flag
      when "u"
           url_begin = true
           path_class_mapping_begin = false
           @params = param.gsub '-u' , '-a'
      when "m"
           path_class_mapping_begin = true
           url_begin = false
      when "k"
           primary_key_begin = true
           path_class_mapping_begin = false
           url_begin = false
      end
    else 
      if url_begin
        @url_str = param.delete "\""
      elsif path_class_mapping_begin
         components = param.split(":")
         if components.length >=2
           path = components[0]
           class_name = components[1] 
           @path_class_mapping[path] = class_name
         else
           puts "command params error : please use -m [path]:[class_name] style"
         end
      elsif primary_key_begin
        @primary_key = param
      end
    end

  end
 if @url_str !=nil && @url_str !=""
   parser = HTTPRequestDataParser.new
   parser.flags = @params
   parser.primary_key = @primary_key
   parser.fetch(@url_str,@path_class_mapping)
   return true
 else
   return false
 end
end