tech_radar 0.4.0 → 0.5.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/tech_radar/radar.rb +16 -2
  3. data/app/models/tech_radar/rendering/{Markdown.rb → markdown.rb} +0 -0
  4. data/app/models/tech_radar/rendering/{Plaintext.rb → plaintext.rb} +0 -0
  5. data/app/models/tech_radar/technology.rb +1 -1
  6. data/lib/tech_radar/version.rb +1 -1
  7. data/test/controllers/tech_radar/quadrants_controller_test.rb +1 -1
  8. data/test/controllers/tech_radar/technologies_controller_test.rb +3 -3
  9. data/test/dummy/config/initializers/backtrace_silencers.rb +1 -1
  10. data/test/dummy/config/tech-radar.yml +16 -0
  11. data/test/dummy/log/test.log +1153 -0
  12. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0A/0AmQlwadiESqLiDbBHv-cz90lvlFaU4kIrkiTBW20kw.cache +0 -0
  13. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0E/0EXotS98AUY4txQLF_Pi-Q1J_WafL2GD_m_aZtcEhig.cache +0 -0
  14. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  15. data/test/dummy/tmp/cache/assets/sprockets/v3.0/71/71nL6PEO61Wyxg_1MewpQNraz__WvOrOx2btzM1FNTc.cache +1 -0
  16. data/test/dummy/tmp/cache/assets/sprockets/v3.0/86/86B5GM_SNnhkkYQkhVa0bFW2VuexkKM4OPuNyM3qYUQ.cache +2 -0
  17. data/test/dummy/tmp/cache/assets/sprockets/v3.0/A_/A_IV6Bpacf1PZoy42TB4Z3KuW1-MVzSNi8EJl4KHZes.cache +1 -0
  18. data/test/dummy/tmp/cache/assets/sprockets/v3.0/B6/B6z4VaDCuYMIV4QKzAxh1rXOR5k131kRbdjvSBNntjA.cache +1 -0
  19. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BT/BTYBzzE3HQYx4aAYP2UYFnHHWgiRlsD9MrlHu5eaFdg.cache +0 -0
  20. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BV/BVcivzW-wmUYbgmMWJ2Ah97ai-XwSaJAtcC8NrHzmNg.cache +0 -0
  21. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ex/ExmO5_Val1Y7VJGCSLFP1wx8iANj0Wirfm6PhW_PJRM.cache +2 -0
  22. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FF/FFt-jwCHyJIUJ2ThHpELuMkMeoOe717eQRNboZTTBMk.cache +0 -0
  23. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GK/GKX8C94_byxdvSgDsJJ8RiEHn_6SO2qSE1wKFkY7RaU.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KV/KVUcCu-OyCM6GXenLaFx3Ad4RDvz5cLOhVGKQPdvMHU.cache +1 -0
  25. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LW/LWqhrEYdgeo3nFa-9SS7aFLFL8IiRKbiPPmTcCoXnXg.cache +0 -0
  26. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MD/MD3DPhlAqRfE1DLXhbJAKDTKQkW6UDGWmphRtQ29IZI.cache +1 -0
  27. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
  28. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Os/OsyjR9AxH7M4NFnoCjXJ2_jXvJYW3A3vcEXS8_AU5w4.cache +1 -0
  29. data/test/dummy/tmp/cache/assets/sprockets/v3.0/X1/X17E_hQiWRCM38iR5NTruI8CqF3BdEXj0jxQ0OMYmZM.cache +2 -0
  30. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Y7/Y7UQ3LFBHK78LKJjKhfRsL2wfXaOmzva98lV1-ShZP8.cache +1 -0
  31. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fH/fHwKShI5Bs3QjMegUT6NEeNi0MNJXWf1zElliAGdASs.cache +0 -0
  32. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h7/h7m5UncXch3Mj2UCRWJfDkxs-he6I3r2dfrpxuXPpL4.cache +1 -0
  33. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +2 -0
  34. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jJ/jJn-pTmcRn_vvQB0XmCX5fVauT4zqDxQvAqjXYrPI_k.cache +0 -0
  35. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kf/kfWPU-CVtbbzGwehZ2_4SJ1bMYFXf-Kua_p79T0ikOc.cache +1 -0
  36. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oM/oMLu_HcRTjb8KAa6RU63BTz6o_UcZf5jRLTuY1dCDAA.cache +1 -0
  37. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pB/pB3TdWzGFh7SlhR0w5qtDsRp8RXIIenyOBez58_rObA.cache +1 -0
  38. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
  39. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ta/taD2ZeM2EDxF-4ljz0YnKpYrdzNwIie29Aatzzq3aTU.cache +0 -0
  40. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vX/vXA69MMItyuyxADK-8ttNpm6XvZ0Z3MYncLT6i2J2v4.cache +1 -0
  41. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xY/xYECPJKPtYeLPCk5SLDtk0_kQrKJKZ3ScIyUtdxvCPA.cache +0 -0
  42. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yo/yoPNbzmf4gdjZI-U7hTSEfh3ObRHdGTHrWnUsFHXknk.cache +0 -0
  43. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yr/yrUebpV2K9g51hXIPWF4R_oMhvWeKzNMFCe32WfjJZw.cache +1 -0
  44. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zA/zAH0wIR2ufw1oP14a_3Lf2mJG1XGX2lLBJHNrJp01rI.cache +2 -0
  45. data/test/models/tech_radar/radar_test.rb +19 -5
  46. metadata +71 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d2224cfe55718b943c46d7001d2884e773867693
4
- data.tar.gz: 949e643af847049217e923e36380378f3c48d8ec
3
+ metadata.gz: 7e111da0bd6f0b8fb8a64f58695c680cf39012de
4
+ data.tar.gz: b0718462b290d0e5a53e6175a42178e3363e59aa
5
5
  SHA512:
6
- metadata.gz: b3655f6edf9ac5728cd07804fb1522b4db332c3a51235ba81b8b2c85cc2d49f9bb3b56fdb563c409c30919bba63aac8c986ec8577c1554b960f7a8aada981952
7
- data.tar.gz: 05ee0a4a06a686d2babc1c0412e93bce90d917c55541cff00aacacd88adb8c210a62d9f13fe6710008d71777ecaa830a662ec2af1b710623265d84190a7080a3
6
+ metadata.gz: f5167433bc2c99ced3066d2ec73b9914f7b9e13c4e9e4c694e36eac0a4dd64e902bcbf9391c3c29923087174aa8eea3a91969c619890350e4e9ecfad629b737a
7
+ data.tar.gz: eb4f68766bb3c16fd78fba39f0380c96dd6cd5f601b021c39af85010dffb2aa300efa0fa47d3753680e00632047214e62e15323b5640ecb8ff208650efb03449
@@ -24,6 +24,9 @@ module TechRadar
24
24
  more_details_url: data["more_details_url"],
25
25
  more_details_summary: data["more_details_summary"],
26
26
  why_url: data["why_url"],
27
+ tags: Array(data["tags"]).sort,
28
+ experts: Array(data["experts"]).sort,
29
+ examples: Array(data["examples"]).sort,
27
30
  why_summary: data["why_summary"])
28
31
  end
29
32
  end
@@ -45,8 +48,19 @@ module TechRadar
45
48
  rings.detect { |ring| ring.name == ring_name }
46
49
  end
47
50
 
48
- def technologies
49
- quadrants.map(&:rings).flatten.map(&:technologies).flatten.sort_by { |technology| technology.name.downcase }
51
+ def technologies(options = {})
52
+ results = quadrants.
53
+ map(&:rings).
54
+ flatten.
55
+ map(&:technologies).
56
+ flatten
57
+
58
+ if options[:tagged]
59
+ results = results.select { |technology|
60
+ technology.tags.include?(options[:tagged])
61
+ }
62
+ end
63
+ results.sort_by { |technology| technology.name.downcase }
50
64
  end
51
65
 
52
66
  def technology(name)
@@ -2,4 +2,4 @@ require 'immutable-struct'
2
2
 
3
3
  module TechRadar
4
4
  end
5
- TechRadar::Technology = ImmutableStruct.new(:name, :ring, :quadrant, :purpose, :why_summary, :why_url, :more_details_summary, :more_details_url)
5
+ TechRadar::Technology = ImmutableStruct.new(:name, :ring, :quadrant, :purpose, :why_summary, :why_url, :more_details_summary, :more_details_url, [:tags], [:experts], [:examples])
@@ -1,3 +1,3 @@
1
1
  module TechRadar
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -7,7 +7,7 @@ module TechRadar
7
7
  end
8
8
 
9
9
  test "show" do
10
- get :show, id: "Tools"
10
+ get :show, params: { id: "Tools" }
11
11
  assert_response :success
12
12
  assert response.body =~ /RabbitMQ.*Resque.*ElasticSearch.*HumbleKit.*Redis as a database.*Sidekiq.*JIRA.*SwiftTask/m,
13
13
  "Expected #{response.body} to contain all 'Tools' technologies, ordered by ring, then name"
@@ -36,14 +36,14 @@ module TechRadar
36
36
  end
37
37
 
38
38
  test "show with no more_details_url or more_details_summary" do
39
- get :show, id: "RabbitMQ"
39
+ get :show, params: { id: "RabbitMQ" }
40
40
  assert_response :success
41
41
  assert response.body.include?("RabbitMQ"),"Expected #{response.body} to include 'RabbitMQ'"
42
42
  assert response.body.include?("Google"),"Expected #{response.body} to include a link to a Google search"
43
43
  end
44
44
 
45
45
  test "show with no more_details_url but has a more_details_summary" do
46
- get :show, id: "Ruby"
46
+ get :show, params: { id: "Ruby" }
47
47
  assert_response :success
48
48
  assert response.body.include?("Ruby"),"Expected #{response.body} to include 'Ruby'"
49
49
  refute response.body.include?("Google"),"Expected #{response.body} NOT to include a link to a Google search"
@@ -51,7 +51,7 @@ module TechRadar
51
51
  end
52
52
 
53
53
  test "show with more_details_url" do
54
- get :show, id: "Resque"
54
+ get :show, params: { id: "Resque" }
55
55
  assert_response :success
56
56
  assert response.body.include?("Resque"),"Expected #{response.body} to include 'Resque'"
57
57
  refute response.body.include?("Google"),"Expected #{response.body} NOT to include a link to a Google search"
@@ -4,4 +4,4 @@
4
4
  # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
5
 
6
6
  # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
- # Rails.backtrace_cleaner.remove_silencers!
7
+ Rails.backtrace_cleaner.remove_silencers!
@@ -3,6 +3,9 @@
3
3
  Resque:
4
4
  purpose: "Background Jobs"
5
5
  more_details_url: https://github.com/resque/resque/tree/1-x-stable
6
+ tags:
7
+ - background jobs
8
+ - middleware
6
9
  RabbitMQ:
7
10
  purpose: "Messaging"
8
11
  "Trial":
@@ -36,6 +39,8 @@
36
39
  Heroku:
37
40
  purpose: "Infrastructure"
38
41
  more_details_url:
42
+ tags:
43
+ - middleware
39
44
  "Trial":
40
45
  iOS:
41
46
  purpose: "Mobile Application Development"
@@ -77,6 +82,17 @@
77
82
  purpose: Middleware Programming
78
83
  more_details_url: https://www.ruby-lang.org/en/
79
84
  more_details_summary: "Ruby is a dynamic, _object-oriented_ programming language that combines ideas from Smalltalk, Perl, and others"
85
+ tags:
86
+ - middleware
87
+ - scripting
88
+ - cli
89
+ examples:
90
+ - http://rubyonrails.org
91
+ - http://github.com/stitchfix/stitches
92
+ experts:
93
+ - Matz
94
+ - Tenderlove
95
+ - DHH
80
96
  "Trial":
81
97
  CoffeeScript:
82
98
  purpose: Browser Programming