fron 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +35 -0
- data/Rakefile +18 -0
- data/docs/configuration.md +8 -8
- data/lib/fron/version.rb +1 -1
- data/opal/fron/core.rb +1 -1
- data/opal/fron/core/adapters/{local-storage.rb → local.rb} +7 -6
- data/opal/fron/core/application.rb +13 -11
- data/opal/fron/core/configuration.rb +3 -4
- data/opal/fron/core/controller.rb +2 -2
- data/opal/fron/core/eventable.rb +5 -2
- data/opal/fron/core/logger.rb +7 -0
- data/opal/fron/core/model.rb +10 -8
- data/opal/fron/core/router.rb +1 -1
- data/opal/fron/dom.rb +1 -0
- data/opal/fron/dom/document.rb +4 -0
- data/opal/fron/dom/element.rb +22 -6
- data/opal/fron/dom/event.rb +71 -68
- data/opal/fron/dom/fragment.rb +1 -3
- data/opal/fron/dom/modules/classlist.rb +2 -2
- data/opal/fron/dom/modules/dimensions.rb +7 -8
- data/opal/fron/dom/modules/events.rb +57 -12
- data/opal/fron/dom/node.rb +45 -11
- data/opal/fron/dom/nodelist.rb +14 -0
- data/opal/fron/dom/style.rb +17 -15
- data/opal/fron/dom/text.rb +2 -4
- data/opal/fron/dom/window.rb +2 -3
- data/opal/fron/request/request.rb +17 -14
- data/opal/fron/storage/local-storage.rb +29 -13
- data/spec/core-ext/hash_spec.rb +18 -0
- data/spec/core/adapter/local_spec.rb +65 -0
- data/spec/core/adapter/rails_spec.rb +72 -0
- data/spec/core/application_spec.rb +35 -0
- data/spec/core/component_spec.rb +107 -0
- data/spec/core/configuration_spec.rb +20 -0
- data/spec/core/controlller_spec.rb +68 -0
- data/spec/core/eventable_spec.rb +74 -0
- data/spec/core/logger_spec.rb +28 -0
- data/spec/core/model_spec.rb +125 -0
- data/spec/core/router_spec.rb +127 -0
- data/spec/dom/document_spec.rb +41 -0
- data/spec/dom/element_spec.rb +164 -0
- data/spec/dom/event_spec.rb +121 -0
- data/spec/dom/fragment_spec.rb +13 -0
- data/spec/dom/modules/classlist_spec.rb +72 -0
- data/spec/dom/modules/dimensions_spec.rb +55 -0
- data/spec/dom/modules/events_spec.rb +73 -0
- data/spec/dom/node_spec.rb +189 -0
- data/spec/dom/nodelist_spec.rb +12 -0
- data/spec/dom/style_spec.rb +31 -0
- data/spec/dom/text_spec.rb +12 -0
- data/spec/dom/window_spec.rb +30 -0
- data/spec/request/request_spec.rb +71 -0
- data/spec/request/response_spec.rb +46 -0
- data/spec/storage/local-storage_spec.rb +58 -0
- metadata +36 -4
@@ -0,0 +1,12 @@
|
|
1
|
+
describe DOM::Text do
|
2
|
+
|
3
|
+
subject { described_class.new('test') }
|
4
|
+
let(:el) { subject.instance_variable_get("@el") }
|
5
|
+
|
6
|
+
describe "#initailize" do
|
7
|
+
it 'should create textNode with given value' do
|
8
|
+
subject.text.should eq 'test'
|
9
|
+
`#{el} instanceof Text`.should be true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe DOM::Window do
|
2
|
+
|
3
|
+
subject { described_class }
|
4
|
+
|
5
|
+
describe "#hash" do
|
6
|
+
it 'should return the hash of the url' do
|
7
|
+
`window.location.hash = 'test'`
|
8
|
+
subject.hash.should eq 'test'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#hash=" do
|
13
|
+
it 'should set the hash of the url' do
|
14
|
+
subject.hash = 'test'
|
15
|
+
`window.location.hash.slice(1)`.should eq 'test'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "scrollY" do
|
20
|
+
it 'should return the vertical scroll position' do
|
21
|
+
subject.scrollY.should eq 0
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "scrollX" do
|
26
|
+
it 'should return the horizontal scroll position' do
|
27
|
+
subject.scrollX.should eq 0
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'fron/request'
|
2
|
+
|
3
|
+
describe Fron::Request do
|
4
|
+
|
5
|
+
subject { described_class.new 'url' }
|
6
|
+
let(:request) {%x{
|
7
|
+
return { readyState: 0,
|
8
|
+
open: function(){this.opened = true},
|
9
|
+
send: function(){this.sent = true}}
|
10
|
+
}}
|
11
|
+
let(:data) { double :data, to_query_string: '', to_form_data: true }
|
12
|
+
|
13
|
+
before do
|
14
|
+
subject.instance_variable_set("@request", request)
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#request" do
|
18
|
+
it 'should raise if the rquest is already running' do
|
19
|
+
allow(subject).to receive(:ready_state).and_return 1
|
20
|
+
expect(Proc.new {subject.request} ).to raise_error
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should call #open on request' do
|
24
|
+
subject.get
|
25
|
+
expect(`#{request}.opened`).to be true
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should call #send on request' do
|
29
|
+
subject.get
|
30
|
+
expect(`#{request}.sent`).to be true
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should call #to_query_string on data if it is a GET' do
|
34
|
+
expect(data).to receive(:to_query_string)
|
35
|
+
expect(data).not_to receive(:to_form_data)
|
36
|
+
subject.get data
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should call #to_form_data on data if it is a GET' do
|
40
|
+
expect(data).not_to receive(:to_query_string)
|
41
|
+
expect(data).to receive(:to_form_data)
|
42
|
+
subject.post data
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should set @callback' do
|
46
|
+
subject.get do end
|
47
|
+
subject.instance_variable_get('@callback').should_not be nil
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#get" do
|
52
|
+
it 'should call #request with GET' do
|
53
|
+
expect(subject).to receive(:request).once
|
54
|
+
subject.get
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "#post" do
|
59
|
+
it 'should call #request with POST' do
|
60
|
+
expect(subject).to receive(:request).once
|
61
|
+
subject.post
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#put" do
|
66
|
+
it 'should call #request with PUT' do
|
67
|
+
expect(subject).to receive(:request).once
|
68
|
+
subject.put
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'fron/request'
|
2
|
+
|
3
|
+
describe Fron::Response do
|
4
|
+
|
5
|
+
let(:headers) { "Content-Type: application/json"}
|
6
|
+
let(:status) { 200 }
|
7
|
+
let(:body) {'<div></div>'}
|
8
|
+
subject { described_class.new status, body, headers }
|
9
|
+
|
10
|
+
describe "#json" do
|
11
|
+
let(:body) { {key: 'value'}.to_json }
|
12
|
+
|
13
|
+
it 'should return the json body as a hash' do
|
14
|
+
subject.json.class.should eq Hash
|
15
|
+
subject.json[:key].should eq 'value'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#ok?" do
|
20
|
+
context "200" do
|
21
|
+
it 'should return true if status is 200' do
|
22
|
+
subject.ok?.should be true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "404" do
|
27
|
+
let(:status) { 404 }
|
28
|
+
it 'should return false if status is not 200' do
|
29
|
+
subject.ok?.should be false
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#dom" do
|
35
|
+
it 'should return with a Fragment' do
|
36
|
+
subject.dom.class.should eq DOM::Fragment
|
37
|
+
subject.dom.children[0].should_not be nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#content_type' do
|
42
|
+
it 'should return content type' do
|
43
|
+
subject.content_type.should eq 'application/json'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'fron/storage'
|
2
|
+
|
3
|
+
describe Fron::Storage::LocalStorage do
|
4
|
+
|
5
|
+
subject { described_class }
|
6
|
+
|
7
|
+
before do
|
8
|
+
subject.clear
|
9
|
+
subject.set 'key', { data: 'value' }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#get" do
|
13
|
+
it 'should get the data for the key' do
|
14
|
+
data = subject.get('key')
|
15
|
+
data.class.should eq Hash
|
16
|
+
data[:data].should eq 'value'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#set" do
|
21
|
+
it 'should set data for the key' do
|
22
|
+
subject.set 'key2', { data: 'value' }
|
23
|
+
subject.keys.include?('key2').should be true
|
24
|
+
subject.all.length.should be 2
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#keys' do
|
29
|
+
it 'should return all the keys' do
|
30
|
+
subject.keys.include?('key').should be true
|
31
|
+
subject.all.length.should eq 1
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#remove' do
|
36
|
+
it 'should remove the key' do
|
37
|
+
subject.all.length.should eq 1
|
38
|
+
subject.remove 'key'
|
39
|
+
subject.all.length.should eq 0
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#all" do
|
44
|
+
it 'should get the data for all key' do
|
45
|
+
data = subject.all[0]
|
46
|
+
data.class.should eq Hash
|
47
|
+
data[:data].should eq 'value'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe '#clear' do
|
52
|
+
it 'should remove all keys' do
|
53
|
+
subject.all.length.should eq 1
|
54
|
+
subject.clear
|
55
|
+
subject.all.length.should eq 0
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gusztav Szikszai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|
@@ -44,6 +44,11 @@ executables: []
|
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
|
+
- .ruby-gemset
|
48
|
+
- .ruby-version
|
49
|
+
- Gemfile
|
50
|
+
- Gemfile.lock
|
51
|
+
- Rakefile
|
47
52
|
- docs/application.md
|
48
53
|
- docs/configuration.md
|
49
54
|
- docs/controllers.md
|
@@ -54,7 +59,7 @@ files:
|
|
54
59
|
- opal/fron.rb
|
55
60
|
- opal/fron/core-ext/hash.rb
|
56
61
|
- opal/fron/core.rb
|
57
|
-
- opal/fron/core/adapters/local
|
62
|
+
- opal/fron/core/adapters/local.rb
|
58
63
|
- opal/fron/core/adapters/rails.rb
|
59
64
|
- opal/fron/core/application.rb
|
60
65
|
- opal/fron/core/component.rb
|
@@ -73,6 +78,7 @@ files:
|
|
73
78
|
- opal/fron/dom/modules/dimensions.rb
|
74
79
|
- opal/fron/dom/modules/events.rb
|
75
80
|
- opal/fron/dom/node.rb
|
81
|
+
- opal/fron/dom/nodelist.rb
|
76
82
|
- opal/fron/dom/style.rb
|
77
83
|
- opal/fron/dom/text.rb
|
78
84
|
- opal/fron/dom/window.rb
|
@@ -81,6 +87,32 @@ files:
|
|
81
87
|
- opal/fron/request/response.rb
|
82
88
|
- opal/fron/storage.rb
|
83
89
|
- opal/fron/storage/local-storage.rb
|
90
|
+
- spec/core-ext/hash_spec.rb
|
91
|
+
- spec/core/adapter/local_spec.rb
|
92
|
+
- spec/core/adapter/rails_spec.rb
|
93
|
+
- spec/core/application_spec.rb
|
94
|
+
- spec/core/component_spec.rb
|
95
|
+
- spec/core/configuration_spec.rb
|
96
|
+
- spec/core/controlller_spec.rb
|
97
|
+
- spec/core/eventable_spec.rb
|
98
|
+
- spec/core/logger_spec.rb
|
99
|
+
- spec/core/model_spec.rb
|
100
|
+
- spec/core/router_spec.rb
|
101
|
+
- spec/dom/document_spec.rb
|
102
|
+
- spec/dom/element_spec.rb
|
103
|
+
- spec/dom/event_spec.rb
|
104
|
+
- spec/dom/fragment_spec.rb
|
105
|
+
- spec/dom/modules/classlist_spec.rb
|
106
|
+
- spec/dom/modules/dimensions_spec.rb
|
107
|
+
- spec/dom/modules/events_spec.rb
|
108
|
+
- spec/dom/node_spec.rb
|
109
|
+
- spec/dom/nodelist_spec.rb
|
110
|
+
- spec/dom/style_spec.rb
|
111
|
+
- spec/dom/text_spec.rb
|
112
|
+
- spec/dom/window_spec.rb
|
113
|
+
- spec/request/request_spec.rb
|
114
|
+
- spec/request/response_spec.rb
|
115
|
+
- spec/storage/local-storage_spec.rb
|
84
116
|
homepage: ''
|
85
117
|
licenses: []
|
86
118
|
metadata: {}
|
@@ -100,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
132
|
version: '0'
|
101
133
|
requirements: []
|
102
134
|
rubyforge_project:
|
103
|
-
rubygems_version: 2.1.
|
135
|
+
rubygems_version: 2.1.9
|
104
136
|
signing_key:
|
105
137
|
specification_version: 4
|
106
138
|
summary: Frontend Application Framework
|