newsletter 0.1.2 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +2 -0
  3. data/.ruby-version +1 -1
  4. data/Gemfile +6 -4
  5. data/app/controllers/newsletter/application_controller.rb +6 -3
  6. data/app/controllers/newsletter/designs_controller.rb +1 -1
  7. data/app/controllers/newsletter/pieces_controller.rb +6 -5
  8. data/app/models/newsletter.rb +0 -9
  9. data/app/models/newsletter/design.rb +4 -2
  10. data/app/models/newsletter/element.rb +2 -9
  11. data/app/models/newsletter/field.rb +0 -4
  12. data/app/models/newsletter/piece.rb +1 -1
  13. data/config/spring.rb +1 -0
  14. data/lib/newsletter/settings.rb +3 -3
  15. data/lib/newsletter/version.rb +1 -1
  16. data/newsletter.gemspec +9 -9
  17. data/newsletters/exports/example-export.yaml +134 -147
  18. data/spec/spec_helper.rb +14 -0
  19. data/spec/test_app/.rspec +1 -0
  20. data/spec/test_app/config/cucumber.yml +8 -0
  21. data/spec/test_app/config/database.mysql.yml +28 -0
  22. data/spec/test_app/config/{database.yml → database.sqlite.yml} +0 -0
  23. data/spec/test_app/config/newsletter.yml +2 -2
  24. data/spec/test_app/config/spring.rb +1 -0
  25. data/spec/test_app/db/structure.sql +12 -0
  26. data/spec/test_app/features/step_definitions/.gitkeep +0 -0
  27. data/spec/test_app/features/support/env.rb +58 -0
  28. data/spec/test_app/lib/tasks/cucumber.rake +65 -0
  29. data/spec/test_app/newsletters/designs/My_Design/elements/_left_column_article.html.erb +10 -0
  30. data/spec/test_app/newsletters/designs/My_Design/elements/_left_column_image.html.erb +2 -0
  31. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_article.html.erb +5 -0
  32. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_headline.html.erb +1 -0
  33. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_image.html.erb +1 -0
  34. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_paragraph.html.erb +3 -0
  35. data/spec/test_app/newsletters/designs/My_Design/layout.html.erb +66 -0
  36. data/spec/test_app/newsletters/designs/Testo_Changeo/elements/_left_column_article.html.erb +10 -0
  37. data/spec/test_app/newsletters/designs/Testo_Changeo/layout.html.erb +66 -0
  38. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_left_column_article.html.erb +10 -0
  39. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_left_column_image.html.erb +2 -0
  40. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_article.html.erb +5 -0
  41. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_headline.html.erb +1 -0
  42. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_image.html.erb +1 -0
  43. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_paragraph.html.erb +3 -0
  44. data/spec/test_app/newsletters/designs/empower_innovative_e-business/layout.html.erb +66 -0
  45. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_left_column_article.html.erb +10 -0
  46. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_left_column_image.html.erb +2 -0
  47. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_article.html.erb +5 -0
  48. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_headline.html.erb +1 -0
  49. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_image.html.erb +1 -0
  50. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_paragraph.html.erb +3 -0
  51. data/spec/test_app/newsletters/designs/enable_extensible_systems/layout.html.erb +66 -0
  52. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_left_column_article.html.erb +10 -0
  53. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_left_column_image.html.erb +2 -0
  54. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_article.html.erb +5 -0
  55. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_headline.html.erb +1 -0
  56. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_image.html.erb +1 -0
  57. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_paragraph.html.erb +3 -0
  58. data/spec/test_app/newsletters/designs/engage_innovative_schemas/layout.html.erb +67 -0
  59. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_left_column_article.html.erb +10 -0
  60. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_left_column_image.html.erb +2 -0
  61. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_article.html.erb +5 -0
  62. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_headline.html.erb +1 -0
  63. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_image.html.erb +1 -0
  64. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_paragraph.html.erb +3 -0
  65. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/layout.html.erb +66 -0
  66. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_left_column_article.html.erb +10 -0
  67. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_left_column_image.html.erb +2 -0
  68. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_article.html.erb +5 -0
  69. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_headline.html.erb +1 -0
  70. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_image.html.erb +1 -0
  71. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_paragraph.html.erb +3 -0
  72. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/layout.html.erb +66 -0
  73. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_left_column_article.html.erb +10 -0
  74. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_left_column_image.html.erb +2 -0
  75. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_article.html.erb +5 -0
  76. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_headline.html.erb +1 -0
  77. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_image.html.erb +1 -0
  78. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_paragraph.html.erb +3 -0
  79. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/layout.html.erb +66 -0
  80. data/spec/test_app/newsletters/designs/integrate_mission-critical_systems/elements/_left_column_article.html.erb +10 -0
  81. data/spec/test_app/newsletters/designs/integrate_mission-critical_systems/layout.html.erb +66 -0
  82. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_left_column_article.html.erb +10 -0
  83. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_left_column_image.html.erb +2 -0
  84. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_article.html.erb +5 -0
  85. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_headline.html.erb +1 -0
  86. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_image.html.erb +1 -0
  87. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_paragraph.html.erb +3 -0
  88. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/layout.html.erb +67 -0
  89. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_left_column_article.html.erb +10 -0
  90. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_left_column_image.html.erb +2 -0
  91. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_article.html.erb +5 -0
  92. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_headline.html.erb +1 -0
  93. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_image.html.erb +1 -0
  94. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_paragraph.html.erb +3 -0
  95. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/layout.html.erb +67 -0
  96. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_left_column_article.html.erb +10 -0
  97. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_left_column_image.html.erb +2 -0
  98. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_article.html.erb +5 -0
  99. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_headline.html.erb +1 -0
  100. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_image.html.erb +1 -0
  101. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_paragraph.html.erb +3 -0
  102. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/layout.html.erb +67 -0
  103. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_left_column_article.html.erb +10 -0
  104. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_left_column_image.html.erb +2 -0
  105. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_article.html.erb +5 -0
  106. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_headline.html.erb +1 -0
  107. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_image.html.erb +1 -0
  108. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_paragraph.html.erb +3 -0
  109. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/layout.html.erb +67 -0
  110. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_left_column_article.html.erb +10 -0
  111. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_left_column_image.html.erb +2 -0
  112. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_article.html.erb +5 -0
  113. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_headline.html.erb +1 -0
  114. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_image.html.erb +1 -0
  115. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_paragraph.html.erb +3 -0
  116. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/layout.html.erb +66 -0
  117. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_left_column_article.html.erb +10 -0
  118. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_left_column_image.html.erb +2 -0
  119. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_article.html.erb +5 -0
  120. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_headline.html.erb +1 -0
  121. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_image.html.erb +1 -0
  122. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_paragraph.html.erb +3 -0
  123. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/layout.html.erb +66 -0
  124. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_left_column_article.html.erb +10 -0
  125. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_left_column_image.html.erb +2 -0
  126. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_article.html.erb +5 -0
  127. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_headline.html.erb +1 -0
  128. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_image.html.erb +1 -0
  129. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_paragraph.html.erb +3 -0
  130. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/layout.html.erb +67 -0
  131. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_left_column_article.html.erb +10 -0
  132. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_left_column_image.html.erb +2 -0
  133. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_article.html.erb +5 -0
  134. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_headline.html.erb +1 -0
  135. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_image.html.erb +1 -0
  136. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_paragraph.html.erb +3 -0
  137. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/layout.html.erb +66 -0
  138. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_left_column_article.html.erb +10 -0
  139. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_left_column_image.html.erb +2 -0
  140. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_article.html.erb +5 -0
  141. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_headline.html.erb +1 -0
  142. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_image.html.erb +1 -0
  143. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_paragraph.html.erb +3 -0
  144. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/layout.html.erb +67 -0
  145. data/spec/test_app/newsletters/designs/transition_enterprise_systems/elements/_left_column_article.html.erb +10 -0
  146. data/spec/test_app/newsletters/designs/transition_enterprise_systems/layout.html.erb +66 -0
  147. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_left_column_article.html.erb +10 -0
  148. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_left_column_image.html.erb +2 -0
  149. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_article.html.erb +5 -0
  150. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_headline.html.erb +1 -0
  151. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_image.html.erb +1 -0
  152. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_paragraph.html.erb +3 -0
  153. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/layout.html.erb +66 -0
  154. data/spec/test_app/script/cucumber +10 -0
  155. data/spec/test_app/spec/factories/designs.rb +13 -0
  156. data/spec/test_app/spec/factories/newsletters.rb +28 -0
  157. data/spec/test_app/spec/features/newsletter/newsletter_spec.rb +24 -0
  158. data/spec/test_app/spec/models/newsletter/design_spec.rb +11 -0
  159. data/spec/test_app/spec/models/newsletter/newsletter_spec.rb +27 -0
  160. data/spec/test_app/spec/spec_helper.rb +76 -0
  161. data/spec/test_app/spec/support/database_cleaner.rb +23 -0
  162. metadata +750 -50
  163. data/Procfile +0 -2
  164. data/engine_plan.rb +0 -13
  165. data/lib/newsletter/config.rb +0 -50
  166. data/zeus.json +0 -22
data/Procfile DELETED
@@ -1,2 +0,0 @@
1
- guard: guard
2
- zeus: zeus start
data/engine_plan.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'zeus/rails'
2
-
3
- ROOT_PATH = File.expand_path(Dir.pwd)
4
- ENV_PATH = File.expand_path('spec/test_app/config/environment', ROOT_PATH)
5
- BOOT_PATH = File.expand_path('spec/test_app/config/boot', ROOT_PATH)
6
- APP_PATH = File.expand_path('spec/test_app/config/application', ROOT_PATH)
7
- ENGINE_ROOT = File.expand_path(Dir.pwd)
8
- ENGINE_PATH = File.expand_path('lib/newsletter/engine', ENGINE_ROOT)
9
-
10
- class EnginePlan < Zeus::Rails
11
- end
12
-
13
- Zeus.plan = EnginePlan.new
@@ -1,50 +0,0 @@
1
- require 'erb'
2
- require 'yaml'
3
-
4
- class Newsletter::Config
5
- attr_reader :sections, :params
6
-
7
- def initialize(file = nil)
8
- @sections = {}
9
- @params = {}
10
- use_file!(file) if file
11
- end
12
-
13
- def use_file!(file)
14
- begin
15
- hash = YAML::load(ERB.new(IO.read(file)).result)
16
- @sections.merge!(hash) {|key, old_val, new_val| (old_val || new_val).merge new_val }
17
- @params.merge!(@sections['common'])
18
- rescue => e
19
- nil
20
- end
21
- end
22
-
23
- def use_section!(section)
24
- @params.merge!(@sections[section.to_s]) if @sections.key?(section.to_s)
25
- end
26
-
27
- def method_missing(param)
28
- param = param.to_s
29
- if @params.key?(param)
30
- @params[param]
31
- else
32
- Rails.logger.warn "Invalid AppConfig Parameter " + param
33
- nil
34
- end
35
- end
36
-
37
- def self.initialize!
38
- standard_file = File.join(Rails.root,'config','newsletter.yml')
39
- local_file = File.join(Rails.root,'config','newsletter.local.yml')
40
- unless File.exists?(standard_file)
41
- $stderr.puts "Missing Configuration: either define ::Conf with proper values or create a config/newsletter.yml with rake newsletter:default_app_config"
42
- end
43
- c = ::Newsletter::Config.new
44
- c.use_file!("#{Rails.root}/config/newsletter.yml")
45
- c.use_file!("#{Rails.root}/config/newsletter.local.yml")
46
- c.use_section!(Rails.env)
47
- c
48
- end
49
-
50
- end
data/zeus.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "command": "ruby -rubygems -r./engine_plan -eZeus.go",
3
-
4
- "plan": {
5
- "boot": {
6
- "default_bundle": {
7
- "development_environment": {
8
- "prerake": {"rake": []},
9
- "runner": ["r"],
10
- "console": ["c"],
11
- "server": ["s"],
12
- "generate": ["g"],
13
- "destroy": ["d"],
14
- "dbconsole": []
15
- },
16
- "test_environment": {
17
- "test_helper": {"test": ["rspec", "testrb"]}
18
- }
19
- }
20
- }
21
- }
22
- }