tynn 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gems +8 -5
  3. data/README.md +8 -0
  4. data/examples/composition.ru +42 -0
  5. data/examples/hello.ru +9 -0
  6. data/examples/render.ru +13 -0
  7. data/examples/views/home.erb +1 -0
  8. data/examples/views/layout.erb +5 -0
  9. data/lib/tynn/default_matcher.rb +7 -0
  10. data/lib/tynn/environment.rb +23 -0
  11. data/lib/tynn/erubis.rb +15 -0
  12. data/lib/tynn/hmote.rb +40 -0
  13. data/lib/tynn/hsts.rb +23 -0
  14. data/lib/tynn/json.rb +11 -0
  15. data/lib/tynn/json_parser.rb +34 -0
  16. data/lib/tynn/render.rb +56 -0
  17. data/lib/tynn/secure_headers.rb +15 -0
  18. data/lib/tynn/send_file.rb +12 -0
  19. data/lib/tynn/session.rb +11 -0
  20. data/lib/tynn/static.rb +10 -0
  21. data/lib/tynn/test.rb +16 -0
  22. data/lib/tynn/version.rb +1 -1
  23. data/lib/tynn.rb +31 -22
  24. data/makefile +9 -2
  25. data/test/core.rb +232 -0
  26. data/test/default_matcher.rb +17 -0
  27. data/test/environment.rb +31 -0
  28. data/test/erubis.rb +20 -0
  29. data/test/helper.rb +4 -11
  30. data/test/hmote.rb +78 -0
  31. data/test/hsts.rb +29 -0
  32. data/test/json.rb +19 -0
  33. data/test/json_parser.rb +22 -0
  34. data/test/render.rb +79 -0
  35. data/test/secure_headers.rb +20 -0
  36. data/test/send_file.rb +31 -0
  37. data/test/session.rb +22 -0
  38. data/test/static.rb +13 -0
  39. data/test/views/custom_layout.erb +1 -0
  40. data/test/views/custom_layout.mote +1 -0
  41. data/test/views/layout.erb +1 -0
  42. data/test/views/layout.mote +1 -0
  43. data/test/views/partial.erb +1 -0
  44. data/test/views/partial.mote +1 -0
  45. data/test/views/view.erb +1 -0
  46. data/test/views/view.mote +1 -0
  47. data/tynn.gemspec +5 -2
  48. metadata +82 -21
  49. data/test/captures.rb +0 -20
  50. data/test/composition.rb +0 -27
  51. data/test/hello.rb +0 -15
  52. data/test/helpers.rb +0 -54
  53. data/test/middleware.rb +0 -86
  54. data/test/settings.rb +0 -29
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tynn
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
  - Francesco Rodríguez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-28 00:00:00.000000000 Z
11
+ date: 2015-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: syro
14
+ name: rack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.7
19
+ version: '1.6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.7
26
+ version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rack
28
+ name: seteable
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.6.4
33
+ version: 1.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.6.4
40
+ version: 1.0.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: seteable
42
+ name: syro
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
47
+ version: 0.0.8
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: 0.0.8
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: cutest
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.2.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: hmote
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 1.4.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 1.4.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rack-test
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - '='
81
95
  - !ruby/object:Gem::Version
82
96
  version: 0.6.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: tilt
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
83
111
  description: Simple library to create Rack applications
84
112
  email:
85
113
  - frodsan@protonmail.ch
@@ -90,16 +118,49 @@ files:
90
118
  - ".gems"
91
119
  - LICENSE
92
120
  - README.md
121
+ - examples/composition.ru
122
+ - examples/hello.ru
123
+ - examples/render.ru
124
+ - examples/views/home.erb
125
+ - examples/views/layout.erb
93
126
  - lib/tynn.rb
127
+ - lib/tynn/default_matcher.rb
128
+ - lib/tynn/environment.rb
129
+ - lib/tynn/erubis.rb
130
+ - lib/tynn/hmote.rb
131
+ - lib/tynn/hsts.rb
132
+ - lib/tynn/json.rb
133
+ - lib/tynn/json_parser.rb
134
+ - lib/tynn/render.rb
135
+ - lib/tynn/secure_headers.rb
136
+ - lib/tynn/send_file.rb
137
+ - lib/tynn/session.rb
138
+ - lib/tynn/static.rb
139
+ - lib/tynn/test.rb
94
140
  - lib/tynn/version.rb
95
141
  - makefile
96
- - test/captures.rb
97
- - test/composition.rb
98
- - test/hello.rb
142
+ - test/core.rb
143
+ - test/default_matcher.rb
144
+ - test/environment.rb
145
+ - test/erubis.rb
99
146
  - test/helper.rb
100
- - test/helpers.rb
101
- - test/middleware.rb
102
- - test/settings.rb
147
+ - test/hmote.rb
148
+ - test/hsts.rb
149
+ - test/json.rb
150
+ - test/json_parser.rb
151
+ - test/render.rb
152
+ - test/secure_headers.rb
153
+ - test/send_file.rb
154
+ - test/session.rb
155
+ - test/static.rb
156
+ - test/views/custom_layout.erb
157
+ - test/views/custom_layout.mote
158
+ - test/views/layout.erb
159
+ - test/views/layout.mote
160
+ - test/views/partial.erb
161
+ - test/views/partial.mote
162
+ - test/views/view.erb
163
+ - test/views/view.mote
103
164
  - tynn.gemspec
104
165
  homepage: https://github.com/harmoni/tynn
105
166
  licenses:
data/test/captures.rb DELETED
@@ -1,20 +0,0 @@
1
- require_relative "helper"
2
-
3
- setup do
4
- Driver.new(Tynn)
5
- end
6
-
7
- test "captures" do |app|
8
- Tynn.define do
9
- on :foo do
10
- on :bar do
11
- res.write(sprintf("%s:%s", inbox[:foo], inbox[:bar]))
12
- end
13
- end
14
- end
15
-
16
- app.get("/foo/bar")
17
-
18
- assert_equal 200, app.res.status
19
- assert_equal "foo:bar", app.res.body
20
- end
data/test/composition.rb DELETED
@@ -1,27 +0,0 @@
1
- require_relative "helper"
2
-
3
- setup do
4
- Driver.new(Tynn)
5
- end
6
-
7
- test "composition" do |app|
8
- class Foo < Tynn
9
- end
10
-
11
- Foo.define do
12
- get do
13
- res.write(inbox[:foo])
14
- end
15
- end
16
-
17
- Tynn.define do
18
- on "foo" do
19
- run(Foo, foo: 42)
20
- end
21
- end
22
-
23
- app.get("/foo")
24
-
25
- assert_equal 200, app.res.status
26
- assert_equal "42", app.res.body
27
- end
data/test/hello.rb DELETED
@@ -1,15 +0,0 @@
1
- require_relative "helper"
2
-
3
- test "hello" do
4
- Tynn.define do
5
- get do
6
- res.write("hello")
7
- end
8
- end
9
-
10
- app = Driver.new(Tynn)
11
- app.get("/")
12
-
13
- assert_equal 200, app.res.status
14
- assert_equal "hello", app.res.body
15
- end
data/test/helpers.rb DELETED
@@ -1,54 +0,0 @@
1
- require_relative "helper"
2
-
3
- module Helper
4
- def clean(str)
5
- return str.strip
6
- end
7
-
8
- module Number
9
- def number
10
- return 1
11
- end
12
- end
13
-
14
- def self.setup(app)
15
- app.helpers(Number)
16
- end
17
-
18
- module ClassMethods
19
- def foo
20
- "foo"
21
- end
22
- end
23
- end
24
-
25
- setup do
26
- Driver.new(Tynn)
27
- end
28
-
29
- test "helpers" do |app|
30
- Tynn.helpers(Helper)
31
-
32
- Tynn.define do
33
- get do
34
- res.write(clean(" foo "))
35
- end
36
- end
37
-
38
- app.get("/")
39
-
40
- assert_equal "foo", app.res.body
41
- assert_equal "foo", Tynn.foo
42
- end
43
-
44
- test "setup" do |app|
45
- Tynn.helpers(Helper)
46
-
47
- Tynn.define do
48
- res.write(number)
49
- end
50
-
51
- app.get("/")
52
-
53
- assert_equal "1", app.res.body
54
- end
data/test/middleware.rb DELETED
@@ -1,86 +0,0 @@
1
- require_relative "helper"
2
-
3
- class Shrimp
4
- def initialize(app)
5
- @app = app
6
- end
7
-
8
- def call(env)
9
- s, h, resp = @app.call(env)
10
-
11
- return [s, h, resp.reverse]
12
- end
13
- end
14
-
15
- setup do
16
- Tynn.__middleware.clear
17
- end
18
-
19
- test "use middleware in main application" do
20
- Tynn.use(Shrimp)
21
-
22
- Tynn.define do
23
- get do
24
- res.write("1")
25
- res.write("2")
26
- end
27
- end
28
-
29
- app = Driver.new(Tynn)
30
- app.get("/")
31
-
32
- assert_equal 200, app.res.status
33
- assert_equal "21", app.res.body
34
- end
35
-
36
- test "use middleware with composition" do
37
- Tynn.use(Shrimp)
38
-
39
- Tynn.define do
40
- on "api" do
41
- run(API)
42
- end
43
- end
44
-
45
- class API < Tynn
46
- end
47
-
48
- API.define do
49
- get do
50
- res.write("1")
51
- res.write("2")
52
- end
53
- end
54
-
55
- app = Driver.new(Tynn)
56
- app.get("/api")
57
-
58
- assert_equal 200, app.res.status
59
- assert_equal "21", app.res.body
60
- end
61
-
62
- test "use middleware only in child application" do
63
- Tynn.define do
64
- on "api" do
65
- run(API)
66
- end
67
- end
68
-
69
- class API < Tynn
70
- use(Shrimp)
71
- end
72
-
73
- API.define do
74
- get do
75
- res.write("1")
76
- res.write("2")
77
- end
78
- end
79
-
80
- app = Driver.new(Tynn)
81
-
82
- app.get("/api")
83
-
84
- assert_equal 200, app.res.status
85
- assert_equal "21", app.res.body
86
- end
data/test/settings.rb DELETED
@@ -1,29 +0,0 @@
1
- require_relative "helper"
2
-
3
- test "use settings inside the application" do
4
- Tynn.settings[:message] = "hello"
5
-
6
- Tynn.define do
7
- get do
8
- res.write(settings[:message])
9
- end
10
- end
11
-
12
- app = Driver.new(Tynn)
13
- app.get("/")
14
-
15
- assert_equal "hello", app.res.body
16
- end
17
-
18
- test "settings are inheritable and overridable" do
19
- Tynn.settings[:foo] = "bar"
20
-
21
- class Admin < Tynn; end
22
-
23
- assert_equal "bar", Admin.settings[:foo]
24
-
25
- Admin.settings[:foo] = "baz"
26
-
27
- assert_equal "bar", Tynn.settings[:foo]
28
- assert_equal "baz", Admin.settings[:foo]
29
- end