lafcadio 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/lib/lafcadio.rb +32 -0
  2. data/lib/lafcadio.rb~ +32 -0
  3. data/lib/lafcadio/TestSuite.rb +16 -0
  4. data/lib/lafcadio/dateTime.rb +2 -0
  5. data/lib/lafcadio/dateTime/Month.rb +93 -0
  6. data/lib/lafcadio/domain.rb +119 -0
  7. data/lib/lafcadio/domain.rb~ +119 -0
  8. data/lib/lafcadio/domain/DomainObject.rb +375 -0
  9. data/lib/lafcadio/domain/DomainObject.rb~ +371 -0
  10. data/lib/lafcadio/domain/MapObject.rb +22 -0
  11. data/lib/lafcadio/domain/ObjectType.rb +80 -0
  12. data/lib/lafcadio/includer.rb +18 -0
  13. data/lib/lafcadio/mock.rb +2 -0
  14. data/lib/lafcadio/mock/MockDbBridge.rb +78 -0
  15. data/lib/lafcadio/mock/MockDbBridge.rb~ +74 -0
  16. data/lib/lafcadio/mock/MockObjectStore.rb +20 -0
  17. data/lib/lafcadio/objectField.rb +14 -0
  18. data/lib/lafcadio/objectField/AutoIncrementField.rb +25 -0
  19. data/lib/lafcadio/objectField/BooleanField.rb +83 -0
  20. data/lib/lafcadio/objectField/DateField.rb +33 -0
  21. data/lib/lafcadio/objectField/DateTimeField.rb +25 -0
  22. data/lib/lafcadio/objectField/DecimalField.rb +41 -0
  23. data/lib/lafcadio/objectField/EmailField.rb +28 -0
  24. data/lib/lafcadio/objectField/EnumField.rb +62 -0
  25. data/lib/lafcadio/objectField/FieldValueError.rb +4 -0
  26. data/lib/lafcadio/objectField/IntegerField.rb +15 -0
  27. data/lib/lafcadio/objectField/LinkField.rb +92 -0
  28. data/lib/lafcadio/objectField/LinkField.rb~ +86 -0
  29. data/lib/lafcadio/objectField/MoneyField.rb +13 -0
  30. data/lib/lafcadio/objectField/MonthField.rb +16 -0
  31. data/lib/lafcadio/objectField/ObjectField.rb +142 -0
  32. data/lib/lafcadio/objectField/PasswordField.rb +29 -0
  33. data/lib/lafcadio/objectField/StateField.rb +13 -0
  34. data/lib/lafcadio/objectField/SubsetLinkField.rb +25 -0
  35. data/lib/lafcadio/objectField/TextField.rb +23 -0
  36. data/lib/lafcadio/objectField/TextListField.rb +21 -0
  37. data/lib/lafcadio/objectField/TimeStampField.rb +15 -0
  38. data/lib/lafcadio/objectStore.rb +100 -0
  39. data/lib/lafcadio/objectStore/Cache.rb +81 -0
  40. data/lib/lafcadio/objectStore/Committer.rb +65 -0
  41. data/lib/lafcadio/objectStore/CouldntMatchObjectTypeError.rb +4 -0
  42. data/lib/lafcadio/objectStore/DbBridge.rb +140 -0
  43. data/lib/lafcadio/objectStore/DbBridge.rb~ +140 -0
  44. data/lib/lafcadio/objectStore/DomainComparable.rb +25 -0
  45. data/lib/lafcadio/objectStore/DomainObjectInitError.rb +9 -0
  46. data/lib/lafcadio/objectStore/DomainObjectNotFoundError.rb +4 -0
  47. data/lib/lafcadio/objectStore/DomainObjectProxy.rb +62 -0
  48. data/lib/lafcadio/objectStore/DomainObjectSqlMaker.rb +74 -0
  49. data/lib/lafcadio/objectStore/ObjectStore.rb +207 -0
  50. data/lib/lafcadio/objectStore/ObjectStore.rb~ +207 -0
  51. data/lib/lafcadio/objectStore/SqlValueConverter.rb +30 -0
  52. data/lib/lafcadio/objectStore/SqlValueConverter.rb~ +30 -0
  53. data/lib/lafcadio/query.rb +203 -0
  54. data/lib/lafcadio/query/Compare.rb +55 -0
  55. data/lib/lafcadio/query/CompoundCondition.rb +39 -0
  56. data/lib/lafcadio/query/Condition.rb +66 -0
  57. data/lib/lafcadio/query/Condition.rb~ +66 -0
  58. data/lib/lafcadio/query/Equals.rb +45 -0
  59. data/lib/lafcadio/query/In.rb +20 -0
  60. data/lib/lafcadio/query/Like.rb +48 -0
  61. data/lib/lafcadio/query/Link.rb +20 -0
  62. data/lib/lafcadio/query/Max.rb +32 -0
  63. data/lib/lafcadio/query/Max.rb~ +25 -0
  64. data/lib/lafcadio/query/Not.rb +21 -0
  65. data/lib/lafcadio/query/Query.rb +92 -0
  66. data/lib/lafcadio/schema.rb +2 -0
  67. data/lib/lafcadio/schema/CreateTableStatement.rb +61 -0
  68. data/lib/lafcadio/schema/CreateTableStatement.rb~ +59 -0
  69. data/lib/lafcadio/test.rb +2 -0
  70. data/lib/lafcadio/test/LafcadioTestCase.rb +17 -0
  71. data/lib/lafcadio/test/testconfig.dat +13 -0
  72. data/lib/lafcadio/util.rb +180 -0
  73. data/lib/lafcadio/util/Context.rb +61 -0
  74. data/lib/lafcadio/util/ContextualService.rb +33 -0
  75. data/lib/lafcadio/util/English.rb +117 -0
  76. data/lib/lafcadio/util/HashOfArrays.rb +48 -0
  77. data/lib/lafcadio/util/LafcadioConfig.rb +25 -0
  78. data/lib/lafcadio/util/QueueHash.rb +67 -0
  79. data/lib/lafcadio/util/UsStates.rb +29 -0
  80. data/lib/lafcadio/xml.rb +2 -0
  81. metadata +135 -0
@@ -0,0 +1,33 @@
1
+ require 'lafcadio/util/Context'
2
+
3
+ module Lafcadio
4
+ # A ContextualService is a service that is managed by the Context.
5
+ # ContextualServices are not instantiated normally. Instead, the instance of
6
+ # such a service may be retrieved by calling the method
7
+ # < class name >.get< class name >
8
+ #
9
+ # For example: ObjectStore.getObjectStore
10
+ class ContextualService
11
+ def ContextualService.method_missing(methodId)
12
+ methodName = methodId.id2name
13
+ if methodName =~ /^get.*/
14
+ Context.instance.send(methodName)
15
+ else
16
+ super methodId
17
+ end
18
+ end
19
+
20
+ # The +passKey+ needs to be the Context instance, or else this method fails.
21
+ # Note that this isn't hard security of any kind; it's simply a gentle
22
+ # reminder to users of a ContextualService that the class should not be
23
+ # instantiated directly.
24
+ def initialize(passKey)
25
+ if passKey.class != Context
26
+ raise ArgumentError,
27
+ "#{ self.class.name.to_s } should only be instantiated by a " +
28
+ "Context",
29
+ caller
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,117 @@
1
+ module Lafcadio
2
+ # A collection of English-language specific utility methods.
3
+ class English
4
+ # Turns a camel-case string ("camelCaseToEnglish") to plain English ("camel
5
+ # case to english"). Each word is decapitalized.
6
+ def English.camelCaseToEnglish(camelCaseStr)
7
+ words = []
8
+ nextCapIndex =(camelCaseStr =~ /[A-Z]/)
9
+ while nextCapIndex != nil
10
+ words << $` if $`.size > 0
11
+ camelCaseStr = $& + $'
12
+ camelCaseStr[0] = camelCaseStr[0..0].downcase
13
+ nextCapIndex =(camelCaseStr =~ /[A-Z]/)
14
+ end
15
+ words << camelCaseStr
16
+ words.join ' '
17
+ end
18
+
19
+ # Given a format for a template sentence, generates the sentence while
20
+ # accounting for details such as pluralization and whether to use "a" or
21
+ # "an".
22
+ # [format] The format string. Format codes are:
23
+ # * %num: Number
24
+ # * %is: Transitive verb. This will be turned into "is" or "are",
25
+ # depending on <tt>number</tt>.
26
+ # * %nam: Name. This will be rendered as either singular or
27
+ # plural, depending on <tt>number</tt>.
28
+ # * %a: Indefinite article. This will be turned into "a" or "an",
29
+ # depending on <tt>name</tt>.
30
+ # [name] The name of the object being described.
31
+ # [number] The number of the objects being describes.
32
+ #
33
+ # Examples:
34
+ # English.sentence("There %is currently %num %nam", "product category",
35
+ # 0) -> "There are currently 0 product categories"
36
+ # English.sentence("There %is currently %num %nam", "product category",
37
+ # 1) -> "There is currently 1 product category"
38
+ # English.sentence("Add %a %nam", "invoice") -> "Add an invoice"
39
+ def English.sentence(format, name, number = 1)
40
+ sentence = format
41
+ sentence.gsub!( /%num/, number.to_s )
42
+ isVerb = number == 1 ? "is" : "are"
43
+ sentence.gsub!( /%is/, isVerb )
44
+ name = English.plural name if number != 1
45
+ sentence.gsub!( /%nam/, name )
46
+ article = startsWithVowelSound(name) ? 'an' : 'a'
47
+ sentence.gsub!( /%a/, article )
48
+ sentence
49
+ end
50
+
51
+ # Does this word start with a vowel sound? "User" and "usury" don't, but
52
+ # "ugly" does.
53
+ def English.startsWithVowelSound(word)
54
+ uSomethingUMatch = word =~ /^u[^aeiuo][aeiou]/
55
+ # 'user' and 'usury' don't start with a vowel sound
56
+ word =~ /^[aeiou]/ && !uSomethingUMatch
57
+ end
58
+
59
+ # Given a singular noun, returns the plural form.
60
+ def English.plural(singular)
61
+ consonantYPattern = Regexp.new("([^aeiou])y$", Regexp::IGNORECASE)
62
+ if singular =~ consonantYPattern
63
+ singular.gsub consonantYPattern, '\1ies'
64
+ elsif singular =~ /[xs]$/
65
+ singular + "es"
66
+ else
67
+ singular + "s"
68
+ end
69
+ end
70
+
71
+ # Returns the proper noun form of a string by capitalizing most of the
72
+ # words.
73
+ #
74
+ # Examples:
75
+ # English.properNoun("bosnia and herzegovina") ->
76
+ # "Bosnia and Herzegovina"
77
+ # English.properNoun("macedonia, the former yugoslav republic of") ->
78
+ # "Macedonia, the Former Yugoslav Republic of"
79
+ # English.properNoun("virgin islands, u.s.") ->
80
+ # "Virgin Islands, U.S."
81
+ def English.properNoun(string)
82
+ properNoun = ""
83
+ while(matchIndex = string =~ /[\. ]/)
84
+ word = string[0..matchIndex-1]
85
+ word = word.capitalize unless [ 'and', 'the', 'of' ].index(word) != nil
86
+ properNoun += word + $&
87
+ string = string[matchIndex+1..string.length]
88
+ end
89
+ word = string
90
+ word = word.capitalize unless [ 'and', 'the', 'of' ].index(word) != nil
91
+ properNoun += word
92
+ properNoun
93
+ end
94
+
95
+ # Given a noun in plural form, returns its singular version.
96
+ def English.singular(plural)
97
+ if plural =~ /(.*)ies/
98
+ $1 + 'y'
99
+ elsif plural =~ /(.*s)es/
100
+ $1
101
+ else
102
+ plural =~ /(.*)s/
103
+ $1
104
+ end
105
+ end
106
+
107
+ # Turns an English language string into camel case.
108
+ def English.englishToCamelCase(englishStr)
109
+ cc = ""
110
+ englishStr.split.each { |word|
111
+ word = word.capitalize unless cc == ''
112
+ cc = cc += word
113
+ }
114
+ cc
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,48 @@
1
+ module Lafcadio
2
+ class HashOfArrays #:nodoc:
3
+ def initialize
4
+ @values = {}
5
+ end
6
+
7
+ def set(key, array)
8
+ raise "HashOfArrays.[]= needs a value of type Array" if array.class != Array
9
+ @values[key] = array
10
+ end
11
+
12
+ def []=(key, array)
13
+ set key, array
14
+ end
15
+
16
+ def getArray(key)
17
+ array = @values[key]
18
+ if array == nil
19
+ array = []
20
+ @values[key] = array
21
+ end
22
+ array
23
+ end
24
+
25
+ def get(key)
26
+ array = @values[key]
27
+ array != nil ? array[0] : nil
28
+ end
29
+
30
+ def [](key)
31
+ getArray key
32
+ end
33
+
34
+ def values
35
+ values = []
36
+ @values.values.each { |val| values << val[0] }
37
+ values
38
+ end
39
+
40
+ def keys
41
+ @values.keys
42
+ end
43
+
44
+ def each
45
+ @values.each { |key, array| yield key, array }
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,25 @@
1
+ module Lafcadio
2
+ # LafcadioConfig is a Hash that takes its data from the config file. You'll
3
+ # have to set the location of that file before using it: Use
4
+ # LafcadioConfig.setFilename.
5
+ #
6
+ # LafcadioConfig expects its data to be colon-delimited, one key-value pair
7
+ # to a line. For example:
8
+ # dbuser:user
9
+ # dbpassword:password
10
+ # dbname:lafcadio_test
11
+ # dbhost:localhost
12
+ class LafcadioConfig < Hash
13
+ def LafcadioConfig.setFilename(filename)
14
+ @@filename = filename
15
+ end
16
+
17
+ def initialize
18
+ file = File.new @@filename
19
+ file.each_line { |line|
20
+ line.chomp =~ /^(.*?):(.*)$/
21
+ self[$1] = $2
22
+ }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,67 @@
1
+ module Lafcadio
2
+ # An ordered hash: Keys are ordered according to when they were inserted.
3
+ class QueueHash
4
+ # Creates a QueueHash with all the elements in <tt>array</tt> as keys, and
5
+ # each value initially set to be the same as the corresponding key.
6
+ def QueueHash.newFromArray(array)
7
+ valueArray = []
8
+ array.each { |elt|
9
+ valueArray << elt
10
+ valueArray << elt
11
+ }
12
+ new(*valueArray)
13
+ end
14
+
15
+ # Takes an even number of arguments, and sets each odd-numbered argument to
16
+ # correspond to the argument immediately afterward. For example:
17
+ # queueHash = QueueHash.new (1, 2, 3, 4)
18
+ # queueHash[1] => 2
19
+ # queueHash[3] => 4
20
+ def initialize(*values)
21
+ @pairs = []
22
+ 0.step(values.size-1, 2) { |i| @pairs << [ values[i], values[i+1] ] }
23
+ end
24
+
25
+ def keys
26
+ keys = []
27
+ @pairs.each { |pair| keys << pair[0] }
28
+ keys
29
+ end
30
+
31
+ def values
32
+ values = []
33
+ @pairs.each { |pair| values << pair[1] }
34
+ values
35
+ end
36
+
37
+ def [](key)
38
+ value = nil
39
+ @pairs.each { |pair| value = pair[1] if pair[0] == key }
40
+ value
41
+ end
42
+
43
+ def size
44
+ @pairs.size
45
+ end
46
+
47
+ def []=(key, value)
48
+ @pairs << [key, value]
49
+ end
50
+
51
+ def each
52
+ @pairs.each { |pair| yield pair[0], pair[1] }
53
+ end
54
+
55
+ def ==( otherObj )
56
+ if otherObj.class == QueueHash && otherObj.size == size
57
+ match = true
58
+ (0...size).each { |i|
59
+ match &&= keys[i] == otherObj.keys[i] && values[i] == otherObj.values[i]
60
+ }
61
+ match
62
+ else
63
+ false
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,29 @@
1
+ module Lafcadio
2
+ class UsStates
3
+ # Returns a QueueHash of states, with two-letter postal codes as keys and
4
+ # state names as values.
5
+ def UsStates.states
6
+ require 'lafcadio/util/QueueHash'
7
+ QueueHash.new( 'AL', 'Alabama', 'AK', 'Alaska', 'AZ', 'Arizona',
8
+ 'AR', 'Arkansas', 'CA', 'California', 'CO', 'Colorado',
9
+ 'CT', 'Connecticut', 'DE', 'Delaware',
10
+ 'DC', 'District of Columbia', 'FL', 'Florida',
11
+ 'GA', 'Georgia', 'HI', 'Hawaii', 'ID', 'Idaho',
12
+ 'IL', 'Illinois', 'IN', 'Indiana', 'IA', 'Iowa',
13
+ 'KS', 'Kansas', 'KY', 'Kentucky', 'LA', 'Louisiana',
14
+ 'ME', 'Maine', 'MD', 'Maryland', 'MA', 'Massachusetts',
15
+ 'MI', 'Michigan', 'MN', 'Minnesota', 'MS', 'Mississippi',
16
+ 'MO', 'Missouri', 'MT', 'Montana', 'NE', 'Nebraska',
17
+ 'NV', 'Nevada', 'NH', 'New Hampshire',
18
+ 'NJ', 'New Jersey', 'NM', 'New Mexico', 'NY', 'New York',
19
+ 'NC', 'North Carolina', 'ND', 'North Dakota',
20
+ 'OH', 'Ohio', 'OK', 'Oklahoma', 'OR', 'Oregon',
21
+ 'PA', 'Pennsylvania', 'PR', 'Puerto Rico',
22
+ 'RI', 'Rhode Island', 'SC', 'South Carolina',
23
+ 'SD', 'South Dakota', 'TN', 'Tennessee', 'TX', 'Texas',
24
+ 'UT', 'Utah', 'VT', 'Vermont', 'VA', 'Virginia',
25
+ 'WA', 'Washington', 'WV', 'West Virginia',
26
+ 'WI', 'Wisconsin', 'WY', 'Wyoming' )
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,2 @@
1
+ require 'lafcadio/includer'
2
+ Includer.include( 'xml' )
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.1
3
+ specification_version: 1
4
+ name: lafcadio
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.4.3
7
+ date: 2004-12-01
8
+ summary: Lafcadio is an object-relational mapping layer
9
+ require_paths:
10
+ - lib
11
+ author: Francis Hwang
12
+ email: sera@fhwang.net
13
+ homepage: http://lafcadio.rubyforge.org/
14
+ rubyforge_project:
15
+ description:
16
+ autorequire: lafcadio
17
+ default_executable:
18
+ bindir: bin
19
+ has_rdoc: false
20
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
21
+ requirements:
22
+ -
23
+ - ">"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.0
26
+ version:
27
+ platform: ruby
28
+ files:
29
+ - lib/lafcadio
30
+ - lib/lafcadio.rb
31
+ - lib/lafcadio.rb~
32
+ - lib/lafcadio/dateTime
33
+ - lib/lafcadio/dateTime.rb
34
+ - lib/lafcadio/domain
35
+ - lib/lafcadio/domain.rb
36
+ - lib/lafcadio/domain.rb~
37
+ - lib/lafcadio/includer.rb
38
+ - lib/lafcadio/mock
39
+ - lib/lafcadio/mock.rb
40
+ - lib/lafcadio/objectField
41
+ - lib/lafcadio/objectField.rb
42
+ - lib/lafcadio/objectStore
43
+ - lib/lafcadio/objectStore.rb
44
+ - lib/lafcadio/query
45
+ - lib/lafcadio/query.rb
46
+ - lib/lafcadio/schema
47
+ - lib/lafcadio/schema.rb
48
+ - lib/lafcadio/test
49
+ - lib/lafcadio/test.rb
50
+ - lib/lafcadio/TestSuite.rb
51
+ - lib/lafcadio/util
52
+ - lib/lafcadio/util.rb
53
+ - lib/lafcadio/xml.rb
54
+ - lib/lafcadio/dateTime/Month.rb
55
+ - lib/lafcadio/domain/DomainObject.rb
56
+ - lib/lafcadio/domain/DomainObject.rb~
57
+ - lib/lafcadio/domain/MapObject.rb
58
+ - lib/lafcadio/domain/ObjectType.rb
59
+ - lib/lafcadio/mock/MockDbBridge.rb
60
+ - lib/lafcadio/mock/MockDbBridge.rb~
61
+ - lib/lafcadio/mock/MockObjectStore.rb
62
+ - lib/lafcadio/objectField/AutoIncrementField.rb
63
+ - lib/lafcadio/objectField/BooleanField.rb
64
+ - lib/lafcadio/objectField/DateField.rb
65
+ - lib/lafcadio/objectField/DateTimeField.rb
66
+ - lib/lafcadio/objectField/DecimalField.rb
67
+ - lib/lafcadio/objectField/EmailField.rb
68
+ - lib/lafcadio/objectField/EnumField.rb
69
+ - lib/lafcadio/objectField/FieldValueError.rb
70
+ - lib/lafcadio/objectField/IntegerField.rb
71
+ - lib/lafcadio/objectField/LinkField.rb
72
+ - lib/lafcadio/objectField/LinkField.rb~
73
+ - lib/lafcadio/objectField/MoneyField.rb
74
+ - lib/lafcadio/objectField/MonthField.rb
75
+ - lib/lafcadio/objectField/ObjectField.rb
76
+ - lib/lafcadio/objectField/PasswordField.rb
77
+ - lib/lafcadio/objectField/StateField.rb
78
+ - lib/lafcadio/objectField/SubsetLinkField.rb
79
+ - lib/lafcadio/objectField/TextField.rb
80
+ - lib/lafcadio/objectField/TextListField.rb
81
+ - lib/lafcadio/objectField/TimeStampField.rb
82
+ - lib/lafcadio/objectStore/Cache.rb
83
+ - lib/lafcadio/objectStore/Committer.rb
84
+ - lib/lafcadio/objectStore/CouldntMatchObjectTypeError.rb
85
+ - lib/lafcadio/objectStore/DbBridge.rb
86
+ - lib/lafcadio/objectStore/DbBridge.rb~
87
+ - lib/lafcadio/objectStore/DomainComparable.rb
88
+ - lib/lafcadio/objectStore/DomainObjectInitError.rb
89
+ - lib/lafcadio/objectStore/DomainObjectNotFoundError.rb
90
+ - lib/lafcadio/objectStore/DomainObjectProxy.rb
91
+ - lib/lafcadio/objectStore/DomainObjectSqlMaker.rb
92
+ - lib/lafcadio/objectStore/ObjectStore.rb
93
+ - lib/lafcadio/objectStore/ObjectStore.rb~
94
+ - lib/lafcadio/objectStore/SqlValueConverter.rb
95
+ - lib/lafcadio/objectStore/SqlValueConverter.rb~
96
+ - lib/lafcadio/query/Compare.rb
97
+ - lib/lafcadio/query/CompoundCondition.rb
98
+ - lib/lafcadio/query/Condition.rb
99
+ - lib/lafcadio/query/Condition.rb~
100
+ - lib/lafcadio/query/Equals.rb
101
+ - lib/lafcadio/query/In.rb
102
+ - lib/lafcadio/query/Like.rb
103
+ - lib/lafcadio/query/Link.rb
104
+ - lib/lafcadio/query/Max.rb
105
+ - lib/lafcadio/query/Max.rb~
106
+ - lib/lafcadio/query/Not.rb
107
+ - lib/lafcadio/query/Query.rb
108
+ - lib/lafcadio/schema/CreateTableStatement.rb
109
+ - lib/lafcadio/schema/CreateTableStatement.rb~
110
+ - lib/lafcadio/test/LafcadioTestCase.rb
111
+ - lib/lafcadio/test/testconfig.dat
112
+ - lib/lafcadio/util/Context.rb
113
+ - lib/lafcadio/util/ContextualService.rb
114
+ - lib/lafcadio/util/English.rb
115
+ - lib/lafcadio/util/HashOfArrays.rb
116
+ - lib/lafcadio/util/LafcadioConfig.rb
117
+ - lib/lafcadio/util/QueueHash.rb
118
+ - lib/lafcadio/util/UsStates.rb
119
+ test_files: []
120
+ rdoc_options: []
121
+ extra_rdoc_files: []
122
+ executables: []
123
+ extensions: []
124
+ requirements: []
125
+ dependencies:
126
+ - !ruby/object:Gem::Dependency
127
+ name: log4r
128
+ version_requirement:
129
+ version_requirements: !ruby/object:Gem::Version::Requirement
130
+ requirements:
131
+ -
132
+ - ">"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.0.0
135
+ version: