fron 0.1.0 → 0.1.1
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.
- 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
|