MINT-core 1.0.1 → 2.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.
- data/Gemfile +22 -3
- data/Gemfile.lock +98 -22
- data/History.txt +262 -0
- data/LICENSE +30 -0
- data/MINT-core.gemspec +25 -80
- data/Manifest.txt +145 -30
- data/README.rdoc +6 -163
- data/Rakefile +16 -17
- data/bin/mint-aui +3 -3
- data/bin/mint-cui-gfx +3 -2
- data/bin/mint-juggernaut.sh +0 -0
- data/bin/mint-tuplespace +0 -0
- data/lib/MINT-core.rb +53 -15
- data/lib/MINT-core/agent/agent.rb +1 -1
- data/lib/MINT-core/agent/aui.rb +0 -14
- data/lib/MINT-core/agent/auicontrol.rb +91 -38
- data/lib/MINT-core/agent/cui-gfx.rb +3 -3
- data/lib/MINT-core/agent/cuicontrol.rb +94 -24
- data/lib/MINT-core/connector/redis_connector.rb +16 -0
- data/lib/MINT-core/manager/mapping_manager.rb +101 -0
- data/lib/MINT-core/manager/mapping_parser.rb +89 -0
- data/lib/MINT-core/manager/mapping_server.rb +99 -0
- data/lib/MINT-core/manager/position_updater.rb +33 -0
- data/lib/MINT-core/manager/scxml_client.rb +118 -0
- data/lib/MINT-core/manager/scxml_server.rb +86 -0
- data/lib/MINT-core/mapping/action/action.rb +32 -0
- data/lib/MINT-core/mapping/action/backend_action.rb +32 -0
- data/lib/MINT-core/mapping/action/bind_action.rb +88 -0
- data/lib/MINT-core/mapping/action/event_action.rb +40 -0
- data/lib/MINT-core/mapping/complementary_mapping.rb +31 -0
- data/lib/MINT-core/mapping/mapping.rb +170 -34
- data/lib/MINT-core/mapping/observation/negation_observation.rb +64 -0
- data/lib/MINT-core/mapping/observation/observation.rb +219 -0
- data/lib/MINT-core/mapping/sequential.rb +1 -2
- data/lib/MINT-core/mapping/sequential_mapping.rb +60 -0
- data/lib/MINT-core/model/aui/AIChoiceElement.rb +17 -0
- data/lib/MINT-core/model/aui/AICommand.rb +7 -0
- data/lib/MINT-core/model/aui/AIContainer.rb +73 -0
- data/lib/MINT-core/model/aui/AIContext.rb +12 -0
- data/lib/MINT-core/model/aui/AIIN.rb +8 -0
- data/lib/MINT-core/model/aui/AIINContinuous.rb +56 -0
- data/lib/MINT-core/model/aui/AIINDiscrete.rb +8 -0
- data/lib/MINT-core/model/aui/AIMultiChoice.rb +1 -2
- data/lib/MINT-core/model/aui/AIMultiChoiceElement.rb +4 -51
- data/lib/MINT-core/model/aui/AIO.rb +76 -123
- data/lib/MINT-core/model/aui/AIOUT.rb +8 -0
- data/lib/MINT-core/model/aui/AIOUTContinuous.rb +61 -0
- data/lib/MINT-core/model/aui/AIReference.rb +16 -0
- data/lib/MINT-core/model/aui/AISingleChoice.rb +18 -1
- data/lib/MINT-core/model/aui/AISingleChoiceElement.rb +10 -56
- data/lib/MINT-core/model/aui/AISinglePresence.rb +39 -71
- data/lib/MINT-core/model/aui/aicommand.scxml +47 -0
- data/lib/MINT-core/model/aui/aicontainer.scxml +41 -0
- data/lib/MINT-core/model/aui/aicontext.scxml +34 -0
- data/lib/MINT-core/model/aui/aiincontinuous.scxml +59 -0
- data/lib/MINT-core/model/aui/aiinrange.scxml +86 -0
- data/lib/MINT-core/model/aui/aimultichoice.scxml +67 -0
- data/lib/MINT-core/model/aui/aimultichoiceelement.scxml +51 -0
- data/lib/MINT-core/model/aui/aio.scxml +18 -27
- data/lib/MINT-core/model/aui/aioutcontinuous.scxml +66 -0
- data/lib/MINT-core/model/aui/aireference.scxml +28 -0
- data/lib/MINT-core/model/aui/aisinglechoice.scxml +60 -0
- data/lib/MINT-core/model/aui/aisinglechoiceelement.scxml +45 -60
- data/lib/MINT-core/model/aui/aisinglepresence.scxml +15 -24
- data/lib/MINT-core/model/aui/model.rb +15 -38
- data/lib/MINT-core/model/cui/gfx/CIC.rb +34 -10
- data/lib/MINT-core/model/cui/gfx/CIO.rb +66 -115
- data/lib/MINT-core/model/cui/gfx/CarouFredSel.scxml +58 -0
- data/lib/MINT-core/model/cui/gfx/MarkableRadioButton.rb +8 -0
- data/lib/MINT-core/model/cui/gfx/RadioButton.rb +8 -0
- data/lib/MINT-core/model/cui/gfx/RadioButtonGroup.rb +6 -0
- data/lib/MINT-core/model/cui/gfx/button.rb +16 -0
- data/lib/MINT-core/model/cui/gfx/button.scxml +58 -0
- data/lib/MINT-core/model/cui/gfx/caroufredsel.rb +48 -0
- data/lib/MINT-core/model/cui/gfx/cic.scxml +57 -0
- data/lib/MINT-core/model/cui/gfx/cio.scxml +54 -0
- data/lib/MINT-core/model/cui/gfx/markableradiobutton.scxml +67 -0
- data/lib/MINT-core/model/cui/gfx/model.rb +39 -176
- data/lib/MINT-core/model/cui/gfx/radiobutton.scxml +59 -0
- data/lib/MINT-core/model/interactor.rb +167 -46
- data/lib/MINT-core/model/interactor.scxml +3 -0
- data/lib/MINT-core/model/interactor_helpers.rb +25 -0
- data/lib/MINT-core/model/ir/body/OneHandPoseNavigation.rb +15 -0
- data/lib/MINT-core/model/ir/body/body.rb +5 -0
- data/lib/MINT-core/model/ir/body/fingertip.rb +114 -0
- data/lib/MINT-core/model/ir/body/fingertip.scxml +43 -0
- data/lib/MINT-core/model/{body → ir/body}/gesture_button.rb +0 -0
- data/lib/MINT-core/model/ir/body/hand.rb +5 -0
- data/lib/MINT-core/model/ir/body/head.rb +102 -0
- data/lib/MINT-core/model/ir/body/head.scxml +92 -0
- data/lib/MINT-core/model/ir/body/onehandposenavigation.scxml +53 -0
- data/lib/MINT-core/model/ir/body/pose.rb +99 -0
- data/lib/MINT-core/model/ir/browserscreen.rb +27 -0
- data/lib/MINT-core/model/ir/browserscreen.scxml +14 -0
- data/lib/MINT-core/model/{device → ir}/button.rb +1 -1
- data/lib/MINT-core/model/ir/ir.rb +5 -0
- data/lib/MINT-core/model/ir/irmedia.rb +5 -0
- data/lib/MINT-core/model/ir/irmode.rb +5 -0
- data/lib/MINT-core/model/{device → ir}/joypad.rb +1 -1
- data/lib/MINT-core/model/ir/mouse.rb +44 -0
- data/lib/MINT-core/model/ir/mouse.scxml +35 -0
- data/lib/MINT-core/model/{device/mouse.rb → ir/mouse_old.rb} +2 -2
- data/lib/MINT-core/model/{device → ir}/pointer.rb +20 -22
- data/lib/MINT-core/model/ir/pointer.scxml +19 -0
- data/lib/MINT-core/model/ir/screen.rb +5 -0
- data/lib/MINT-core/model/{device → ir}/wheel.rb +1 -1
- data/lib/MINT-core/model/mim/aicommand_activate_to_button_press.xml +13 -0
- data/lib/MINT-core/model/mim/aicommand_deactivate_to_button_release.xml +13 -0
- data/lib/MINT-core/model/mim/aio_defocus_to_cio_unhighlight.xml +13 -0
- data/lib/MINT-core/model/mim/aio_focus_to_cio_highlight.xml +14 -0
- data/lib/MINT-core/model/mim/aio_present_to_cio_display.xml +14 -0
- data/lib/MINT-core/model/mim/aio_suspend_to_cio_hide.xml +13 -0
- data/lib/MINT-core/model/mim/aisinglechoice_present_to_child_present.xml +14 -0
- data/lib/MINT-core/model/mim/aisinglechoiceelement_chosen_to_radiobutton_select.xml +13 -0
- data/lib/MINT-core/model/mim/aisinglechoiceelement_unchosen_to_radiobutton_unselect.xml +13 -0
- data/lib/MINT-core/model/mim/aisinglepresence_children_finished_to_caroufredsel_init_js.xml +14 -0
- data/lib/MINT-core/model/mim/aisinglepresence_present_to_child_present.xml +15 -0
- data/lib/MINT-core/model/mim/browserscreen_reload_to_cuicontrol_refresh_all.xml +12 -0
- data/lib/MINT-core/model/mim/button_press_to_aicommand_activate.xml +12 -0
- data/lib/MINT-core/model/mim/button_release_to_aicommand_deactivate.xml +12 -0
- data/lib/MINT-core/model/mim/caroufredsel_refreshing_to_caroufredsel_init_js.xml +14 -0
- data/lib/MINT-core/model/mim/cio_display_to_aio_defocus.xml +13 -0
- data/lib/MINT-core/model/mim/cio_display_to_aio_present.xml +12 -0
- data/lib/MINT-core/model/mim/cio_display_to_cio_display_cache_add.xml +11 -0
- data/lib/MINT-core/model/mim/cio_hide_to_aio_suspend.xml +12 -0
- data/lib/MINT-core/model/mim/cio_hide_to_cio_display_cache_remove.xml +12 -0
- data/lib/MINT-core/model/mim/cio_highlight_to_aio_focus.xml +13 -0
- data/lib/MINT-core/model/mim/head_looking_left_to_aisinglepresence_prev.xml +14 -0
- data/lib/MINT-core/model/mim/head_looking_right_to_aisinglepresence_next.xml +15 -0
- data/lib/MINT-core/model/mim/head_nodding_to_aisinglepresence_next.xml +15 -0
- data/lib/MINT-core/model/mim/head_tilting_left_to_aisinglepresence_prev.xml +14 -0
- data/lib/MINT-core/model/mim/head_tilting_right_to_aisinglepresence_next.xml +15 -0
- data/lib/MINT-core/model/mim/left_button_aisinglepresence_enter.xml +15 -0
- data/lib/MINT-core/model/mim/left_button_aisinglepresence_next.xml +15 -0
- data/lib/MINT-core/model/mim/mim_default.xml +52 -0
- data/lib/MINT-core/model/mim/mint-mappings.xsd +127 -0
- data/lib/MINT-core/model/mim/mouse_press_to_aicommand_activate.xml +17 -0
- data/lib/MINT-core/model/mim/mouse_press_to_aisinglechoiceelement_choose.xml +17 -0
- data/lib/MINT-core/model/mim/mouse_press_to_aisinglechoiceelement_unchoose.xml +17 -0
- data/lib/MINT-core/model/mim/mouse_release_to_aicommand_deactivate.xml +16 -0
- data/lib/MINT-core/model/mim/mouse_stop_to_cio_highlight.xml +13 -0
- data/lib/MINT-core/model/mim/onehandposnav_confirm_to_aichoiceelement_choose.xml +14 -0
- data/lib/MINT-core/model/mim/onehandposnav_next_to_aio_next.xml +14 -0
- data/lib/MINT-core/model/mim/onehandposnav_previous_to_aio_prev.xml +14 -0
- data/lib/MINT-core/model/mim/radiobutton_selected_to_aisinglechoiceelement_choose.xml +13 -0
- data/lib/MINT-core/model/mim/radiobutton_unselected_to_aisinglechoiceelement_unchoose.xml +13 -0
- data/lib/MINT-core/model/mim/right_button_aisinglepresence_prev.xml +15 -0
- data/lib/MINT-core/model/task.rb +6 -6
- data/script/console +0 -0
- data/script/destroy +0 -0
- data/script/generate +0 -0
- data/spec/AICommand_spec.rb +20 -0
- data/spec/AIContainer_spec.rb +161 -0
- data/spec/AIINContinuous_spec.rb +92 -0
- data/spec/AIOUTContinuous_spec.rb +93 -0
- data/spec/AIO_spec.rb +73 -0
- data/spec/AIReference_spec.rb +105 -0
- data/spec/AISinglePresence_spec.rb +204 -60
- data/spec/Button_spec.rb +114 -0
- data/spec/CIO_spec.rb +145 -0
- data/spec/Interactor_spec.rb +95 -0
- data/spec/MappingManager_spec.rb +126 -0
- data/spec/Spontaneous_spec.rb +53 -0
- data/spec/aio_agent_spec.rb +215 -186
- data/spec/aisinglechoice_spec.rb +147 -88
- data/spec/aisinglechoiceelement_spec.rb +154 -70
- data/spec/complementary_mapping_spec.rb +158 -0
- data/spec/core_spec.rb +27 -15
- data/spec/cui_helper.rb +100 -0
- data/spec/examples/browserscreen_reload_to_cuicontrol_refresh_all.xml +12 -0
- data/spec/examples/mim_streaming_example.xml +9 -0
- data/spec/examples/mouse_highlight.xml +22 -0
- data/spec/examples/performance_mapping.xml +15 -0
- data/spec/examples/reset_click.xml +24 -0
- data/spec/interactor_test.scxml +32 -0
- data/spec/interactor_test_2.scxml +16 -0
- data/spec/mapping_performance_spec.rb +118 -0
- data/spec/mapping_server_spec.rb +161 -0
- data/spec/mapping_spec.rb +307 -0
- data/spec/music_spec.rb +301 -135
- data/spec/performance_counter.scxml +9 -0
- data/spec/sequential_mappings_spec.rb +69 -0
- data/spec/shared/aio_shared.rb +144 -0
- data/spec/spec_helper.rb +22 -3
- data/spec/spontaneous.scxml +11 -0
- data/spec/support/connection_helper.rb +19 -0
- data/spec/support/redis_connector_monkey_patch.rb +1 -0
- data/spec/support/statemachine_helper.rb +84 -0
- data/spec/sync_mappings_spec.rb +96 -0
- metadata +219 -354
- data/lib/MINT-core/mapping/complementary.rb +0 -100
- data/lib/MINT-core/mapping/on_state_change.rb +0 -65
- data/lib/MINT-core/model/aui/AIC.rb +0 -86
- data/lib/MINT-core/model/aui/AIChoice.rb +0 -65
- data/lib/MINT-core/model/aui/AIINChoose.rb +0 -54
- data/lib/MINT-core/model/aui/AIOUTDiscrete.rb +0 -43
- data/lib/MINT-core/model/aui/aic.png +0 -0
- data/lib/MINT-core/model/aui/aic.scxml +0 -50
- data/lib/MINT-core/model/aui/aichoice.png +0 -0
- data/lib/MINT-core/model/aui/aichoice.scxml +0 -60
- data/lib/MINT-core/model/aui/aio.png +0 -0
- data/lib/MINT-core/model/aui/aisinglechoiceelement.png +0 -0
- data/lib/MINT-core/model/aui/aisinglepresence.png +0 -0
- data/lib/MINT-core/model/body/handgesture.rb +0 -279
- data/lib/MINT-core/model/body/head.png +0 -0
- data/lib/MINT-core/model/body/head.rb +0 -51
- data/lib/MINT-core/model/body/head.scxml +0 -28
- data/lib/MINT-core/model/cui/gfx/screen.rb +0 -18
- data/lib/MINT-core/overrides/rinda.rb +0 -34
- data/spec/AIC_spec.rb +0 -69
- data/spec/MINT-core_spec.rb +0 -11
- data/spec/aio_spec.rb +0 -144
- data/spec/cio_spec.rb +0 -369
- data/tasks/rspec.rake +0 -21
data/Gemfile
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
source :rubygems
|
|
1
|
+
#source :rubygems
|
|
2
|
+
source :gemcutter
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
gem "
|
|
4
|
+
gem "dm-redis-adapter", :git => "git://github.com/sfeu/dm-redis-adapter.git", :branch => "test_natural_keys"
|
|
5
|
+
gem "MINT-statemachine", "~> 1.3.0"
|
|
6
|
+
gem "MINT-scxml", "~> 1.1.0"
|
|
7
|
+
gem "cassowary", "~> 1.0.1"
|
|
8
|
+
gem "dm-core","~>1.2.0"
|
|
9
|
+
gem "dm-serializer"
|
|
10
|
+
gem "eventmachine", "~> 0.12.10"
|
|
11
|
+
gem "rake", "= 0.9.2.2"
|
|
12
|
+
gem "rmagick", "~> 2.12.2"
|
|
13
|
+
gem "oj"
|
|
14
|
+
gem "newgem"
|
|
15
|
+
gem "multi_json"
|
|
16
|
+
gem "redis", "~> 2.2.1"
|
|
17
|
+
gem "dm-types","~>1.2.0"
|
|
18
|
+
gem "rspec","2.8.0"
|
|
19
|
+
gem "em-spec", "~> 0.2.5"
|
|
20
|
+
gem "em-hiredis", :git => "git://github.com/mloughran/em-hiredis.git", :branch => "experimental"
|
|
21
|
+
gem "hoe"
|
|
22
|
+
gem "perftools.rb"
|
|
23
|
+
# gemspec
|
data/Gemfile.lock
CHANGED
|
@@ -1,34 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
remote: .
|
|
1
|
+
GIT
|
|
2
|
+
remote: git://github.com/mloughran/em-hiredis.git
|
|
3
|
+
revision: f8ba04ba0a6e21b1d3ee78deed83380dc28dda22
|
|
4
|
+
branch: experimental
|
|
3
5
|
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
em-hiredis (0.1.0)
|
|
7
|
+
hiredis (~> 0.4.0)
|
|
8
|
+
|
|
9
|
+
GIT
|
|
10
|
+
remote: git://github.com/sfeu/dm-redis-adapter.git
|
|
11
|
+
revision: 9e0389ec61a73123b72d7a9be36ff5fc2b56bf65
|
|
12
|
+
branch: test_natural_keys
|
|
13
|
+
specs:
|
|
14
|
+
dm-redis-adapter (0.6.0)
|
|
15
|
+
dm-core (>= 1.2.0)
|
|
16
|
+
dm-types (>= 1.2.0)
|
|
17
|
+
hiredis (~> 0.4.0)
|
|
18
|
+
redis (~> 2.2)
|
|
8
19
|
|
|
9
20
|
GEM
|
|
10
21
|
remote: http://rubygems.org/
|
|
11
22
|
specs:
|
|
12
|
-
MINT-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
MINT-scxml (1.1.0)
|
|
24
|
+
MINT-statemachine (~> 1.3.0)
|
|
25
|
+
MINT-statemachine (1.3.0)
|
|
26
|
+
RedCloth (4.2.9)
|
|
27
|
+
activesupport (2.3.14)
|
|
28
|
+
addressable (2.2.8)
|
|
29
|
+
bacon (1.1.0)
|
|
30
|
+
bcrypt-ruby (3.0.1)
|
|
31
|
+
cassowary (1.0.1)
|
|
32
|
+
diff-lcs (1.1.3)
|
|
33
|
+
dm-core (1.2.0)
|
|
34
|
+
addressable (~> 2.2.6)
|
|
35
|
+
dm-serializer (1.2.2)
|
|
36
|
+
dm-core (~> 1.2.0)
|
|
37
|
+
fastercsv (~> 1.5)
|
|
38
|
+
json (~> 1.6)
|
|
39
|
+
json_pure (~> 1.6)
|
|
40
|
+
multi_json (~> 1.0)
|
|
41
|
+
dm-types (1.2.2)
|
|
42
|
+
bcrypt-ruby (~> 3.0)
|
|
43
|
+
dm-core (~> 1.2.0)
|
|
44
|
+
fastercsv (~> 1.5)
|
|
45
|
+
json (~> 1.6)
|
|
46
|
+
multi_json (~> 1.0)
|
|
47
|
+
stringex (~> 1.4)
|
|
48
|
+
uuidtools (~> 2.1)
|
|
49
|
+
em-spec (0.2.6)
|
|
50
|
+
bacon
|
|
51
|
+
eventmachine
|
|
52
|
+
rspec (> 2.6.0)
|
|
53
|
+
test-unit
|
|
54
|
+
eventmachine (0.12.10)
|
|
55
|
+
fastercsv (1.5.5)
|
|
56
|
+
hiredis (0.4.5)
|
|
57
|
+
hoe (3.3.0)
|
|
22
58
|
rake (~> 0.8)
|
|
23
|
-
json (1.5
|
|
59
|
+
json (1.7.5)
|
|
60
|
+
json_pure (1.7.5)
|
|
61
|
+
multi_json (1.3.6)
|
|
62
|
+
newgem (1.5.3)
|
|
63
|
+
RedCloth (>= 4.1.1)
|
|
64
|
+
activesupport (~> 2.3.4)
|
|
65
|
+
hoe (>= 2.4.0)
|
|
66
|
+
rubigen (>= 1.5.3)
|
|
67
|
+
syntax (>= 1.0.0)
|
|
68
|
+
oj (1.4.0)
|
|
69
|
+
perftools.rb (2.0.0)
|
|
24
70
|
rake (0.9.2.2)
|
|
25
|
-
|
|
26
|
-
|
|
71
|
+
redis (2.2.2)
|
|
72
|
+
rmagick (2.12.2)
|
|
73
|
+
rspec (2.8.0)
|
|
74
|
+
rspec-core (~> 2.8.0)
|
|
75
|
+
rspec-expectations (~> 2.8.0)
|
|
76
|
+
rspec-mocks (~> 2.8.0)
|
|
77
|
+
rspec-core (2.8.0)
|
|
78
|
+
rspec-expectations (2.8.0)
|
|
79
|
+
diff-lcs (~> 1.1.2)
|
|
80
|
+
rspec-mocks (2.8.0)
|
|
81
|
+
rubigen (1.5.8)
|
|
82
|
+
activesupport (>= 2.3.5, < 3.2.0)
|
|
83
|
+
stringex (1.4.0)
|
|
84
|
+
syntax (1.0.0)
|
|
85
|
+
test-unit (2.5.2)
|
|
86
|
+
uuidtools (2.1.3)
|
|
27
87
|
|
|
28
88
|
PLATFORMS
|
|
29
89
|
ruby
|
|
30
90
|
|
|
31
91
|
DEPENDENCIES
|
|
32
|
-
MINT-
|
|
33
|
-
|
|
34
|
-
|
|
92
|
+
MINT-scxml (~> 1.1.0)
|
|
93
|
+
MINT-statemachine (~> 1.3.0)
|
|
94
|
+
cassowary (~> 1.0.1)
|
|
95
|
+
dm-core (~> 1.2.0)
|
|
96
|
+
dm-redis-adapter!
|
|
97
|
+
dm-serializer
|
|
98
|
+
dm-types (~> 1.2.0)
|
|
99
|
+
em-hiredis!
|
|
100
|
+
em-spec (~> 0.2.5)
|
|
101
|
+
eventmachine (~> 0.12.10)
|
|
102
|
+
hoe
|
|
103
|
+
multi_json
|
|
104
|
+
newgem
|
|
105
|
+
oj
|
|
106
|
+
perftools.rb
|
|
107
|
+
rake (= 0.9.2.2)
|
|
108
|
+
redis (~> 2.2.1)
|
|
109
|
+
rmagick (~> 2.12.2)
|
|
110
|
+
rspec (= 2.8.0)
|
data/History.txt
CHANGED
|
@@ -1,3 +1,265 @@
|
|
|
1
|
+
=== 2.0.0 2012-11-21 MINT 2012 Framework version
|
|
2
|
+
|
|
3
|
+
* new interator_helpers module that collects common used utility functions used inside from state charts added
|
|
4
|
+
AIOUTContinuous feature to move to waiting if timeout occured (Sebastian Feuerstack)
|
|
5
|
+
* Changed to act as a server (Sebastian Feuerstack)
|
|
6
|
+
* code cleanups (Sebastian Feuerstack)
|
|
7
|
+
* new hightlighting caching (Sebastian Feuerstack)
|
|
8
|
+
* fixed net interactor get method (Sebastian Feuerstack)
|
|
9
|
+
* information for windows installation (Sebastian Feuerstack)
|
|
10
|
+
* new static get helper method to retrieve interactors from redis - changed nested
|
|
11
|
+
resfreshing and changed browser mapping (Sebastian Feuerstack)
|
|
12
|
+
* added automatic reconnect feature (Sebastian Feuerstack)
|
|
13
|
+
* changed to static getModel to improve observation performance (Sebastian Feuerstack)
|
|
14
|
+
* interactors use channel that includes interactor name to reduce observation overhead (Sebastian Feuerstack)
|
|
15
|
+
* switched to multijson and oj to parse json, 15% performance gain for mapping test (Sebastian Feuerstack)
|
|
16
|
+
* new performance test for mappings (Sebastian Feuerstack)
|
|
17
|
+
* sync highlight inside CUIcontrol instead of mapping (Sebastian Feuerstack)
|
|
18
|
+
* added error message (Sebastian Feuerstack)
|
|
19
|
+
* position updater no longer change x and y values (Sebastian Feuerstack)
|
|
20
|
+
* added fingertip (Sebastian Feuerstack)
|
|
21
|
+
* support for backend_action calls without parameters (Sebastian Feuerstack)
|
|
22
|
+
* added disconnect feature (Sebastian Feuerstack)
|
|
23
|
+
* moved ticker inside next and previous (Sebastian Feuerstack)
|
|
24
|
+
* removed mappings that make sync problems (Sebastian Feuerstack)
|
|
25
|
+
* new aiinrange interactor (Sebastian Feuerstack)
|
|
26
|
+
* added basic server to Handpose interactor (Sebastian Feuerstack)
|
|
27
|
+
* added onehandnav mappings (Sebastian Feuerstack)
|
|
28
|
+
* fixed problem: interactors derived from aireference were not part of navigation (Sebastian Feuerstack)
|
|
29
|
+
* test with double check value before sync to reduce dirty sync problem (Sebastian Feuerstack)
|
|
30
|
+
* AICommand and AIChoiceElement are now AIReferences since they can contain a nested label (Sebastian Feuerstack)
|
|
31
|
+
* references are not part of a sequential navigation (Sebastian Feuerstack)
|
|
32
|
+
* splitted browser refresh mapping into two mappings. Otherwise mapping would fail if no hidden interactors
|
|
33
|
+
could be found (Sebastian Feuerstack)
|
|
34
|
+
* fixed publish update method (Sebastian Feuerstack)
|
|
35
|
+
* fixed mapping to deactivate command on mouse release (Sebastian Feuerstack)
|
|
36
|
+
* new sync_states feature of interactor that uses retrieves current redis state to keep running interactor instances
|
|
37
|
+
up to date with external state changes (Sebastian Feuerstack)
|
|
38
|
+
* new mapping to refresh CarouFredSel on browser refresh fixed aisinglepresence mapping observation paths
|
|
39
|
+
and fixed bug in obervation that prevented to define observations without states (Sebastian Feuerstack)
|
|
40
|
+
* bugfix for crash if observation is defined with unknown interactor name (Sebastian Feuerstack)
|
|
41
|
+
* added head mappings (Sebastian Feuerstack)
|
|
42
|
+
* state is now optional for instant observations (Sebastian Feuerstack)
|
|
43
|
+
* added new refreshing state (Sebastian Feuerstack)
|
|
44
|
+
* suspend all function (Sebastian Feuerstack)
|
|
45
|
+
* no longer need to set a state filter in instant observation (Sebastian Feuerstack)
|
|
46
|
+
* further test to check for suspend forwarding for containers (Sebastian Feuerstack)
|
|
47
|
+
* changed to check for highlighted instead of displayed to reduce amount of unwanted matches (Sebastian Feuerstack)
|
|
48
|
+
* State is now optional for instant observations (Sebastian Feuerstack)
|
|
49
|
+
* fixed all remaining tests re-added label attribute to AIIN for backward compability (Sebastian Feuerstack)
|
|
50
|
+
* made adjustments to match latest specs fixed all tests (Sebastian Feuerstack)
|
|
51
|
+
* changes to match specs (Sebastian Feuerstack)
|
|
52
|
+
* changed to match specification (Sebastian Feuerstack)
|
|
53
|
+
* Merge remote-tracking branch 'origin/specification_cleanups' (Sebastian Feuerstack)
|
|
54
|
+
* update state names (Sebastian Feuerstack)
|
|
55
|
+
* code cleanups to match the specifications (Sebastian Feuerstack)
|
|
56
|
+
* prepared state machines for new spec version (Sebastian Feuerstack)
|
|
57
|
+
* added refresh capability and browser reload cleanups for handposture interactor (Sebastian Feuerstack)
|
|
58
|
+
* new browserscreen interactor to manage browser refresh
|
|
59
|
+
* inital handling of browser refresh by mapping and browserscreen interactor
|
|
60
|
+
* instant observations can retrieve more than one interactor if selection is done just by state name
|
|
61
|
+
* event_action can handle a list of interactors
|
|
62
|
+
* added test for list of interactors handling in event_action
|
|
63
|
+
* removed caroulfredselimage scxml as it is identical to cio added refreshing state for all cio
|
|
64
|
+
interactors (Sebastian Feuerstack)
|
|
65
|
+
* changed nose movements threshold (Sebastian Feuerstack)
|
|
66
|
+
* backend calls supports more than one parameter
|
|
67
|
+
* new head interactor that includes tcpip server and conditions in SCXML instead in ruby code
|
|
68
|
+
* bind actions support transformation function (xml format as well) (Sebastian Feuerstack)
|
|
69
|
+
* removed syncronization calls that are now handled by mappings (Sebastian Feuerstack)
|
|
70
|
+
* fixed transitions (Sebastian Feuerstack)
|
|
71
|
+
* fixed channel naming (Sebastian Feuerstack)
|
|
72
|
+
* added inital_js state (Sebastian Feuerstack)
|
|
73
|
+
* changed to sequential (Sebastian Feuerstack)
|
|
74
|
+
* new mappings to support list selection (Sebastian Feuerstack)
|
|
75
|
+
* removed synchronization calls that we implement as mappings separately
|
|
76
|
+
* changed listed to unchosen to be more clear (Sebastian Feuerstack)
|
|
77
|
+
* fixed bug for instant check without set name (Sebastian Feuerstack)
|
|
78
|
+
* new position updater that updates cio cache when displaying new interactors in browser
|
|
79
|
+
* adapted multi- and single choice manage display of their children as well
|
|
80
|
+
* added sync mappings between radiobuttons and aisinglechoice (Sebastian Feuerstack)
|
|
81
|
+
* outsourced radio button and radio button group to separate files (Sebastian Feuerstack)
|
|
82
|
+
* changed devlaut settings new init_js method (Sebastian Feuerstack)
|
|
83
|
+
* fixed next/prev navigation usinga ctive_child repaired test spec (Sebastian Feuerstack)
|
|
84
|
+
* add check to ensure that at least one child is displaying (Sebastian Feuerstack)
|
|
85
|
+
* add publish of depends (Sebastian Feuerstack)
|
|
86
|
+
* new cache mappings (Sebastian Feuerstack)
|
|
87
|
+
* removed cuicontrol2 and added scxmlserver + client (Sebastian Feuerstack)
|
|
88
|
+
* more detailed information in callback (Sebastian Feuerstack)
|
|
89
|
+
* added function to retrieve all mappings (Sebastian Feuerstack)
|
|
90
|
+
* added action states to inform about general success of a set of actions (Sebastian Feuerstack)
|
|
91
|
+
* refactoring (Sebastian Feuerstack)
|
|
92
|
+
* new sxcml client and server for lucas (Sebastian Feuerstack)
|
|
93
|
+
* added caching and aisinglepresence mappings to default mapping set (Sebastian Feuerstack)
|
|
94
|
+
* new wait_for children approach (Sebastian Feuerstack)
|
|
95
|
+
* added resturn statements to inform mapping about action success (Sebastian Feuerstack)
|
|
96
|
+
* suspend others method used in singleprecence interactor (Sebastian Feuerstack)
|
|
97
|
+
* publish highlightable attribute to be used in cache mapping (Sebastian Feuerstack)
|
|
98
|
+
* new caroufedsel scxml refactored caroufredsel to separate file (Sebastian Feuerstack)
|
|
99
|
+
* support for nested selector (Sebastian Feuerstack)
|
|
100
|
+
* improved readme (Sebastian Feuerstack)
|
|
101
|
+
* publish only selected attributes to prevent cycles (Sebastian Feuerstack)
|
|
102
|
+
* implemented filtering (Sebastian Feuerstack)
|
|
103
|
+
* moved id to absrtract action class (Sebastian Feuerstack)
|
|
104
|
+
* changed scxml on_enter calls to work with using mappings (Sebastian Feuerstack)
|
|
105
|
+
* new caroufedsel scxml
|
|
106
|
+
* refactored caroufredsel to separate file (Sebastian Feuerstack)
|
|
107
|
+
* enhanced xsd to add process and observation type with restrictions fixed mappings (Sebastian Feuerstack)
|
|
108
|
+
* fixed mapping server to have default host and port
|
|
109
|
+
* fixed mapping server to support an initial mapping_manager (Sebastian Feuerstack)
|
|
110
|
+
* enhanced installation doc (Sebastian Feuerstack)
|
|
111
|
+
* substituted puts with callbacks (reverse-merged from commit 19534aa2812a2257e1f6f705804cf5b64a03587e)
|
|
112
|
+
(Sebastian Feuerstack)
|
|
113
|
+
* changed loading path to be relative from mapping manager path file (Sebastian Feuerstack)
|
|
114
|
+
* mapping manager default mappings (Sebastian Feuerstack)
|
|
115
|
+
* fixed mapping names (Sebastian Feuerstack)
|
|
116
|
+
* changed channel naming to use specifc channel for communication with browser added flag to ensure
|
|
117
|
+
bind_action only subscribes once (Sebastian Feuerstack)
|
|
118
|
+
* added onchange flag (Sebastian Feuerstack)
|
|
119
|
+
* further default mappings (Sebastian Feuerstack)
|
|
120
|
+
* changed channel name (Sebastian Feuerstack)
|
|
121
|
+
* added new aicommand spec based on aio_spec added xml-based sync mappings to button_spec (Sebastian Feuerstack)
|
|
122
|
+
* added more sync mappings (Sebastian Feuerstack)
|
|
123
|
+
* improved mapping parser to consider sequential mappings and negation observations
|
|
124
|
+
* added first aio sync mappings in xml tested sync mapping xml with spec (Sebastian Feuerstack)
|
|
125
|
+
* started refactoring out specs to shared AIO spec (Sebastian Feuerstack)
|
|
126
|
+
* changed data retrival channel to not interfere with state change observation (Sebastian Feuerstack)
|
|
127
|
+
* introduced helper that can handle several interactors at the same time (Sebastian Feuerstack)
|
|
128
|
+
* changed to use onchange instead of continuous (Sebastian Feuerstack)
|
|
129
|
+
* introduced inheritance for sync mappings by adding pattern query for observation subscriptions
|
|
130
|
+
* fixed tests to support the restart using the process attributes (Sebastian Feuerstack)
|
|
131
|
+
* introduced clean restart following the process attribute (Sebastian Feuerstack)
|
|
132
|
+
* removed sync calls from scxml added mapping for button <> AICommand sync (Sebastian Feuerstack)
|
|
133
|
+
* fixed aireference test (Sebastian Feuerstack)
|
|
134
|
+
* changed bindaction to support new pubsub client api (Sebastian Feuerstack)
|
|
135
|
+
* changed mouse interactor to new pubsub client (Sebastian Feuerstack)
|
|
136
|
+
* applied fiber handling to AIINContinuous as well removed all sync calls from scxml fixed spec (Sebastian Feuerstack)
|
|
137
|
+
* fixed spec first use of fibers to sync async code execution removed sync calls from scxml (Sebastian Feuerstack)
|
|
138
|
+
* refactored connection helper fixed further specs to support new hiredis pubsub client (Sebastian Feuerstack)
|
|
139
|
+
* redisconnector needs to be restarted for each test for the subscription mechanism to work correctly
|
|
140
|
+
(Sebastian Feuerstack)
|
|
141
|
+
* got sync mappings to work
|
|
142
|
+
* outsourced mapping sync test into separate file
|
|
143
|
+
* changed to used a continuous subscription for observations that just ignore changes if observation has been stopped.
|
|
144
|
+
* switched to new em-hiredis pubsub client (Sebastian Feuerstack)
|
|
145
|
+
* new test helper to consider specific name and call callback if mapping finished to do further checks
|
|
146
|
+
(Sebastian Feuerstack)
|
|
147
|
+
* fixed bug with zombie subscription callbacks (Sebastian Feuerstack)
|
|
148
|
+
* fixed unneeded un-subscription (Sebastian Feuerstack)
|
|
149
|
+
* added fail case for observation to restart mapping
|
|
150
|
+
* removed logging print statements from mappings, callback can be used for logging
|
|
151
|
+
* added process flag to distinguish between onchange, continuous, and instant observations (Sebastian Feuerstack)
|
|
152
|
+
* CIO display to AIO presenting sync mapping test (Sebastian Feuerstack)
|
|
153
|
+
* added negation observation
|
|
154
|
+
* added initial support to use selector in observation name using dot notation
|
|
155
|
+
* first test to proof sync mapping removed sync display->presented from cio interactor (Sebastian Feuerstack)
|
|
156
|
+
* Sequential Mapping with primary test (Sebastian Feuerstack)
|
|
157
|
+
* added test for non-continuous observation (Sebastian Feuerstack)
|
|
158
|
+
* added test to check restart of mapping with continuous observation (Sebastian Feuerstack)
|
|
159
|
+
* refactored mapping handling fixed notification (Sebastian Feuerstack)
|
|
160
|
+
* substituted puts with callbacks (jcolnago)
|
|
161
|
+
* renamed mappingsparser to mapping_parser and moved to MINT-core (Sebastian Feuerstack)
|
|
162
|
+
* added test for spontaneous transition from inital state (Sebastian Feuerstack)
|
|
163
|
+
* moved mapping manager to new folder
|
|
164
|
+
* added initial mapping tcpip server
|
|
165
|
+
* added initial mapping server test (Sebastian Feuerstack)
|
|
166
|
+
* bugfix for other mappings that did not wait for done
|
|
167
|
+
* added timeout to ensure that a waiting example fails after waiting more than 3 seconds (Sebastian Feuerstack)
|
|
168
|
+
* added mapping_manager class (jcolnago)
|
|
169
|
+
* new cui elements that are used in music sheet (Sebastian Feuerstack)
|
|
170
|
+
* support to specify dependencies to define display order (Sebastian Feuerstack)
|
|
171
|
+
* inital test for mapping manager (Sebastian Feuerstack)
|
|
172
|
+
* added id to actions, observation and complementary_mapping (jcolnago)
|
|
173
|
+
* fixed drag and drop handling between choices (Sebastian Feuerstack)
|
|
174
|
+
* fixed complementary mapping spec (Sebastian Feuerstack)
|
|
175
|
+
* added spec for AIINContinuous (Sebastian Feuerstack)
|
|
176
|
+
* added tests for other mapping actions. (jcolnago)
|
|
177
|
+
* fixed CIO_spec (jcolnago)
|
|
178
|
+
* added head interactor to lib (Sebastian Feuerstack)
|
|
179
|
+
* Added exemplary mapping test (Sebastian Feuerstack)
|
|
180
|
+
* fixed AIOUTContinuous (Sebastian Feuerstack)
|
|
181
|
+
* Added timer for rspec to fail if expected state change does not occur (Sebastian Feuerstack)
|
|
182
|
+
* button test (Sebastian Feuerstack)
|
|
183
|
+
* fixed interactors to get slider/volume exampĺe to work (Sebastian Feuerstack)
|
|
184
|
+
* updated music_spec to new type of test (jcolnago)
|
|
185
|
+
* added test to check if abstract states are correct after entering and leaving parallel states (jcolnago)
|
|
186
|
+
* new aimultichoice sxcml (Sebastian Feuerstack)
|
|
187
|
+
* new head IR (Sebastian Feuerstack)
|
|
188
|
+
* Statemachine updates (jcolnago)
|
|
189
|
+
* basic interactor scxml (Sebastian Feuerstack)
|
|
190
|
+
* changed consume variable (Sebastian Feuerstack)
|
|
191
|
+
* consider highlighable feature for caching (Sebastian Feuerstack)
|
|
192
|
+
* interactor publishes initialize state upon creation (Sebastian Feuerstack)
|
|
193
|
+
* added right mouse button (Sebastian Feuerstack)
|
|
194
|
+
* added support for generic observations that do not refer to a specific interactor instance using
|
|
195
|
+
name property (Sebastian Feuerstack)
|
|
196
|
+
* introduced highlightable property added missing hide transition (Sebastian Feuerstack)
|
|
197
|
+
* added selector feature (Sebastian Feuerstack)
|
|
198
|
+
* removed ruby state machine (Sebastian Feuerstack)
|
|
199
|
+
* fixed failing test for navigation to parents (Sebastian Feuerstack)
|
|
200
|
+
* removed parallel state that should handle updates (Sebastian Feuerstack)
|
|
201
|
+
* fixed AISinglePresence + specs (Sebastian Feuerstack)
|
|
202
|
+
* extended spec (Sebastian Feuerstack)
|
|
203
|
+
* refactoring: initialize_statemachien function no longer needs to be overwritten
|
|
204
|
+
instead just getSCXML function needs to be overwritten to set the corerct scxml name
|
|
205
|
+
* added interactor spec (Sebastian Feuerstack)
|
|
206
|
+
* fixed aireference, specs are working but still one test fails (Sebastian Feuerstack)
|
|
207
|
+
* changed dependencies hiredis, em-hiredis, dm-serializer requires updated
|
|
208
|
+
dm-redis-adapter project!! (Sebastian Feuerstack)
|
|
209
|
+
* Merged and deleted aui_jessica files (jcolnago)
|
|
210
|
+
* added basic multichoice scxml added to_string methods for navigation fields for debugger
|
|
211
|
+
got navigation tests back working (Sebastian Feuerstack)
|
|
212
|
+
* refactoring: renamed typo Continous->Continuous (Sebastian Feuerstack)
|
|
213
|
+
* refactoring renamed AIC to AIContainer (Sebastian Feuerstack)
|
|
214
|
+
* refactored interaction resources to new structure (Sebastian Feuerstack)
|
|
215
|
+
* reintroduced navigation options for CIO got CIO spec working without errors (Sebastian Feuerstack)
|
|
216
|
+
* moved all new MINT2 interactors to MINT aui folder fixed broken navigation for AIO and AIC
|
|
217
|
+
* All tests for AIO and AIC interactor are working (Sebastian Feuerstack)
|
|
218
|
+
* refactored: basic Element class is now named Interactor
|
|
219
|
+
* removed old mappings organized new mappings into several folders: action,observation and mapping (Sebastian Feuerstack)
|
|
220
|
+
* updated installation instructions (Sebastian Feuerstack)
|
|
221
|
+
* new aireference scxml new option to activate publish event testing in spec helper (Sebastian Feuerstack)
|
|
222
|
+
* continuous flag for observations mappings can be named fixed button activate bug (Sebastian Feuerstack)
|
|
223
|
+
* changes for AIReference (jcolnago)
|
|
224
|
+
* removed uncessary files and added aireference (jcolnago)
|
|
225
|
+
* Removed AIChoice dependencies (jcolnago)
|
|
226
|
+
* Removed AIChoice (jcolnago)
|
|
227
|
+
* added capability to publish updates on data attribute changes (Sebastian Feuerstack)
|
|
228
|
+
* added mouse interactor added button / aicommand interactor new event_action (Sebastian Feuerstack)
|
|
229
|
+
* added missing min/max states (Sebastian Feuerstack)
|
|
230
|
+
* added mouse IR and changed pointer to mouse added hoe to gemfile (Sebastian Feuerstack)
|
|
231
|
+
* using statemachine files that I can alter (jcolnago)
|
|
232
|
+
* got new jquery based slider and progressbar working with mapping (Sebastian Feuerstack)
|
|
233
|
+
* drag n drop working. (jcolnago)
|
|
234
|
+
* added aisinglechoice scxml (jcolnago)
|
|
235
|
+
* added pointer interactor
|
|
236
|
+
* new action class cuicontrol works with redis
|
|
237
|
+
* commented out all navigation features because of trouble with redis adapter (Sebastian Feuerstack)
|
|
238
|
+
* change specs to use redis adapter fixed problem that prevents finishing a test example (Sebastian Feuerstack)
|
|
239
|
+
* added basic AIReference class structure added basic AIReference spec (Sebastian Feuerstack)
|
|
240
|
+
* added new CIO model added property to inicate model type (Sebastian Feuerstack)
|
|
241
|
+
* added check upon initialization (Sebastian Feuerstack)
|
|
242
|
+
* script and other small fixes (jcolnago)
|
|
243
|
+
* fixed to get it working with MINT-nodejs (Sebastian Feuerstack)
|
|
244
|
+
* got test to for continous mapping between slider and volume level gauge working (Sebastian Feuerstack)
|
|
245
|
+
* abstracted redis connection to connector class as singleton first experiments to get a continous mapping running (Sebastian Feuerstack)
|
|
246
|
+
* removed images (jcolnago)
|
|
247
|
+
* added AIINContinous and got it working (Sebastian Feuerstack)
|
|
248
|
+
* AIoutcontinuous forwards data updates to webpage (Sebastian Feuerstack)
|
|
249
|
+
* switched to hires - all AIOUTContinous tests seem to work (Sebastian Feuerstack)
|
|
250
|
+
* switched AIOUTContinous to eventmchine
|
|
251
|
+
* added em-spec library for testing em based AIOUTContinous (Sebastian Feuerstack)
|
|
252
|
+
* first experiments with aio and AIC connections left/right navigation still is a problem (Sebastian Feuerstack)
|
|
253
|
+
* changed to MINT2
|
|
254
|
+
* changed to Gemfile
|
|
255
|
+
* introduced new associations that enables prev;next to work with AIO - parent of
|
|
256
|
+
AIC still is not working (Sebastian Feuerstack)
|
|
257
|
+
* first publish/subscribe support that ends up the cui agent to do the layout calculation (therafter it crashes)
|
|
258
|
+
* added attribute publish limitation function inside interactors, because the to_json serializer
|
|
259
|
+
has problems with CIO objects (Sebastian Feuerstack)
|
|
260
|
+
* first test to switch to redis (Sebastian Feuerstack)
|
|
261
|
+
* fixed bug in installation instructions (Sebastian Feuerstack)
|
|
262
|
+
|
|
1
263
|
=== 1.0.1 2011-11-09
|
|
2
264
|
|
|
3
265
|
* Included all dependencies stored in Gemfile into the Rakefile / gemspec
|
data/LICENSE
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
The MINT framework is developed by Sebastian Feuerstack Copyright (C)
|
|
2
|
+
2010, 2011, 2012 Sebastian Feuerstack
|
|
3
|
+
|
|
4
|
+
This program is free software; you can redistribute it and/or modify
|
|
5
|
+
it under the terms of the GNU Affero General Public License version 3
|
|
6
|
+
as published by the Free Software Foundation.
|
|
7
|
+
|
|
8
|
+
This program is distributed in the hope that it will be useful, but
|
|
9
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
11
|
+
General Public License for more details.
|
|
12
|
+
|
|
13
|
+
You should have received a copy of the GNU Affero General Public
|
|
14
|
+
License along with this program; if not, see
|
|
15
|
+
http://www.gnu.org/licenses or write to the Free Software Foundation,
|
|
16
|
+
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
17
|
+
|
|
18
|
+
You can contact Sebastian Feuerstack using the contact formular on his
|
|
19
|
+
homepage http://www.feuerstack.org.
|
|
20
|
+
|
|
21
|
+
The modified source and object code versions of this program must
|
|
22
|
+
display Appropriate Legal Notices, as required under Section 5 of the
|
|
23
|
+
GNU Affero General Public License version 3.
|
|
24
|
+
|
|
25
|
+
In accordance with Section 7(b) of the GNU Affero General Public
|
|
26
|
+
License version 3, these Appropriate Legal Notices must retain the
|
|
27
|
+
display of the "Powered by MINT Framework" logo. If the display of
|
|
28
|
+
the logo is not reasonably feasible for technical reasons, the
|
|
29
|
+
Appropriate Legal Notices must display the words "Powered by the
|
|
30
|
+
MINT Framework".
|