teamster 0.2.2 → 0.3.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.
- checksums.yaml +4 -4
 - data/README.md +76 -0
 - data/VERSION +1 -1
 - data/bin/teamster +48 -11
 - data/content/views/index.erb +1 -1
 - data/lib/teamster/base_module.rb +1 -1
 - data/lib/teamster/general_helper.rb +10 -0
 - data/lib/teamster.rb +7 -6
 - metadata +2 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 408dd6c1de8da8854d489bddfd6a08ca8543a70d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 5eae8abb7fe45335457bb8d81d18411850a61b05
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: d499d7be8553ed8bf83e0dd16f3d7690238ecef12ae0c72f772b8594072b3ae5b4a07c5f410e3f245f467d43b7f921cb4307b82ee9811f37a76cbfc8ff712460
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 1dd7a0f717d19dfc0222e88faa092106ea36d7441ee7905638e513823b7cd15d850f1611d4dac142e9251c49371fcf7de42a36caff573dbeb3b62d92aef2f717
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,76 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            teamster
         
     | 
| 
      
 2 
     | 
    
         
            +
            ========
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            A simple bare-bones extensible web portal for individuals or small teams
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Dependencies
         
     | 
| 
      
 8 
     | 
    
         
            +
            ============
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            To run teamster, there is a few dependencies:
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            * Only supported in OS X and linux. Not test on Windows. YMMV.
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            Install
         
     | 
| 
      
 15 
     | 
    
         
            +
            =======
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            Teamster has been packaged into a gem. To install, simply run `gem install teamster`.
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            Usage
         
     | 
| 
      
 21 
     | 
    
         
            +
            =====
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            * Create a new folder where you want your site to live and navigate into it: `mkdir new-site && cd new-site`
         
     | 
| 
      
 24 
     | 
    
         
            +
            * Initialize teamster and answer some configuration questions: `teamster init`
         
     | 
| 
      
 25 
     | 
    
         
            +
            * Run teamster: `teamster start`
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            Open a browser and point to http://localhost:9292. A bare teamster page should be shown.
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            Running In A "Production" Environment
         
     | 
| 
      
 31 
     | 
    
         
            +
            =====================================
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            I do not recommended this application be exposed to the wide Internet just yet, but it should be secure enough for an individual or small team to use over their private LAN.
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            When the `--prod` flag is passed, teamster will not run using rackup, but will utilize the [Puma](http://puma.io/) app server to serve itself. It will create and bind itself to a UNIX socket file and a Puma state file.
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            Use With Nginx
         
     | 
| 
      
 38 
     | 
    
         
            +
            --------------
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            Personally, I'm using this in conjunction with the popular [Nginx](http://nginx.org/) web server. To follow these, Nginx must already be installed on your system.
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            * Run teamster in production mode: `teamster start --prod --socket-file /tmp/teamster.sock --state-file /srv/my-site/app.state`
         
     | 
| 
      
 43 
     | 
    
         
            +
            * In the nginx site configuration file, add the following:
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
             > upstream app {
         
     | 
| 
      
 46 
     | 
    
         
            +
             >   server unix:///tmp/teamster.sock;
         
     | 
| 
      
 47 
     | 
    
         
            +
             > }
         
     | 
| 
      
 48 
     | 
    
         
            +
             >
         
     | 
| 
      
 49 
     | 
    
         
            +
             > server {
         
     | 
| 
      
 50 
     | 
    
         
            +
             >   server_name my-site.example.com;
         
     | 
| 
      
 51 
     | 
    
         
            +
             > }
         
     | 
| 
      
 52 
     | 
    
         
            +
             >
         
     | 
| 
      
 53 
     | 
    
         
            +
             >   location / {
         
     | 
| 
      
 54 
     | 
    
         
            +
             >     proxy_pass http://app;
         
     | 
| 
      
 55 
     | 
    
         
            +
             >   }
         
     | 
| 
      
 56 
     | 
    
         
            +
             > }
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
            * Restart nginx.
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            Open a browser and point to http://my-site.example.com. A bare teamster page should be shown.
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            Create Modules
         
     | 
| 
      
 64 
     | 
    
         
            +
            ==============
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            To create your custom modules:
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            * Navigate to the site folder root: `cd /path/to/root/folder/of/my-site`
         
     | 
| 
      
 69 
     | 
    
         
            +
            * Run: `teamster --create-module MODULENAME`.
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            This will create the following files in your site folder:
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            * lib/teamster-modules/MODULENAME.rb
         
     | 
| 
      
 74 
     | 
    
         
            +
            * lib/teamster-modules/MODULENAME/views/MODULENAME.erb
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            In MODULENAME.rb, a class MODULENAME will be created. While it may sub-class from Teamster::Module::Base, it is also a sub-class of Sinatra::Base. When developing it, you can use helper methods and other nifty stuff available from Sinatra. However, do take note of the scoping.
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.3.0
         
     | 
    
        data/bin/teamster
    CHANGED
    
    | 
         @@ -135,10 +135,14 @@ class TeamsterApp 
     | 
|
| 
       135 
135 
     | 
    
         
             
                  puts "Creating placeholders for module #{name}...\n"
         
     | 
| 
       136 
136 
     | 
    
         
             
                  FileUtils.mkdir_p "lib/teamster-modules/#{name}/views"
         
     | 
| 
       137 
137 
     | 
    
         
             
                  create_file "lib/teamster-modules/#{name}.rb", "module_placeholder_for", name
         
     | 
| 
      
 138 
     | 
    
         
            +
                  create_file "lib/teamster-modules/#{name}/#{name}_helper.rb", "module_helper_placeholder_for", name
         
     | 
| 
       138 
139 
     | 
    
         
             
                  create_file "lib/teamster-modules/#{name}/views/#{name}.erb", "view_placeholder_for", name
         
     | 
| 
      
 140 
     | 
    
         
            +
                  create_file "lib/teamster-modules/#{name}/views/#{name}_summary.erb", "view_summary_placeholder_for", name
         
     | 
| 
       139 
141 
     | 
    
         
             
                  puts "\nBasic module creation done!"
         
     | 
| 
       140 
     | 
    
         
            -
                  puts "Controller 
     | 
| 
       141 
     | 
    
         
            -
                  puts " 
     | 
| 
      
 142 
     | 
    
         
            +
                  puts "Controller   : \"lib/teamster-modules/#{name}.rb\""
         
     | 
| 
      
 143 
     | 
    
         
            +
                  puts "Helper       : \"lib/teamster-modules/#{name}/#{name}_helper.rb\""
         
     | 
| 
      
 144 
     | 
    
         
            +
                  puts "View         : \"lib/teamster-modules/#{name}/views/#{name}.erb\""
         
     | 
| 
      
 145 
     | 
    
         
            +
                  puts "Summary View : \"lib/teamster-modules/#{name}/views/#{name}_summary.erb\""
         
     | 
| 
       142 
146 
     | 
    
         
             
                end
         
     | 
| 
       143 
147 
     | 
    
         | 
| 
       144 
148 
     | 
    
         
             
                def create_file(filename, method, *args)
         
     | 
| 
         @@ -229,17 +233,44 @@ end 
     | 
|
| 
       229 
233 
     | 
    
         | 
| 
       230 
234 
     | 
    
         
             
                def module_placeholder_for(name)
         
     | 
| 
       231 
235 
     | 
    
         
             
                  <<-CODE
         
     | 
| 
       232 
     | 
    
         
            -
             
     | 
| 
       233 
     | 
    
         
            -
              \# Stuff that needs to be done before registration with core.
         
     | 
| 
       234 
     | 
    
         
            -
              has_helpers nil   \# Add array of modules here if there are helper modules.
         
     | 
| 
       235 
     | 
    
         
            -
              views_at \"\#\{File.dirname(__FILE__)\}/#{name}/views\"
         
     | 
| 
       236 
     | 
    
         
            -
              under_development \# Remove this line when development is finished.
         
     | 
| 
      
 236 
     | 
    
         
            +
            require_relative \"#{name}/#{name}_helper\"
         
     | 
| 
       237 
237 
     | 
    
         | 
| 
       238 
     | 
    
         
            -
             
     | 
| 
       239 
     | 
    
         
            -
             
     | 
| 
      
 238 
     | 
    
         
            +
            \# NOTE: If the namespace is changed, please take care of the
         
     | 
| 
      
 239 
     | 
    
         
            +
            \#       namespace of the sub-class and helper modules.
         
     | 
| 
       240 
240 
     | 
    
         | 
| 
       241 
     | 
    
         
            -
             
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
      
 241 
     | 
    
         
            +
            module Teamster
         
     | 
| 
      
 242 
     | 
    
         
            +
              module Modules
         
     | 
| 
      
 243 
     | 
    
         
            +
                class #{name.capitalize} < Base
         
     | 
| 
      
 244 
     | 
    
         
            +
                  \# Stuff that needs to be done before registration with core.
         
     | 
| 
      
 245 
     | 
    
         
            +
                  has_helpers #{name.capitalize}Helper \# Add modules here (comma separated) if there are helper modules.
         
     | 
| 
      
 246 
     | 
    
         
            +
                  views_at \"\#\{File.dirname(__FILE__)\}/#{name}/views\"
         
     | 
| 
      
 247 
     | 
    
         
            +
                  under_development \# Remove this line when development is finished.
         
     | 
| 
      
 248 
     | 
    
         
            +
             
     | 
| 
      
 249 
     | 
    
         
            +
                  \# Register this class so it can be used.
         
     | 
| 
      
 250 
     | 
    
         
            +
                  register self
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
                  get '/#{name}/?' do
         
     | 
| 
      
 253 
     | 
    
         
            +
                    erb :#{name}
         
     | 
| 
      
 254 
     | 
    
         
            +
                  end
         
     | 
| 
      
 255 
     | 
    
         
            +
                end
         
     | 
| 
      
 256 
     | 
    
         
            +
              end
         
     | 
| 
      
 257 
     | 
    
         
            +
            end
         
     | 
| 
      
 258 
     | 
    
         
            +
                  CODE
         
     | 
| 
      
 259 
     | 
    
         
            +
                end
         
     | 
| 
      
 260 
     | 
    
         
            +
             
     | 
| 
      
 261 
     | 
    
         
            +
                def module_helper_placeholder_for(name)
         
     | 
| 
      
 262 
     | 
    
         
            +
                  <<-CODE
         
     | 
| 
      
 263 
     | 
    
         
            +
            module Teamster
         
     | 
| 
      
 264 
     | 
    
         
            +
              module Modules
         
     | 
| 
      
 265 
     | 
    
         
            +
                module #{name.capitalize}Helper
         
     | 
| 
      
 266 
     | 
    
         
            +
                  def #{name}_summary?
         
     | 
| 
      
 267 
     | 
    
         
            +
                    true
         
     | 
| 
      
 268 
     | 
    
         
            +
                  end
         
     | 
| 
      
 269 
     | 
    
         
            +
             
     | 
| 
      
 270 
     | 
    
         
            +
                  def #{name}_summary
         
     | 
| 
      
 271 
     | 
    
         
            +
                    erb :#{name}_summary
         
     | 
| 
      
 272 
     | 
    
         
            +
                  end
         
     | 
| 
      
 273 
     | 
    
         
            +
                end
         
     | 
| 
       243 
274 
     | 
    
         
             
              end
         
     | 
| 
       244 
275 
     | 
    
         
             
            end
         
     | 
| 
       245 
276 
     | 
    
         
             
                  CODE
         
     | 
| 
         @@ -251,6 +282,12 @@ end 
     | 
|
| 
       251 
282 
     | 
    
         
             
            <p style='text-align: center'>Page under construction. Please check back later!</p>
         
     | 
| 
       252 
283 
     | 
    
         
             
                  CODE
         
     | 
| 
       253 
284 
     | 
    
         
             
                end
         
     | 
| 
      
 285 
     | 
    
         
            +
             
     | 
| 
      
 286 
     | 
    
         
            +
                def view_summary_placeholder_for(name)
         
     | 
| 
      
 287 
     | 
    
         
            +
                  <<-CODE
         
     | 
| 
      
 288 
     | 
    
         
            +
            <p>Under development right now..</p>
         
     | 
| 
      
 289 
     | 
    
         
            +
                  CODE
         
     | 
| 
      
 290 
     | 
    
         
            +
                end
         
     | 
| 
       254 
291 
     | 
    
         
             
              end
         
     | 
| 
       255 
292 
     | 
    
         
             
            end
         
     | 
| 
       256 
293 
     | 
    
         | 
    
        data/content/views/index.erb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <h1 class='text-center'>Status At A Glance</h1>
         
     | 
| 
       2 
2 
     | 
    
         
             
            <hr class="fancy-line">
         
     | 
| 
       3 
3 
     | 
    
         
             
            <div class='row'>
         
     | 
| 
       4 
     | 
    
         
            -
              <%  
     | 
| 
      
 4 
     | 
    
         
            +
              <% all_modules(true).each_with_index do |arr, i| %>
         
     | 
| 
       5 
5 
     | 
    
         
             
                <% link, name = arr %>
         
     | 
| 
       6 
6 
     | 
    
         
             
                <div class=<%= summary_div_class_for i%>>
         
     | 
| 
       7 
7 
     | 
    
         
             
                  <div class="frontpage-panel panel panel-default">
         
     | 
    
        data/lib/teamster/base_module.rb
    CHANGED
    
    
| 
         @@ -54,6 +54,16 @@ module Teamster 
     | 
|
| 
       54 
54 
     | 
    
         
             
                    end
         
     | 
| 
       55 
55 
     | 
    
         
             
                  end
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
      
 57 
     | 
    
         
            +
                  def all_modules(shuffle = false)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    all_modules = [].tap do |arr|
         
     | 
| 
      
 59 
     | 
    
         
            +
                      App.modules.each do |mod|
         
     | 
| 
      
 60 
     | 
    
         
            +
                        module_name = mod.to_s.split("::").last
         
     | 
| 
      
 61 
     | 
    
         
            +
                        arr << ['/' + module_name.downcase, module_name]
         
     | 
| 
      
 62 
     | 
    
         
            +
                      end
         
     | 
| 
      
 63 
     | 
    
         
            +
                    end
         
     | 
| 
      
 64 
     | 
    
         
            +
                    shuffle ? all_modules.shuffle : all_modules
         
     | 
| 
      
 65 
     | 
    
         
            +
                  end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
       57 
67 
     | 
    
         
             
                  def find_template(views, name, engine, &block)
         
     | 
| 
       58 
68 
     | 
    
         
             
                    App.views.each {|v| super(v, name, engine, &block)}
         
     | 
| 
       59 
69 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/teamster.rb
    CHANGED
    
    | 
         @@ -13,8 +13,8 @@ module Teamster 
     | 
|
| 
       13 
13 
     | 
    
         
             
                  @@title     = 'TEAMSTER'
         
     | 
| 
       14 
14 
     | 
    
         
             
                  CORE_CONFIG = 'conf/teamster.conf'
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                  # NOTE:  
     | 
| 
       17 
     | 
    
         
            -
                  #       the configure block.
         
     | 
| 
      
 16 
     | 
    
         
            +
                  # NOTE: Class methods used in configure block needs be declared
         
     | 
| 
      
 17 
     | 
    
         
            +
                  #       before the configure block.
         
     | 
| 
       18 
18 
     | 
    
         
             
                  def self.set_default_options_from(core_opts)
         
     | 
| 
       19 
19 
     | 
    
         
             
                    @@title = core_opts[:title]
         
     | 
| 
       20 
20 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -40,8 +40,10 @@ module Teamster 
     | 
|
| 
       40 
40 
     | 
    
         
             
                  end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                  def summary_div_class_for(index)
         
     | 
| 
       43 
     | 
    
         
            -
                    size =  
     | 
| 
       44 
     | 
    
         
            -
                    if size 
     | 
| 
      
 43 
     | 
    
         
            +
                    size = all_modules.size
         
     | 
| 
      
 44 
     | 
    
         
            +
                    if size == 1
         
     | 
| 
      
 45 
     | 
    
         
            +
                      "col-lg-12"
         
     | 
| 
      
 46 
     | 
    
         
            +
                    elsif size%2 == 0
         
     | 
| 
       45 
47 
     | 
    
         
             
                      "col-lg-6"
         
     | 
| 
       46 
48 
     | 
    
         
             
                    else
         
     | 
| 
       47 
49 
     | 
    
         
             
                      last = size - 1
         
     | 
| 
         @@ -58,7 +60,6 @@ module Teamster 
     | 
|
| 
       58 
60 
     | 
    
         
             
                    end
         
     | 
| 
       59 
61 
     | 
    
         
             
                  end
         
     | 
| 
       60 
62 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                  # NOTE: Class methods here are for module processing.
         
     | 
| 
       62 
63 
     | 
    
         
             
                  def self.modules
         
     | 
| 
       63 
64 
     | 
    
         
             
                    @@modules
         
     | 
| 
       64 
65 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -80,7 +81,7 @@ module Teamster 
     | 
|
| 
       80 
81 
     | 
    
         
             
                    end
         
     | 
| 
       81 
82 
     | 
    
         
             
                    teamster_module.helpers GeneralHelper
         
     | 
| 
       82 
83 
     | 
    
         
             
                    if teamster_module.has_helper?
         
     | 
| 
       83 
     | 
    
         
            -
                      teamster_module.helper_module.each do |mod|
         
     | 
| 
      
 84 
     | 
    
         
            +
                      teamster_module.helper_module.flatten.each do |mod|
         
     | 
| 
       84 
85 
     | 
    
         
             
                        helpers mod
         
     | 
| 
       85 
86 
     | 
    
         
             
                      end
         
     | 
| 
       86 
87 
     | 
    
         
             
                    end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: teamster
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Nur Muhammad Bin Sirat
         
     | 
| 
         @@ -49,6 +49,7 @@ files: 
     | 
|
| 
       49 
49 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       50 
50 
     | 
    
         
             
            - Gemfile.lock
         
     | 
| 
       51 
51 
     | 
    
         
             
            - LICENSE.md
         
     | 
| 
      
 52 
     | 
    
         
            +
            - README.md
         
     | 
| 
       52 
53 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       53 
54 
     | 
    
         
             
            - VERSION
         
     | 
| 
       54 
55 
     | 
    
         
             
            - bin/teamster
         
     |