glue 0.41.0 → 1.0.0

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.
Files changed (55) hide show
  1. data/History.txt +6 -0
  2. data/Manifest.txt +6 -0
  3. data/README.txt +130 -0
  4. data/Rakefile +16 -0
  5. data/lib/glue.rb +49 -72
  6. data/test/test_glue.rb +218 -0
  7. metadata +84 -100
  8. data/doc/AUTHORS +0 -13
  9. data/doc/CHANGELOG.1 +0 -354
  10. data/doc/LICENSE +0 -32
  11. data/doc/RELEASES +0 -207
  12. data/lib/glue/attribute.rb +0 -113
  13. data/lib/glue/attributeutils.rb +0 -117
  14. data/lib/glue/autoreload.rb +0 -60
  15. data/lib/glue/builder.rb +0 -57
  16. data/lib/glue/builder/xml.rb +0 -103
  17. data/lib/glue/cache.rb +0 -22
  18. data/lib/glue/cache/drb.rb +0 -51
  19. data/lib/glue/cache/file.rb +0 -78
  20. data/lib/glue/cache/memcached.rb +0 -68
  21. data/lib/glue/cache/memory.rb +0 -79
  22. data/lib/glue/cache/og.rb +0 -61
  23. data/lib/glue/configuration.rb +0 -305
  24. data/lib/glue/fixture.rb +0 -154
  25. data/lib/glue/html.rb +0 -12
  26. data/lib/glue/localization.rb +0 -129
  27. data/lib/glue/logger.rb +0 -208
  28. data/lib/glue/mail.rb +0 -160
  29. data/lib/glue/mailer.rb +0 -55
  30. data/lib/glue/mailer/incoming.rb +0 -41
  31. data/lib/glue/mailer/outgoing.rb +0 -119
  32. data/lib/glue/settings.rb +0 -3
  33. data/lib/glue/uri.rb +0 -190
  34. data/lib/glue/validation.rb +0 -447
  35. data/lib/html/document.rb +0 -63
  36. data/lib/html/node.rb +0 -480
  37. data/lib/html/tokenizer.rb +0 -103
  38. data/lib/html/version.rb +0 -11
  39. data/test/fixture/article.csv +0 -3
  40. data/test/fixture/article.yml +0 -13
  41. data/test/fixture/user.yml +0 -12
  42. data/test/glue/builder/tc_xml.rb +0 -57
  43. data/test/glue/tc_aspects.rb +0 -99
  44. data/test/glue/tc_attribute.rb +0 -112
  45. data/test/glue/tc_attribute_mixins.rb +0 -86
  46. data/test/glue/tc_builder.rb +0 -30
  47. data/test/glue/tc_configuration.rb +0 -135
  48. data/test/glue/tc_fixture.rb +0 -98
  49. data/test/glue/tc_localization.rb +0 -49
  50. data/test/glue/tc_logger.rb +0 -43
  51. data/test/glue/tc_mail.rb +0 -99
  52. data/test/glue/tc_stores.rb +0 -16
  53. data/test/glue/tc_uri.rb +0 -97
  54. data/test/glue/tc_validation.rb +0 -217
  55. data/test/public/dummy_mailer/registration.xhtml +0 -5
@@ -1,30 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
-
3
- require 'test/unit'
4
- require 'glue/builder'
5
-
6
- class TC_Builder < Test::Unit::TestCase # :nodoc: all
7
- include Glue
8
-
9
- module TestMixin
10
- def hello
11
- 'hello'
12
- end
13
- def world
14
- 'world'
15
- end
16
- end
17
-
18
- class TestBuilder < Builder
19
- include_builder TestMixin
20
- end
21
-
22
- def test_all
23
- t = TestBuilder.new(doc = '')
24
- t.hello
25
- t.world
26
- assert_equal 'helloworld', doc
27
- t.hello
28
- assert_equal 'helloworldhello', doc
29
- end
30
- end
@@ -1,135 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
-
3
- require 'test/unit'
4
- require 'glue/configuration'
5
-
6
- # Hack: To make compatible with rake test.
7
-
8
- class Dummy
9
- setting :root_dir, :default => '/home/gmosx', :doc => 'The root directory for the app'
10
- setting :conn_count, :default => 5, :type => Fixnum
11
- end
12
-
13
- class Another
14
- setting :max_age, :default => 4, :doc => 'Maximum allowed age'
15
- end
16
-
17
- class Glue::Configuration
18
- def self.clear_all_settings
19
- @@owners = Hash.new
20
- end
21
- end
22
-
23
- class TC_Configuration < Test::Unit::TestCase # :nodoc: all
24
- include Glue
25
-
26
- class Internal
27
- setting :radius, :default => 4
28
- end
29
-
30
- def setup
31
- # gmosx: A hack to make compatible with rake. All code in this
32
- # method is not needed if you only run this test (or in your
33
- # real aplications of course).
34
-
35
- # Running the next line breaks later tests when running the test suite.
36
-
37
- # Configuration.clear_all_settings
38
-
39
- Dummy.class_eval do
40
- setting :root_dir, :default => '/home/gmosx', :doc => 'The root directory for the app'
41
- setting :conn_count, :default => 5, :type => Fixnum
42
- end
43
-
44
- Another.class_eval do
45
- setting :max_age, :default => 4, :doc => 'Maximum allowed age'
46
- end
47
-
48
- Internal.class_eval do
49
- setting :radius, :default => 4
50
- end
51
- end
52
-
53
- def test_all
54
- # The following asserts are _not_ true when running the test suite.
55
- # assert_equal 4, Configuration.settings.size
56
- # assert_equal 4, Configuration.all.size
57
-
58
- assert_equal 2, Configuration.settings(Dummy).size
59
- assert_equal 1, Configuration.settings(Another).size
60
-
61
- assert_equal Fixnum, Configuration.settings(Dummy)[:conn_count].type
62
- assert_equal String, Configuration[Dummy][:root_dir].type
63
-
64
- assert_equal '/home/gmosx', Dummy.root_dir
65
- assert_equal 4, Another.max_age
66
-
67
- Dummy.root_dir = '/changed/dir'
68
- assert_equal '/changed/dir', Dummy.root_dir
69
- assert_equal '/changed/dir', Configuration[Dummy][:root_dir].value
70
-
71
- Another.max_age = 99
72
- assert_equal 99, Configuration[Another][:max_age].value
73
-
74
- # test reverse setting.
75
-
76
- Configuration[Another][:max_age].value = 69
77
- assert_equal 69, Configuration[Another][:max_age].value
78
- assert_equal 69, Another.max_age
79
-
80
- # setup
81
-
82
- Configuration.setup(
83
- Dummy => {
84
- :root_dir => '/gmosx/2',
85
- :conn_count => 12
86
- },
87
- Another => {
88
- :max_age => 2
89
- },
90
- TC_Configuration::Internal => {
91
- :radius => 99
92
- }
93
- )
94
-
95
- assert_equal '/gmosx/2', Dummy.root_dir
96
- assert_equal '/gmosx/2', Configuration[Dummy][:root_dir].value
97
- assert_equal 2, Another.max_age
98
-
99
- Configuration.parse_yaml <<-end_val
100
- Another:
101
- max_age: 5
102
- TC_Configuration.Internal:
103
- radius: 99
104
- Dummy:
105
- root_dir: /gmosx/99
106
- conn_count: 33
107
- end_val
108
-
109
- assert_equal '/gmosx/99', Dummy.root_dir
110
- assert_equal '/gmosx/99', Configuration[Dummy][:root_dir].value
111
- assert_equal 5, Another.max_age
112
-
113
- # cooler ;-)
114
-
115
- assert_equal String, Configuration.Dummy[:root_dir].type
116
- assert_equal String, Configuration.Dummy.root_dir.type
117
-
118
- # alias
119
-
120
- assert_equal String, Settings.Dummy.root_dir.type
121
- assert_equal 5, Settings.Another.max_age.value
122
-
123
- # Handle namespace
124
-
125
- assert_equal 99, Internal.radius
126
- assert_equal 99, TC_Configuration::Internal.radius
127
-
128
- # Intuitive setting
129
-
130
- Configuration.Dummy.root_dir = 'wow'
131
- assert_equal 'wow', Dummy.root_dir
132
- assert_equal 'wow', Configuration.Dummy.root_dir.value
133
- end
134
-
135
- end
@@ -1,98 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), 'lib')
2
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'nitro', 'lib')
3
-
4
- require 'test/unit'
5
- require 'glue/fixture'
6
-
7
- RootDir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'fixture'))
8
-
9
- class TestFixtureExplicitRootDir < Test::Unit::TestCase # :nodoc: all
10
- include Glue
11
-
12
- class User
13
- attr_accessor :name
14
- attr_accessor :age
15
- end
16
-
17
- class Article
18
- attr_accessor :title
19
- attr_accessor :body
20
- end
21
-
22
- def test_all
23
- users = Fixture.new(User, :root_dir => RootDir)
24
-
25
- assert_equal 3, users.size
26
- george = users['george']
27
- assert_equal 30, george.age
28
- assert_equal 'Renos', users['renos'].name
29
-
30
- articles = Fixture.new(Article, :root_dir => RootDir)
31
-
32
- assert_equal 10, articles.size
33
- assert_equal 'This is cool', articles['article_1'].title
34
- assert_equal 'Another', articles['article_2'].title
35
- assert_equal 'I love this', articles['Test'].title
36
-
37
- assert_equal 'title 3', articles['Auto3'].title
38
- end
39
-
40
- def test_global
41
- "This is not supported with explicit root directory setting"
42
- =begin
43
- assert_raises(RuntimeError, "This test will fail when running via rake") do
44
- Fixtures.load User, Article
45
- end # Fixtures.load _only_ uses Fixtures.root_dir setting.
46
- =end
47
- end
48
-
49
- end
50
-
51
- class TestFixtureRootDirSetting < Test::Unit::TestCase # :nodoc: all
52
- include Glue
53
-
54
- class User
55
- attr_accessor :name
56
- attr_accessor :age
57
- end
58
-
59
- class Article
60
- attr_accessor :title
61
- attr_accessor :body
62
- end
63
-
64
- def setup
65
- @old_rootdir = Fixtures.root_dir
66
- Fixtures.root_dir = RootDir
67
- end
68
-
69
- def teardown
70
- Fixtures.root_dir = @old_rootdir
71
- @old_rootdir = nil
72
- end
73
-
74
- def test_all
75
- users = Fixture.new(User)
76
-
77
- assert_equal 3, users.size
78
- george = users['george']
79
- assert_equal 30, george.age
80
- assert_equal 'Renos', users['renos'].name
81
-
82
- articles = Fixture.new(Article)
83
-
84
- assert_equal 10, articles.size
85
- assert_equal 'This is cool', articles['article_1'].title
86
- assert_equal 'Another', articles['article_2'].title
87
- assert_equal 'I love this', articles['Test'].title
88
-
89
- assert_equal 'title 3', articles['Auto3'].title
90
- end
91
-
92
- def test_global
93
- Fixtures.load User, Article
94
- assert_equal 3, Fixtures.user.size
95
- assert_equal 'This is cool', Fixtures.article['article_1'].title
96
- end
97
-
98
- end
@@ -1,49 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
-
3
- require 'test/unit'
4
- require 'ostruct'
5
-
6
- require 'glue/localization'
7
-
8
- class TestCaseLocalization < Test::Unit::TestCase # :nodoc: all
9
- include Glue
10
-
11
- def setup
12
- locale_en = {
13
- 'See you' => 'See you',
14
- :long_paragraph => 'The best new books, up to 30% reduced price',
15
- :price => 'Price: %d %s',
16
- :proc_price => proc { |value, cur| "Price: #{value} #{cur}" }
17
- }
18
-
19
- locale_de = {
20
- 'See you' => 'Auf wieder sehen',
21
- :long_paragraph => 'Die besten neuer buecher, bis zu 30% reduziert',
22
- :price => 'Preis: %d %s',
23
- :proc_price => proc { |value, cur| "Preis: #{value} #{cur}" }
24
- }
25
-
26
- Localization.add(
27
- :en => locale_en,
28
- :de => locale_de
29
- )
30
- end
31
-
32
- def test_all
33
- lc = Localization.get
34
- assert_equal 'See you', lc['See you']
35
- assert_equal 'The best new books, up to 30% reduced price', lc[:long_paragraph]
36
-
37
- lc = Localization.get(:en)
38
- assert_equal 'See you', lc['See you']
39
- assert_equal 'The best new books, up to 30% reduced price', lc[:long_paragraph]
40
- assert_equal 'Price: 100 euro', lc[:price, 100, 'euro']
41
- assert_equal 'Price: 100 euro', lc[:proc_price, 100, 'euro']
42
-
43
- lc = Localization.get(:de)
44
- assert_equal 'Auf wieder sehen', lc['See you']
45
- assert_equal 'Die besten neuer buecher, bis zu 30% reduziert', lc[:long_paragraph]
46
- assert_equal 'Preis: 100 euro', lc.translate(:price, 100, 'euro')
47
- assert_equal 'Preis: 100 euro', lc[:proc_price, 100, 'euro']
48
- end
49
- end
@@ -1,43 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'vendor')
3
-
4
- require 'stringio'
5
-
6
- require 'test/unit'
7
- require 'glue/logger'
8
-
9
- class TC_Logger < Test::Unit::TestCase # :nodoc: all
10
-
11
- def setup
12
- @io = StringIO.new('')
13
- Logger.set(Logger.new(@io))
14
- end
15
-
16
- def test_logger
17
- Logger.info 'hello'
18
- assert_equal(" INFO: hello\n", @io.string)
19
-
20
- # bug: Binding.of_caller thinks Logger is the caller.
21
- a = 14
22
- b = 13
23
- # Logger.trace 'a * b'
24
- # assert_equal(" INFO: hello\nDEBUG: a * b = 182\n", @io.string)
25
-
26
- @io.string = ''
27
- Logger.debug 'hello'
28
- assert_equal("DEBUG: hello\n", @io.string)
29
-
30
- # test logging level.
31
- Logger.get.level = Logger::INFO
32
- Logger.debug 'world'
33
- assert_equal("DEBUG: hello\n", @io.string)
34
-
35
- # bug:
36
- Logger.error 'Have forgotten that :)'
37
-
38
- #
39
- Logger.set('hello.log')
40
- assert_instance_of(Logger, Logger.get)
41
- end
42
-
43
- end
data/test/glue/tc_mail.rb DELETED
@@ -1,99 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
2
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'nitro', 'lib')
3
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'og', 'lib')
4
-
5
- $NITRO_NO_ENVIRONMENT = true
6
-
7
- require 'test/unit'
8
- require 'ostruct'
9
- require 'nitro'
10
- require 'glue/configuration'
11
- require 'glue/mailer'
12
-
13
- class TestCaseMail < Test::Unit::TestCase # :nodoc: all
14
- include Glue
15
-
16
- class DummyMailer < Mailer
17
- def initialize
18
- super
19
- @bcc = 'george.moschovitis@gmail.com'
20
- @template_root = 'test/public/dummy_mailer'
21
- end
22
-
23
- def registration(to, username, token)
24
- @to = to
25
- @from = 'system@nitroproject.org'
26
- @subject = 'Nitro.com registration'
27
- @cc = 'george.moschovitis@gmail.com'
28
- @body.username = username
29
- @body.token = token
30
- end
31
-
32
- def greek(to)
33
- @to = to
34
- @from = 'system@nitroproject.org'
35
- @subject = 'Ελληνικός Τίτλος'
36
- @cc = 'george.moschovitis@gmail.com'
37
- @body = 'Τί έγινε ρε παιδιά;'
38
- end
39
- end
40
- =begin
41
- class DummyController < Controller
42
- # mailer DummyMailer
43
-
44
- def register
45
- token = 999
46
- deliver_registration('gmosx@nitroproject.org', 'gmosx', token)
47
- end
48
- end
49
- =end
50
- def test_mail
51
- m = Glue::Mail.new 'gmosx@nitroproject.org', 'drak@nitroproject.org', 'A simple test', 'This is the body of the message'
52
- expected = %{From: gmosx@nitroproject.org
53
- To: drak@nitroproject.org
54
- Subject: A simple test
55
-
56
- This is the body of the message}
57
- assert_equal expected, m.encoded
58
-
59
- m.to = %w{ renos@nitroproject.org stella@nitroproject.org }
60
- expected = %{From: gmosx@nitroproject.org
61
- To: renos@nitroproject.org, stella@nitroproject.org
62
- Subject: A simple test
63
-
64
- This is the body of the message}
65
- assert_equal expected, m.encoded
66
-
67
- end
68
- =begin
69
- def test_mailer
70
- assert_equal 0, DummyMailer.deliveries.size
71
-
72
- Mailer.server[:address] = 'mail.nitroproject.org'
73
- # assert_equal 'mail.nitroproject.org', DummyMailer.server[:address]
74
-
75
- Mailer.delivery_method = :test
76
- Mailer.template_root = File.join(File.dirname(__FILE__), '..', 'root', 'dummy_mailer')
77
- token = 999
78
- DummyMailer.deliver_registration('george.moschovitis@gmail.com', 'gmosx', token)
79
- assert_equal 1, DummyMailer.deliveries.size
80
-
81
- expected = %{From: system@nitroproject.org
82
- To: george.moschovitis@gmail.com
83
- Cc: george.moschovitis@gmail.com
84
- Bcc: george.moschovitis@gmail.com
85
- Subject: =?utf-8?Q?Nitro=2ecom_registration?=
86
-
87
- Hello gmosx
88
-
89
- how do you feel?
90
-
91
- Here is your <b>Token</b>: 999
92
- }
93
- assert_equal expected, DummyMailer.deliveries[0].encoded
94
-
95
- DummyMailer.deliver_greek('george.moschovitis@gmail.com')
96
- assert_equal 2, DummyMailer.deliveries.size
97
- end
98
- =end
99
- end