motion-prime 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +8 -8
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile.lock +6 -6
  4. data/README.md +1 -10
  5. data/Rakefile +0 -1
  6. data/app/app_delegate.rb +1 -1
  7. data/bin/prime +1 -1
  8. data/files/Gemfile +1 -1
  9. data/motion-prime/api_client.rb +87 -31
  10. data/motion-prime/config/base.rb +20 -11
  11. data/motion-prime/config/config.rb +9 -3
  12. data/motion-prime/core_ext/kernel.rb +2 -1
  13. data/motion-prime/core_ext/nil_class.rb +5 -0
  14. data/motion-prime/delegate/app_delegate.rb +5 -0
  15. data/motion-prime/elements/base_element.rb +21 -2
  16. data/motion-prime/elements/draw.rb +6 -16
  17. data/motion-prime/helpers/has_authorization.rb +1 -1
  18. data/motion-prime/models/_base_mixin.rb +1 -1
  19. data/motion-prime/prime.rb +4 -0
  20. data/motion-prime/screens/extensions/_indicators_mixin.rb +16 -10
  21. data/motion-prime/screens/screen.rb +1 -1
  22. data/motion-prime/sections/_async_table_mixin.rb +1 -2
  23. data/motion-prime/sections/_draw_section_mixin.rb +3 -1
  24. data/motion-prime/sections/base_section.rb +37 -26
  25. data/motion-prime/sections/form.rb +23 -8
  26. data/motion-prime/sections/form/base_field_section.rb +1 -15
  27. data/motion-prime/sections/form/date_field_section.rb +1 -1
  28. data/motion-prime/sections/form/password_field_section.rb +1 -1
  29. data/motion-prime/sections/form/select_field_section.rb +1 -1
  30. data/motion-prime/sections/form/string_field_section.rb +1 -1
  31. data/motion-prime/sections/form/submit_field_section.rb +1 -1
  32. data/motion-prime/sections/form/text_field_section.rb +1 -1
  33. data/motion-prime/sections/table.rb +58 -27
  34. data/motion-prime/sections/table/refresh_mixin.rb +1 -1
  35. data/motion-prime/services/logger.rb +60 -21
  36. data/motion-prime/support/consts.rb +11 -0
  37. data/motion-prime/version.rb +1 -1
  38. data/motion-prime/views/layout.rb +5 -4
  39. data/motion-prime/views/view_styler.rb +3 -0
  40. data/spec/{helpers → factories}/delegates.rb +0 -3
  41. data/spec/{helpers → factories}/init.rb +0 -0
  42. data/spec/{helpers → factories}/models.rb +0 -0
  43. data/spec/factories/scaffold/models/task.rb +4 -0
  44. data/spec/factories/scaffold/screens/tasks.rb +45 -0
  45. data/spec/factories/scaffold/sections/tasks/form.rb +31 -0
  46. data/spec/factories/scaffold/sections/tasks/index_cell.rb +4 -0
  47. data/spec/factories/scaffold/sections/tasks/index_table.rb +12 -0
  48. data/spec/factories/scaffold/sections/tasks/show.rb +3 -0
  49. data/spec/factories/scaffold/styles/tasks.rb +18 -0
  50. data/spec/{helpers → factories}/screens.rb +0 -0
  51. data/spec/factories/sections.rb +9 -0
  52. data/spec/features/scaffold/index.rb +14 -0
  53. data/spec/features/screens/open_screen.rb +14 -2
  54. data/spec/helpers/has_content.rb +25 -0
  55. data/spec/unit/models/dirty_spec.rb +0 -1
  56. data/spec/unit/models/model_spec.rb +2 -0
  57. data/spec/unit/prime/logger.rb +49 -0
  58. data/spec/unit/sections/section_spec.rb +59 -0
  59. data/travis.sh +1 -1
  60. metadata +36 -41
  61. data/doc/FAQ.md +0 -2
  62. data/doc/SECTION.md +0 -7
  63. data/doc/STYLE.md +0 -39
  64. data/doc/code/getting_started.rb +0 -106
  65. data/doc/code/models.rb +0 -36
  66. data/doc/code/screens.rb +0 -93
  67. data/doc/code/sections.rb +0 -65
  68. data/doc/code/tables.rb +0 -54
  69. data/doc/docs/docco.css +0 -337
  70. data/doc/docs/getting_started.html +0 -195
  71. data/doc/docs/index.html +0 -205
  72. data/doc/docs/models.html +0 -115
  73. data/doc/docs/public/fonts/aller-bold.eot +0 -0
  74. data/doc/docs/public/fonts/aller-bold.ttf +0 -0
  75. data/doc/docs/public/fonts/aller-bold.woff +0 -0
  76. data/doc/docs/public/fonts/aller-light.eot +0 -0
  77. data/doc/docs/public/fonts/aller-light.ttf +0 -0
  78. data/doc/docs/public/fonts/aller-light.woff +0 -0
  79. data/doc/docs/public/fonts/fleurons.eot +0 -0
  80. data/doc/docs/public/fonts/fleurons.ttf +0 -0
  81. data/doc/docs/public/fonts/fleurons.woff +0 -0
  82. data/doc/docs/public/fonts/novecento-bold.eot +0 -0
  83. data/doc/docs/public/fonts/novecento-bold.ttf +0 -0
  84. data/doc/docs/public/fonts/novecento-bold.woff +0 -0
  85. data/doc/docs/public/images/gray.png +0 -0
  86. data/doc/docs/public/stylesheets/normalize.css +0 -375
  87. data/doc/docs/screens.html +0 -187
  88. data/doc/docs/sections.html +0 -138
  89. data/doc/docs/tables.html +0 -128
  90. data/spec/helpers/sections.rb +0 -3
@@ -1,138 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <title>sections.rb</title>
6
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
- <link rel="stylesheet" media="all" href="public/stylesheets/normalize.css" />
8
- <link rel="stylesheet" media="all" href="docco.css" />
9
- </head>
10
- <body>
11
- <div class="container">
12
- <div class="page">
13
-
14
- <div class="header">
15
-
16
- <h1>sections.rb</h1>
17
-
18
-
19
-
20
- <div class="toc">
21
- <h3>Table of Contents</h3>
22
- <ol>
23
-
24
-
25
- <li>
26
- <a class="source" href="getting_started.html">
27
- getting_started.rb
28
- </a>
29
- </li>
30
-
31
-
32
- <li>
33
- <a class="source" href="models.html">
34
- models.rb
35
- </a>
36
- </li>
37
-
38
-
39
- <li>
40
- <a class="source" href="screens.html">
41
- screens.rb
42
- </a>
43
- </li>
44
-
45
-
46
- <li>
47
- <a class="source" href="sections.html">
48
- sections.rb
49
- </a>
50
- </li>
51
-
52
-
53
- <li>
54
- <a class="source" href="tables.html">
55
- tables.rb
56
- </a>
57
- </li>
58
-
59
- </ol>
60
- </div>
61
-
62
- </div>
63
-
64
-
65
-
66
- <p><strong> What is a Section? </strong></p>
67
- <p>&quot;Section&quot; is something like &quot;partial&quot; which you may know from RubyOnRails.
68
- In the first look it&#39;s just a list of elements which will be added to the &quot;Screen&quot;.
69
- But the magic is inside.
70
- When you add &quot;Element&quot; to a &quot;Section&quot;, e.g. image or label,
71
- it will try to draw it using CALayer/CGContext/etc, instead of adding new UIView.
72
- That way increases application speed (especially on Table elements) by 5-10 times.</p>
73
- <p>Let&#39;s get started.</p>
74
- <p><strong> Create a section. </strong></p>
75
- <p>Just inherit it from <code>Prime::Section</code>.</p>
76
-
77
-
78
- <div class='highlight'><pre><span class="class"><span class="keyword">class</span> <span class="title">FooSection</span> <span class="inheritance">&lt; <span class="parent">Prime::Section</span></span></span>
79
- <span class="keyword">end</span></pre></div>
80
-
81
-
82
-
83
- <p><strong> Add some elements to the section. </strong></p>
84
- <p>Each element should have name and type: &quot;image&quot;, &quot;label&quot;, &quot;button&quot;, etc. </p>
85
- <p>When you send <code>:text</code> option, type will be &quot;label&quot; by default.</p>
86
- <p>When you send <code>:image</code> option, type will be &quot;image&quot; by default.</p>
87
-
88
-
89
- <div class='highlight'><pre><span class="class"><span class="keyword">class</span> <span class="title">FooSection</span> <span class="inheritance">&lt; <span class="parent">Prime::Section</span></span></span>
90
- element <span class="symbol">:welcome</span>, <span class="symbol">text:</span> <span class="string">'Hello World!'</span>
91
- element <span class="symbol">:avatar</span>, <span class="symbol">image:</span> <span class="string">'images/users/avatar.jpg'</span>
92
- element <span class="symbol">:cheer</span>, <span class="symbol">type:</span> <span class="symbol">:button</span>
93
- <span class="keyword">end</span></pre></div>
94
-
95
-
96
-
97
- <p><strong> Render Section to Screen </strong></p>
98
- <p>NOTE: it&#39;s recommended to use instance variables for sections, e.g. <code>@main_section</code> instead of <code>main_section</code>.</p>
99
-
100
-
101
- <div class='highlight'><pre><span class="class"><span class="keyword">class</span> <span class="title">FooScreen</span> <span class="inheritance">&lt; <span class="parent">Prime::Screen</span></span></span>
102
- <span class="function"><span class="keyword">def</span> <span class="title">render</span></span>
103
- <span class="variable">@main_section</span> = <span class="constant">FooSection</span>.new(<span class="symbol">screen:</span> <span class="keyword">self</span>)
104
- <span class="variable">@main_section</span>.render
105
- <span class="keyword">end</span>
106
- <span class="keyword">end</span></pre></div>
107
-
108
-
109
-
110
- <p><strong> Add some styles for section </strong></p>
111
- <p>Generally styles are just attributes of UIView elements.</p>
112
- <p>Let&#39;s style the UILabel element (:welcome label element we added above.)</p>
113
- <p>We send :foo parameter to <code>define</code>, because we have section named <code>foo</code> (FooSection)
114
- and :welcome parameter to <code>style</code>, because the name of element is <code>welcome</code>.</p>
115
-
116
-
117
- <div class='highlight'><pre><span class="constant">Prime::Styles</span>.define <span class="symbol">:foo</span> <span class="keyword">do</span>
118
- style <span class="symbol">:welcome</span>,
119
- <span class="symbol">text_color:</span> <span class="symbol">:black</span>,
120
- <span class="symbol">top:</span> <span class="number">100</span>,
121
- <span class="symbol">width:</span> <span class="number">320</span>,
122
- <span class="symbol">left:</span> <span class="number">20</span>,
123
- <span class="symbol">font:</span> proc { <span class="symbol">:system</span>.uifont(<span class="number">20</span>) },
124
- <span class="symbol">size_to_fit:</span> <span class="keyword">true</span>,
125
- <span class="keyword">end</span></pre></div>
126
-
127
-
128
-
129
- <p><strong> Next </strong></p>
130
- <p><a href="models.html">Read more about Models</a></p>
131
-
132
-
133
-
134
- <div class="fleur">h</div>
135
- </div>
136
- </div>
137
- </body>
138
- </html>
data/doc/docs/tables.html DELETED
@@ -1,128 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <title>tables.rb</title>
6
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
- <link rel="stylesheet" media="all" href="public/stylesheets/normalize.css" />
8
- <link rel="stylesheet" media="all" href="docco.css" />
9
- </head>
10
- <body>
11
- <div class="container">
12
- <div class="page">
13
-
14
- <div class="header">
15
-
16
- <h1>tables.rb</h1>
17
-
18
-
19
-
20
- <div class="toc">
21
- <h3>Table of Contents</h3>
22
- <ol>
23
-
24
-
25
- <li>
26
- <a class="source" href="getting_started.html">
27
- getting_started.rb
28
- </a>
29
- </li>
30
-
31
-
32
- <li>
33
- <a class="source" href="models.html">
34
- models.rb
35
- </a>
36
- </li>
37
-
38
-
39
- <li>
40
- <a class="source" href="screens.html">
41
- screens.rb
42
- </a>
43
- </li>
44
-
45
-
46
- <li>
47
- <a class="source" href="sections.html">
48
- sections.rb
49
- </a>
50
- </li>
51
-
52
-
53
- <li>
54
- <a class="source" href="tables.html">
55
- tables.rb
56
- </a>
57
- </li>
58
-
59
- </ol>
60
- </div>
61
-
62
- </div>
63
-
64
-
65
-
66
- <p><strong> What is a TableSection? </strong></p>
67
- <p>&quot;TableSection&quot; is a &quot;Section&quot; which have some sugar to work with UITableViews.</p>
68
- <p><strong> Create a Cell Section. </strong></p>
69
- <p>Inherit it from <code>Prime::Section</code>. </p>
70
- <p>Each element inside this section will be part of one cell.</p>
71
-
72
-
73
- <div class='highlight'><pre><span class="class"><span class="keyword">class</span> <span class="title">FooCellSection</span> <span class="inheritance">&lt; <span class="parent">Prime::Section</span></span></span>
74
- element <span class="symbol">:title</span>, <span class="symbol">text:</span> proc { model[<span class="symbol">:title</span>] }
75
- <span class="keyword">end</span></pre></div>
76
-
77
-
78
-
79
- <p><strong> Create a Table Section. </strong></p>
80
- <p>Just inherit it from <code>Prime::TableSection</code>. </p>
81
- <p>The key method which should be created is <code>table_data</code>. It should return array of any sections.</p>
82
-
83
-
84
- <div class='highlight'><pre><span class="class"><span class="keyword">class</span> <span class="title">FooTableSection</span> <span class="inheritance">&lt; <span class="parent">Prime::TableSection</span></span></span>
85
- <span class="function"><span class="keyword">def</span> <span class="title">table_data</span></span>
86
- my_foo_items.map <span class="keyword">do</span> |fruit_name|
87
- model = {<span class="symbol">title:</span> fruit_name}
88
- <span class="constant">FooCellSection</span>.new(<span class="symbol">model:</span> model)
89
- <span class="keyword">end</span>
90
- <span class="keyword">end</span>
91
-
92
- <span class="function"><span class="keyword">def</span> <span class="title">my_foo_items</span></span>
93
- <span class="string">%w[Orange Apricot Banana]</span>
94
- <span class="keyword">end</span>
95
- <span class="keyword">end</span></pre></div>
96
-
97
-
98
-
99
- <p><strong> Render table to a Screen. </strong></p>
100
-
101
-
102
- <div class='highlight'><pre><span class="class"><span class="keyword">class</span> <span class="title">FooScreen</span> <span class="inheritance">&lt; <span class="parent">Prime::Screen</span></span></span>
103
- <span class="function"><span class="keyword">def</span> <span class="title">render</span></span>
104
- <span class="variable">@main_section</span> = <span class="constant">FooTableSection</span>.new(<span class="symbol">screen:</span> <span class="keyword">self</span>)
105
- <span class="variable">@main_section</span>.render
106
- <span class="keyword">end</span>
107
- <span class="keyword">end</span></pre></div>
108
-
109
-
110
-
111
- <p><strong> Style it. </strong></p>
112
- <p>Of course, don&#39;t forget to add styles for table cells.</p>
113
-
114
-
115
- <div class='highlight'><pre><span class="constant">Prime::Styles</span>.define <span class="symbol">:foo_cell</span> <span class="keyword">do</span>
116
- style <span class="symbol">:title</span>,
117
- <span class="symbol">left:</span> <span class="number">20</span>,
118
- <span class="symbol">top:</span> <span class="number">5</span>,
119
- <span class="symbol">width:</span> <span class="number">200</span>,
120
- <span class="symbol">height:</span> <span class="number">20</span>
121
- <span class="keyword">end</span></pre></div>
122
-
123
-
124
- <div class="fleur">h</div>
125
- </div>
126
- </div>
127
- </body>
128
- </html>
@@ -1,3 +0,0 @@
1
- class SampleSection < Prime::Section
2
- element :description, text: "Lorem Ipsum"
3
- end