whowish_word 0.3.1 → 0.3.2

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.
Files changed (78) hide show
  1. data/.gitignore +5 -5
  2. data/.loadpath +5 -5
  3. data/.project +18 -17
  4. data/Gemfile +2 -2
  5. data/HOW_TO_BUILD_WHOWISH_HOOK.md +9 -9
  6. data/ISSUE.md +93 -93
  7. data/README.md +208 -208
  8. data/lib/whowish_word/action_controller/base.rb +44 -44
  9. data/lib/whowish_word/action_mailer/base.rb +11 -11
  10. data/lib/whowish_word/action_view/base.rb +70 -70
  11. data/lib/whowish_word/action_view/template.rb +30 -30
  12. data/lib/whowish_word/authentication.rb +13 -13
  13. data/lib/whowish_word/config.rb +21 -21
  14. data/lib/whowish_word/constant.rb +8 -8
  15. data/lib/whowish_word/db_migration/active_record/whowish_word_html.rb +14 -14
  16. data/lib/whowish_word/db_migration/mongoid/whowish_word_html.rb +5 -5
  17. data/lib/whowish_word/initializer.rb +52 -52
  18. data/lib/whowish_word/rails/app/controllers/whowish_word_controller.rb +60 -60
  19. data/lib/whowish_word/rails/app/models/active_record/whowish_word_html.rb +3 -3
  20. data/lib/whowish_word/rails/app/models/mongoid/whowish_word_html.rb +8 -8
  21. data/lib/whowish_word/rails/public/javascripts/0_jquery-1.6.4-whowish_word.js +9046 -9046
  22. data/lib/whowish_word/rails/public/javascripts/1_csrf_token_hook.js +9 -9
  23. data/lib/whowish_word/rails/public/javascripts/1_jquery.loading_button.js +66 -66
  24. data/lib/whowish_word/rails/public/javascripts/2_whowish_word_variables.js +33 -33
  25. data/lib/whowish_word/rails/public/javascripts/3_whowish_word_dialog.js +136 -136
  26. data/lib/whowish_word/rails/public/javascripts/3_whowish_word_helper.js +116 -116
  27. data/lib/whowish_word/rails/public/javascripts/4_whowish_word_creator.js +69 -69
  28. data/lib/whowish_word/whowish_word.rb +41 -41
  29. data/lib/whowish_word/word_for.rb +93 -93
  30. data/rails/Gemfile +18 -18
  31. data/rails/Gemfile.lock +63 -64
  32. data/rails/app/controllers/application_controller.rb +22 -22
  33. data/rails/app/controllers/home_controller.rb +8 -8
  34. data/rails/app/views/home/index.html.erb +109 -109
  35. data/rails/app/views/home/static_edit.html.erb +50 -50
  36. data/rails/app/views/home/static_edit_select.html.erb +8 -8
  37. data/rails/app/views/integration/attr.html.erb +1 -1
  38. data/rails/app/views/integration/index.html.erb +1 -1
  39. data/rails/app/views/integration/select.html.erb +3 -3
  40. data/rails/app/views/integration/value.html.erb +1 -1
  41. data/rails/app/views/layouts/integration.html.erb +14 -14
  42. data/rails/app/views/layouts/main.html.erb +13 -13
  43. data/rails/app/views/layouts/nested_test_word_for.html.erb +17 -17
  44. data/rails/app/views/layouts/test_javascript.html.erb +13 -13
  45. data/rails/app/views/layouts/test_word_for.html.erb +24 -24
  46. data/rails/app/views/test_javascript/change_value.html.erb +32 -32
  47. data/rails/app/views/test_javascript/index.html.erb +87 -87
  48. data/rails/app/views/test_javascript/replace_with_html.html.erb +96 -96
  49. data/rails/app/views/test_word_for/_partial.html.erb +4 -4
  50. data/rails/app/views/test_word_for/index.html.erb +8 -8
  51. data/rails/config/application.rb +30 -30
  52. data/rails/config/boot.rb +9 -9
  53. data/rails/config/database.yml +24 -24
  54. data/rails/config/environment.rb +16 -16
  55. data/rails/config/initializers/whowish_word.rb +3 -3
  56. data/rails/config/mongoid.rb +6 -6
  57. data/rails/config/mongoid.yml +14 -14
  58. data/rails/config/routes.rb +7 -7
  59. data/rails/config.ru +4 -4
  60. data/rails/log/.gitignore +1 -1
  61. data/rails/mongo.bat +4 -4
  62. data/rails/public/javascripts/jquery.loading_button.js +72 -72
  63. data/rails/public/test/jquery_version.html +26 -26
  64. data/rails/script/rails +6 -6
  65. data/rails/spec/controllers/whowish_word_controller_spec.rb +55 -55
  66. data/rails/spec/integration/whowish_word_generator_spec.rb +139 -139
  67. data/rails/spec/integration/whowish_word_spec.rb +116 -116
  68. data/rails/spec/spec_helper.rb +34 -36
  69. data/rails/spec/support/browser.rb +193 -193
  70. data/rails/spec/support/json_rspec_helper.rb +8 -8
  71. data/rails/spec/support/mongoid_helper.rb +9 -9
  72. data/spec/spec_helper.rb +17 -19
  73. data/spec/unit/word_for_attr_in_edit_mode_spec.rb +43 -43
  74. data/spec/unit/word_for_attr_spec.rb +43 -43
  75. data/spec/unit/word_for_in_edit_mode_spec.rb +43 -43
  76. data/spec/unit/word_for_spec.rb +43 -43
  77. data/whowish_word.gemspec +21 -21
  78. metadata +73 -4
data/.gitignore CHANGED
@@ -1,6 +1,6 @@
1
-
2
- /Gemfile.lock
3
- spec/rails/tmp/*
4
- *.gem
5
- rails/db/*.sqlite3
1
+
2
+ /Gemfile.lock
3
+ spec/rails/tmp/*
4
+ *.gem
5
+ rails/db/*.sqlite3
6
6
  rails/tmp/*
data/.loadpath CHANGED
@@ -1,5 +1,5 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <loadpath>
3
- <pathentry path="" type="src"/>
4
- <pathentry path="org.rubypeople.rdt.launching.RUBY_CONTAINER" type="con"/>
5
- </loadpath>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <loadpath>
3
+ <pathentry path="" type="src"/>
4
+ <pathentry path="org.rubypeople.rdt.launching.RUBY_CONTAINER" type="con"/>
5
+ </loadpath>
data/.project CHANGED
@@ -1,17 +1,18 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <projectDescription>
3
- <name>whowish_word</name>
4
- <comment></comment>
5
- <projects>
6
- </projects>
7
- <buildSpec>
8
- <buildCommand>
9
- <name>org.rubypeople.rdt.core.rubybuilder</name>
10
- <arguments>
11
- </arguments>
12
- </buildCommand>
13
- </buildSpec>
14
- <natures>
15
- <nature>org.rubypeople.rdt.core.rubynature</nature>
16
- </natures>
17
- </projectDescription>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>whowish_word</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.rubypeople.rdt.core.rubybuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>com.aptana.ruby.core.rubynature</nature>
16
+ <nature>org.rubypeople.rdt.core.rubynature</nature>
17
+ </natures>
18
+ </projectDescription>
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source 'http://rubygems.org'
2
-
1
+ source 'http://rubygems.org'
2
+
3
3
  gem 'rspec'
@@ -1,10 +1,10 @@
1
- Process to discover where to put the hook
2
- --------------------------------------------
3
-
4
- In a view, please a try-catch block and print all traces.
5
-
6
- Do this in:
7
- 1. layout
8
- 2. normal view
9
- 3. partial
1
+ Process to discover where to put the hook
2
+ --------------------------------------------
3
+
4
+ In a view, please a try-catch block and print all traces.
5
+
6
+ Do this in:
7
+ 1. layout
8
+ 2. normal view
9
+ 3. partial
10
10
  4. nested layout
data/ISSUE.md CHANGED
@@ -1,93 +1,93 @@
1
- Current issues
2
- ==================
3
-
4
-
5
-
6
- Support different database engine
7
- -------------------------------------------------
8
-
9
- It is painful to use WhowishWord on different database (MySQL, PostgreSQL, MongoDB, Redis, ...).
10
-
11
- Here is a cycle for a database
12
-
13
- - Initialize structure
14
- - Save migration version
15
- - Rails uses it
16
- - Do another migration
17
- - Save the new version
18
-
19
- There must be a better way that:
20
- - lets user configure easily
21
- - does not depend on 3rd library (No ORM. Really? Should we do that?)
22
- - ActiveRecord is ok
23
- - Mongoid is not, because it is not a standard
24
- -
25
-
26
- ### Solution
27
-
28
- Just Support them directly...
29
-
30
-
31
- ### (Not good) Solution
32
-
33
- Use SQLite instead.
34
- However, this poses another problem. SQLite cannot be run on Cloud service, e.g. Heroku.
35
-
36
-
37
-
38
-
39
-
40
- A way to activate edit mode (Solved!)
41
- -------------------------------------------------
42
-
43
- It should be activate-able inside Rails application, e.g. a call to WhowishWord.activate_edit_mode.
44
- We let user manage its own session.
45
-
46
- The thing to look out is that we have to be careful about using a global variable within WhowishWord gem
47
- because it is shared among users....
48
-
49
- ### Solution
50
-
51
- Create a single point of activating an edit mode, WhowishWord.activate_edit_mode()
52
-
53
-
54
-
55
- Javascript text issue (Solved!)
56
- ----------------------
57
-
58
- Javascript text being enclosed with single-quotes causes an error
59
- (Even if we'd change to double-quotes enclosing, there would still be a problem)
60
-
61
-
62
- ### Solution 1
63
-
64
- User is responsible to make sure that all quotes are escaped.
65
-
66
- Input text attributes (Solved!)
67
- ----------------------
68
-
69
- In edit mode, we cannot add edit icon next to the element, which owns the attribute.
70
-
71
- ### Solution
72
-
73
- Use javascript to add the edit icon.
74
-
75
- 1. Generate a unique text in the attribute
76
- 2. Get the element by searching for the unique text
77
- 3. Replace text with a whowish word
78
- 4. Add edit icon to the element
79
-
80
- When getting an element, we have to store the element and the attribute's name in a hash for future use.
81
- This is because the element might not have its own ID.
82
-
83
-
84
- Select box options (Solved!)
85
- ---------------------
86
-
87
- In edit mode, we cannot edit whowish word in option's value and option's text
88
-
89
- ### Solution
90
-
91
- Use javascript to generate edit icon
92
-
93
-
1
+ Current issues
2
+ ==================
3
+
4
+
5
+
6
+ Support different database engine
7
+ -------------------------------------------------
8
+
9
+ It is painful to use WhowishWord on different database (MySQL, PostgreSQL, MongoDB, Redis, ...).
10
+
11
+ Here is a cycle for a database
12
+
13
+ - Initialize structure
14
+ - Save migration version
15
+ - Rails uses it
16
+ - Do another migration
17
+ - Save the new version
18
+
19
+ There must be a better way that:
20
+ - lets user configure easily
21
+ - does not depend on 3rd library (No ORM. Really? Should we do that?)
22
+ - ActiveRecord is ok
23
+ - Mongoid is not, because it is not a standard
24
+ -
25
+
26
+ ### Solution
27
+
28
+ Just Support them directly...
29
+
30
+
31
+ ### (Not good) Solution
32
+
33
+ Use SQLite instead.
34
+ However, this poses another problem. SQLite cannot be run on Cloud service, e.g. Heroku.
35
+
36
+
37
+
38
+
39
+
40
+ A way to activate edit mode (Solved!)
41
+ -------------------------------------------------
42
+
43
+ It should be activate-able inside Rails application, e.g. a call to WhowishWord.activate_edit_mode.
44
+ We let user manage its own session.
45
+
46
+ The thing to look out is that we have to be careful about using a global variable within WhowishWord gem
47
+ because it is shared among users....
48
+
49
+ ### Solution
50
+
51
+ Create a single point of activating an edit mode, WhowishWord.activate_edit_mode()
52
+
53
+
54
+
55
+ Javascript text issue (Solved!)
56
+ ----------------------
57
+
58
+ Javascript text being enclosed with single-quotes causes an error
59
+ (Even if we'd change to double-quotes enclosing, there would still be a problem)
60
+
61
+
62
+ ### Solution 1
63
+
64
+ User is responsible to make sure that all quotes are escaped.
65
+
66
+ Input text attributes (Solved!)
67
+ ----------------------
68
+
69
+ In edit mode, we cannot add edit icon next to the element, which owns the attribute.
70
+
71
+ ### Solution
72
+
73
+ Use javascript to add the edit icon.
74
+
75
+ 1. Generate a unique text in the attribute
76
+ 2. Get the element by searching for the unique text
77
+ 3. Replace text with a whowish word
78
+ 4. Add edit icon to the element
79
+
80
+ When getting an element, we have to store the element and the attribute's name in a hash for future use.
81
+ This is because the element might not have its own ID.
82
+
83
+
84
+ Select box options (Solved!)
85
+ ---------------------
86
+
87
+ In edit mode, we cannot edit whowish word in option's value and option's text
88
+
89
+ ### Solution
90
+
91
+ Use javascript to generate edit icon
92
+
93
+