nice 0.0.6 → 0.1.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.
metadata CHANGED
@@ -1,118 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
- - Benjamin Mueller
9
- autorequire:
10
- bindir: bin
7
+ - Nicolas Leger
8
+ bindir: exe
11
9
  cert_chain: []
12
- date: 2012-08-15 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
13
11
  dependencies:
14
12
  - !ruby/object:Gem::Dependency
15
- name: rails
13
+ name: ckan
16
14
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
15
  requirements:
19
- - - ~>
16
+ - - ">="
20
17
  - !ruby/object:Gem::Version
21
- version: 3.2.3
18
+ version: '0'
22
19
  type: :runtime
23
20
  prerelease: false
24
21
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
22
  requirements:
27
- - - ~>
23
+ - - ">="
28
24
  - !ruby/object:Gem::Version
29
- version: 3.2.3
25
+ version: '0'
30
26
  - !ruby/object:Gem::Dependency
31
- name: nokogiri
27
+ name: httparty
32
28
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
29
  requirements:
35
- - - ! '>='
30
+ - - "~>"
36
31
  - !ruby/object:Gem::Version
37
- version: '0'
32
+ version: '0.21'
38
33
  type: :runtime
39
34
  prerelease: false
40
35
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
36
  requirements:
43
- - - ! '>='
37
+ - - "~>"
44
38
  - !ruby/object:Gem::Version
45
- version: '0'
39
+ version: '0.21'
46
40
  - !ruby/object:Gem::Dependency
47
- name: sqlite3
41
+ name: json
48
42
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
43
  requirements:
51
- - - ! '>='
44
+ - - "~>"
52
45
  - !ruby/object:Gem::Version
53
- version: '0'
46
+ version: '2.6'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.6'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '13.0'
54
61
  type: :development
55
62
  prerelease: false
56
63
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
64
  requirements:
59
- - - ! '>='
65
+ - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '0'
62
- description: Seriously, it's a nice little state engine for JS/HTML5 on Rails
67
+ version: '13.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rspec
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.12'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.12'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rubocop
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.50'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.50'
96
+ - !ruby/object:Gem::Dependency
97
+ name: vcr
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '6.0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '6.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: webmock
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '3.0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '3.0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: pry
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.14'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.14'
138
+ - !ruby/object:Gem::Dependency
139
+ name: pry-byebug
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.10'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '3.10'
152
+ description: A Ruby gem for accessing and managing OpenData from Nice Côte d'Azur
153
+ metropolitan area via CKAN API
63
154
  email:
64
- - elchbenny@googlemail.com
155
+ - nicolasleger@users.noreply.github.com
65
156
  executables: []
66
157
  extensions: []
67
158
  extra_rdoc_files: []
68
159
  files:
69
- - lib/assets/javascripts/event_dispatcher.coffee
70
- - lib/assets/javascripts/nice_imp_jquery.js.coffee
71
- - lib/assets/javascripts/nice_jquery.js
72
- - lib/nice/config.rb
73
- - lib/nice/engine.rb
74
- - lib/nice/html_parser.rb
75
- - lib/nice/js/caller.rb
76
- - lib/nice/logic.rb
77
- - lib/nice/middleware.rb
78
- - lib/nice/version.rb
79
- - lib/nice.rb
80
- - lib/tasks/nice_tasks.rake
81
- - MIT-LICENSE
82
- - Rakefile
160
+ - ".rspec"
161
+ - CHANGELOG.md
162
+ - Gemfile
163
+ - Gemfile.lock
164
+ - LICENSE
83
165
  - README.md
84
- - test/integration/nice_test.rb
85
- - test/test_helper.rb
86
- homepage: ''
87
- licenses: []
88
- post_install_message:
166
+ - Rakefile
167
+ - lib/nice.rb
168
+ - lib/nice/client.rb
169
+ - lib/nice/version.rb
170
+ - nice.gemspec
171
+ homepage: https://github.com/nicolasleger/nice
172
+ licenses:
173
+ - MIT
174
+ metadata:
175
+ homepage_uri: https://github.com/nicolasleger/nice
176
+ source_code_uri: https://github.com/nicolasleger/nice
177
+ changelog_uri: https://github.com/nicolasleger/nice/blob/main/CHANGELOG.md
89
178
  rdoc_options: []
90
179
  require_paths:
91
180
  - lib
92
181
  required_ruby_version: !ruby/object:Gem::Requirement
93
- none: false
94
182
  requirements:
95
- - - ! '>='
183
+ - - ">="
96
184
  - !ruby/object:Gem::Version
97
- version: '0'
98
- segments:
99
- - 0
100
- hash: -579488533932706128
185
+ version: 2.7.0
101
186
  required_rubygems_version: !ruby/object:Gem::Requirement
102
- none: false
103
187
  requirements:
104
- - - ! '>='
188
+ - - ">="
105
189
  - !ruby/object:Gem::Version
106
190
  version: '0'
107
- segments:
108
- - 0
109
- hash: -579488533932706128
110
191
  requirements: []
111
- rubyforge_project:
112
- rubygems_version: 1.8.22
113
- signing_key:
114
- specification_version: 3
115
- summary: Nice / Nizza is a posh little town in south France.
116
- test_files:
117
- - test/integration/nice_test.rb
118
- - test/test_helper.rb
192
+ rubygems_version: 4.0.3
193
+ specification_version: 4
194
+ summary: OpenData NCA - Métropole Nice Côte d'Azur
195
+ test_files: []
data/MIT-LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright 2012 YOURNAME
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,34 +0,0 @@
1
- class this.NiceEventDispatcher
2
-
3
- # state transition cache
4
- @state_cache
5
-
6
- # gets called by JS response and generates JS events either dispatched immediatly
7
- # or later by another transition event
8
- @dispatch_event: (event_name, attrs, cached = false, transition_id = null) ->
9
- # create event
10
- evt = document.createEvent("Event")
11
- evt.initEvent(event_name,true,true);
12
-
13
- # add remaining arguments as event properties
14
- evt[key] = value for key, value of attrs
15
-
16
- if cached == true # is this state preloading?
17
- if !NiceEventDispatcher.state_cache?[transition_id]?
18
- NiceEventDispatcher.state_cache = new Object;
19
- NiceEventDispatcher.state_cache[transition_id] = []
20
- document.addEventListener "nice.state.CachedTransitionEvent", NiceEventDispatcher.dispatch_cached_transition_events, false
21
-
22
- NiceEventDispatcher.state_cache[transition_id].push evt
23
- else # dispatch
24
- document.dispatchEvent(evt)
25
-
26
- # launch cached state transition
27
- @dispatch_cached_transition_events: (event) ->
28
- if NiceEventDispatcher.state_cache?[event.transition_id]?
29
-
30
- # fire stored events
31
- document.dispatchEvent(evt) for evt in NiceEventDispatcher.state_cache[event.transition_id]
32
-
33
- # clean/reset
34
- NiceEventDispatcher.state_cache[event.transition_id] = null
@@ -1,122 +0,0 @@
1
- ## default event handler
2
- class NiceJquery
3
-
4
- # css top class manipulation
5
- @change_top_css: (event) ->
6
- # remove global state class and add new one
7
- reg = /// ^
8
- state-\S+
9
- ///
10
- matches = $("body").attr("class")?.match(reg)
11
- $("body").removeClass(c_name) for c_name in matches if matches?
12
- $("body").addClass("state-#{event.new_state_name}")
13
-
14
- # insert element after referencing node
15
- @insert_after: (event) ->
16
- act = (ref,ins) -> ref.after(ins)
17
- NiceJquery.perform_transition(event.ref_node, event.new_node, act)
18
-
19
- # insert element at first position inside referencing node
20
- @insert_inside: (event) ->
21
- act = (ref,ins) -> ref.prepend(ins)
22
- NiceJquery.perform_transition(event.ref_node, event.new_node, act)
23
-
24
- # replace ref node with new node
25
- @replace: (event) ->
26
- act = (ref,ins) -> ref.replaceWith(ins)
27
- NiceJquery.perform_transition(event.ref_node, event.new_node, act)
28
-
29
- # remove all elements which are not of current state and all elements
30
- # which are of current state and secondly annotated to be always updated.
31
- @remove_state_elements: (event) ->
32
- $("[data-state]").not("[data-state~='#{event.curr_state}']").remove()
33
- $("[data-state~='#{event.curr_state}'][data-state-update!='no']").remove()
34
-
35
- # remove everything under the "root tag"
36
- @clean_root_tree: (event) ->
37
- $("[data-state-root]").children().remove()
38
-
39
- # Browser History Stuff
40
- @move_to_url: (event) ->
41
- history.pushState(null,event.title,event.url)
42
-
43
- @insert_or_update_back_listener: (event) ->
44
- # remove current existing back-binders
45
- $(window).unbind('popstate')
46
- $(window).bind('popstate', ->
47
- xmlHttp = null
48
- xmlHttp = new XMLHttpRequest()
49
- xmlHttp.open('GET', event.url, false)
50
- xmlHttp.send(null)
51
- eval(xmlHttp.responseText)
52
- )
53
-
54
-
55
- # each DOM Manipulation should call this method which will apply the transition animation start values
56
- # to the elements before inserting into the DOM tree and the trigger the animation
57
- @perform_transition: (elem_ref, elem_new, action) ->
58
-
59
- # get jquery obj of element to insert
60
- e = $(elem_new)
61
- e_ref = $(elem_ref)
62
- return if !e? || !e_ref?
63
-
64
- filter = '[data-state-transition][data-state-transition!="none"]'
65
- animated_elements = e.find('*').andSelf().filter(filter)
66
-
67
- styles = []
68
- durations = []
69
- easing = []
70
-
71
- animated_elements.each (index,elem) =>
72
-
73
- # get transition style
74
- a_e = $(elem)
75
- transition = a_e.data('state-transition')
76
-
77
- # get custom defined transition definitions
78
- if( NiceTransitions? )
79
- transition_def = if(transition) then NiceTransitions[transition] else NiceTransitions.default
80
-
81
- # if no custom definitions exist - generate a default to do something at least
82
- if( !transition_def? )
83
- if transition?
84
- console.log("Custom Transition Definition for \"#{transition}\" is \
85
- missing! Please create a NiceTransitions class and configure your transitions.")
86
-
87
- # rescue default transition
88
- transition_def =
89
- duration: 200
90
- easing: "linear"
91
- properties:
92
- opacity: 0.0
93
-
94
- durations.push transition_def.duration
95
- easing.push transition_def.easing
96
-
97
- # get current style values and apply start values
98
- style = {}
99
- for style_key, style_val of transition_def.properties
100
- old_value = a_e.css(style_key)
101
- a_e.css(style_key, style_val)
102
- style[style_key] = old_value
103
-
104
- styles.push style
105
-
106
- # insert element
107
- action(e_ref, e)
108
-
109
- # animate
110
- animated_elements.each (index,elem) =>
111
- $(elem).animate(styles[index],durations[index],easing[index]) if styles[index]?
112
-
113
- ## add event listener
114
- document.addEventListener "nice.dom.InsertAfterEvent", NiceJquery.insert_after, false
115
- document.addEventListener "nice.dom.InsertInsideEvent", NiceJquery.insert_inside, false
116
- document.addEventListener "nice.dom.ReplaceEvent", NiceJquery.replace, false
117
- document.addEventListener "nice.dom.RemoveStateEvent", NiceJquery.remove_state_elements, false
118
- document.addEventListener "nice.dom.ChangeTopCssEvent", NiceJquery.change_top_css, false
119
- document.addEventListener "nice.dom.CleanRootEvent", NiceJquery.clean_root_tree, false
120
- document.addEventListener "nice.hist.ChangeURLEvent", NiceJquery.move_to_url, false
121
- document.addEventListener "nice.hist.PopHistoryEvent", NiceJquery.insert_or_update_back_listener, false
122
-
@@ -1,15 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // the compiled file.
9
- //
10
- // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
- // GO AFTER THE REQUIRES BELOW.
12
- //
13
-
14
- //= require event_dispatcher
15
- //= require nice_imp_jquery
data/lib/nice/config.rb DELETED
@@ -1,3 +0,0 @@
1
- module Nice
2
- preload_states_by_default = :yes
3
- end
data/lib/nice/engine.rb DELETED
@@ -1,4 +0,0 @@
1
- module Nice
2
- class Engine < ::Rails::Engine
3
- end
4
- end
@@ -1,144 +0,0 @@
1
- require 'nokogiri'
2
- require 'yaml'
3
- require 'nice/js/caller'
4
-
5
- module Nice
6
- class HtmlParser
7
-
8
- def self.remove_elements_not_of_state(state, doc)
9
-
10
- doc.css("[data-state]").each do |node|
11
- if !node.attribute('data-state').value.split(" ").include?(state) then
12
- node.remove
13
- end
14
- end
15
-
16
- doc
17
- end
18
-
19
- def self.add_elements_of_current_state doc, curr_state, upper_root=false
20
-
21
- # get all nodes of the current state
22
- doc.css("*[data-state-root]").remove if upper_root # for upper_root option remove tree below root to shorten the search
23
- curr_state_nodes = doc.css("[data-state~='#{curr_state}']")
24
-
25
- # get reference nodes in DOM tree for current nodes and generate js insert statements
26
- stack = curr_state_nodes.reverse.each_with_index.map do |curr_node,index|
27
-
28
- if curr_node.has_attribute?("data-state-update") &&
29
- curr_node.attribute("data-state-update").value == "no" then
30
- next
31
- end
32
-
33
- ref_id = self.ref_node_uid(curr_state,curr_state_nodes.count - index)
34
- ref_node_name = "[data-state-uid~=\'#{ref_id}\']"
35
- ref_node = doc.css(ref_node_name)
36
-
37
- next if ref_node == nil
38
-
39
- #get index
40
- idx = ref_node.attribute("data-state-uid").value.split(" ").find_index(ref_id)
41
-
42
- ref_node_method = ref_node.attribute('data-state-insert-method').value.split(" ")[idx]
43
-
44
- if ref_node_method == "insert"
45
- js_text = Nice::Js::Caller.generate_js_insert_after curr_node, ref_node_name
46
- else
47
- js_text = Nice::Js::Caller.generate_js_insert_inside curr_node, ref_node_name
48
- end
49
-
50
- # remove unuseful chars which will break the js parser
51
- js_text = js_text.gsub(/(\r\n|\n|\r|\t|\s\s)/,'')
52
- end
53
-
54
- stack
55
- end
56
-
57
- # generates referencing data attributes in all preceiding or parent nodes of
58
- # state bound elements which are used later to insert elements correctly
59
- # This method supports referencing by more than one state bounded node
60
- def self.annotate_referencing_nodes doc
61
-
62
- per_state_counter = {}
63
- doc.css("[data-state]").each do |curr_node|
64
-
65
- # each node can have multiple state references which need to be
66
- # treated separately
67
- states = curr_node.attribute("data-state").value.split(" ")
68
-
69
- states.each do |state|
70
- # increase counter per state
71
- per_state_counter[state] ||= 0
72
- idx = per_state_counter[state] += 1
73
-
74
- # try using preceding element if one exists otherwise use parent.
75
- # the referencing node must not be an state bound element otherwise
76
- # we can not be sure the element is always present.
77
- prev_node = curr_node.previous_element
78
-
79
- while prev_node && prev_node.has_attribute?("data-state")
80
- prev_node = prev_node.previous_element
81
- end
82
-
83
- if prev_node && !prev_node.has_attribute?("data-state")
84
- node = prev_node
85
- method = "insert"
86
- else
87
- par_node = curr_node.parent
88
-
89
- while par_node && par_node.has_attribute?("data-state")
90
- par_node = par_node.parent
91
- end
92
-
93
- if par_node && !par_node.has_attribute?("data-state")
94
- node = curr_node.parent
95
- method = "append"
96
- else
97
- raise "No reference could be created for node #{curr_node}. Make sure this node \
98
- is preceeded or sourrounded at least by one non state bound element."
99
- end
100
-
101
- end
102
-
103
- next if node == nil
104
-
105
- # add reference to the found element
106
- a = node.has_attribute?('data-state-uid') ? [node.attribute('data-state-uid').value] : []
107
- a += [self.ref_node_uid(state,idx)]
108
- node['data-state-uid'] = a.join(" ")
109
-
110
- m = node.has_attribute?('data-state-insert-method') ? [node.attribute('data-state-insert-method').value] : []
111
- m += [method]
112
- node['data-state-insert-method'] = m.join(" ")
113
- end
114
- end
115
-
116
- doc
117
- end
118
-
119
- def self.add_top_css doc, current_state
120
- doc.css("body").add_class("state-#{current_state}")
121
- doc
122
- end
123
-
124
- def self.add_root_content doc
125
- if doc.css("[data-state-root]").length == 0
126
- raise "You must add add a data-state-root in your application.html to your main container"
127
- else
128
- ref_node_name = "[data-state-root]"
129
- js = []
130
- doc.css("*[data-state-root]").each do |curr_node|
131
- js << Nice::Js::Caller.replace_node(curr_node, ref_node_name).gsub(/(\r\n|\n|\r|\t|\s\s)/,'')
132
- end
133
- js
134
- end
135
- end
136
-
137
- private
138
-
139
- def self.ref_node_uid node_uid, num
140
- "#{node_uid}_ref_#{num}"
141
- end
142
-
143
- end
144
- end
@@ -1,48 +0,0 @@
1
- module Nice
2
- module Js
3
- class Caller
4
-
5
- # DOM Manipulation
6
- def self.generate_js_insert_after new_node, reference_node_ref
7
- "NiceEventDispatcher.dispatch_event(\'nice.dom.InsertAfterEvent\',{new_node:\'#{new_node}\', ref_node:\"#{reference_node_ref}\"});"
8
- end
9
-
10
- def self.generate_js_insert_inside new_node, reference_node_ref
11
- "NiceEventDispatcher.dispatch_event(\'nice.dom.InsertInsideEvent\',{new_node:\'#{new_node}\', ref_node:\"#{reference_node_ref}\"});"
12
- end
13
-
14
- def self.replace_node new_node, reference_node_ref
15
- "NiceEventDispatcher.dispatch_event(\'nice.dom.ReplaceEvent\',{new_node:\'#{new_node}\', ref_node:\"#{reference_node_ref}\"});"
16
- end
17
-
18
- def self.generate_js_remove curr_state
19
- "NiceEventDispatcher.dispatch_event(\'nice.dom.RemoveStateEvent\',{curr_state:\'#{curr_state}\'});"
20
- end
21
-
22
- def self.clean_root_tree
23
- "NiceEventDispatcher.dispatch_event(\'nice.dom.CleanRootEvent\',{});"
24
- end
25
-
26
-
27
- # History Manipulation
28
- def self.move_to_url url, title
29
- "NiceEventDispatcher.dispatch_event(\'nice.hist.ChangeURLEvent\',{url:\'#{url}\', title:\'#{title}\'});"
30
- end
31
-
32
- def self.insert_or_update_back_listener url
33
- "NiceEventDispatcher.dispatch_event(\'nice.hist.PopHistoryEvent\',{url:\'#{url}\'});"
34
- end
35
-
36
- # events for UI
37
- def self.state_did_change prev_state, new_state
38
- "NiceEventDispatcher.dispatch_event(\'nice.ui.StateDidChangeEvent\',{prev_state:\'#{prev_state}\', new_state:\"#{new_state}\"});"
39
- end
40
-
41
- # Change Body Css Class to reflect current state
42
- def self.change_top_css new_state_name
43
- "NiceEventDispatcher.dispatch_event(\'nice.dom.ChangeTopCssEvent\',{new_state_name:\'#{new_state_name}\'});"
44
- end
45
-
46
- end
47
- end
48
- end