epom 0.1.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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +28 -0
- data/config/application.yml +41 -0
- data/lib/epom.rb +22 -0
- data/lib/epom/ad_unit_size.rb +15 -0
- data/lib/epom/advertiser.rb +45 -0
- data/lib/epom/auth.rb +31 -0
- data/lib/epom/banner.rb +525 -0
- data/lib/epom/banner_type.rb +15 -0
- data/lib/epom/campaign.rb +508 -0
- data/lib/epom/day_of_week.rb +11 -0
- data/lib/epom/epom_element.rb +61 -0
- data/lib/epom/limit_counters.rb +10 -0
- data/lib/epom/payment_model.rb +9 -0
- data/lib/epom/period_type.rb +9 -0
- data/lib/epom/placement.rb +56 -0
- data/lib/epom/placement_type.rb +7 -0
- data/lib/epom/publisher.rb +6 -0
- data/lib/epom/relation.rb +9 -0
- data/lib/epom/site.rb +84 -0
- data/lib/epom/version.rb +3 -0
- data/lib/epom/zone.rb +38 -0
- data/lib/tasks/epom_tasks.rake +4 -0
- data/test/IMG_5457-128x128.JPG +0 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +26 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +16 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +4 -0
- data/test/dummy/log/test.log +17350 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/epom/advertiser_test.rb +85 -0
- data/test/epom/auth_test.rb +50 -0
- data/test/epom/banner_test.rb +194 -0
- data/test/epom/campaign_test.rb +65 -0
- data/test/epom/placement_test.rb +53 -0
- data/test/epom/site_test.rb +136 -0
- data/test/epom/zone_test.rb +67 -0
- data/test/epom_test.rb +38 -0
- data/test/logo-128x128.png +0 -0
- data/test/test.php +51 -0
- data/test/test.rb +21 -0
- data/test/test_helper.rb +55 -0
- metadata +256 -0
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            module Epom
         | 
| 2 | 
            +
              class EpomElement
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                include HTTMultiParty
         | 
| 5 | 
            +
                  base_uri 'https://n29.epom.com/'
         | 
| 6 | 
            +
                  default_params :output => 'json'
         | 
| 7 | 
            +
                  format :json
         | 
| 8 | 
            +
                  debug_output $stderr
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def self.extended_methods
         | 
| 11 | 
            +
                  { }
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                def self.params_validation(params, params_signature)
         | 
| 15 | 
            +
                  return true if params_signature.nil? or params_signature.count.zero?
         | 
| 16 | 
            +
                  return true if params.keys.all? {|key| params_signature.include?(key)}
         | 
| 17 | 
            +
                  puts "invalid params: #{params.keys.select{|key| not params_signature.include?(key)}}"
         | 
| 18 | 
            +
                  return false
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                def self.generic_method(method_name, url_params, body_params)
         | 
| 22 | 
            +
                  signature = extended_methods[method_name]
         | 
| 23 | 
            +
                  url_params_signature = signature[:url_parameters]
         | 
| 24 | 
            +
                  body_params_signature = signature[:body_parameters]
         | 
| 25 | 
            +
                  url_signature = signature[:url]      
         | 
| 26 | 
            +
                  
         | 
| 27 | 
            +
                  url = replace_params_in_url(url_signature, url_params)
         | 
| 28 | 
            +
                  method = signature[:method]
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  if signature[:headers]
         | 
| 31 | 
            +
                    headers signature[:headers]
         | 
| 32 | 
            +
                  else
         | 
| 33 | 
            +
                    default_options[:headers] = {}
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  if params_validation(url_params, url_params_signature) and params_validation(body_params, body_params_signature)
         | 
| 37 | 
            +
                    http_proxy ENV['proxy_address'], ENV['proxy_port'], ENV['proxy_user'], ENV['proxy_password']
         | 
| 38 | 
            +
                    response = send(method, url, :query => body_params)
         | 
| 39 | 
            +
                    if response.success?
         | 
| 40 | 
            +
                      return response.parsed_response
         | 
| 41 | 
            +
                    else
         | 
| 42 | 
            +
                      response.code
         | 
| 43 | 
            +
                    end
         | 
| 44 | 
            +
                  else
         | 
| 45 | 
            +
                    raise ArgumentError, 'Error in params_validation method'
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                def self.replace_params_in_url(url, url_params)
         | 
| 50 | 
            +
                  url
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                def self.method_missing(name, *args)
         | 
| 54 | 
            +
                  if self.extended_methods.keys.include?(name.to_sym)
         | 
| 55 | 
            +
                    self.generic_method(name, *args)
         | 
| 56 | 
            +
                  else
         | 
| 57 | 
            +
                    super
         | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
            end
         | 
| @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            module Epom
         | 
| 2 | 
            +
              class LimitCounter
         | 
| 3 | 
            +
                TOTAL_IMPRESSIONS = 'TOTAL_IMPRESSIONS'
         | 
| 4 | 
            +
                TOTAL_CLICKS = 'TOTAL_CLICKS'
         | 
| 5 | 
            +
                TOTAL_REVENUE = 'TOTAL_REVENUE'
         | 
| 6 | 
            +
                DAILY_IMPRESSIONS = 'DAILY_IMPRESSIONS'
         | 
| 7 | 
            +
                DAILY_CLICKS = 'DAILY_CLICKS'
         | 
| 8 | 
            +
                DAILY_REVENUE = 'DAILY_REVENUE'
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            require 'epom/epom_element'
         | 
| 2 | 
            +
            require 'epom/placement_type'
         | 
| 3 | 
            +
            require 'epom/ad_unit_size'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Epom
         | 
| 6 | 
            +
              class Placement < EpomElement
         | 
| 7 | 
            +
                
         | 
| 8 | 
            +
                def self.extended_methods
         | 
| 9 | 
            +
                  {
         | 
| 10 | 
            +
                      :delete_placement => {
         | 
| 11 | 
            +
                          :url => '/rest-api/placements/PLACEMENT_ID/delete.do',
         | 
| 12 | 
            +
                          :url_parameters => [:placementId],
         | 
| 13 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 14 | 
            +
                          :method => :post
         | 
| 15 | 
            +
                      },
         | 
| 16 | 
            +
                      :get_placement_summary => {
         | 
| 17 | 
            +
                          :url => '/rest-api/placements/summary.do',
         | 
| 18 | 
            +
                          :body_parameters => [:placementIds, :publishingCategories, :hash, :timestamp, :username],
         | 
| 19 | 
            +
                          :method => :get
         | 
| 20 | 
            +
                      },
         | 
| 21 | 
            +
                      :update_mobile_placement => {
         | 
| 22 | 
            +
                          :url => '/rest-api/placements/update/mobile.do',
         | 
| 23 | 
            +
                          :body_parameters => [:id, :zoneId, :type, :name, :description, :defaultCode, :hash, :timestamp, :username],
         | 
| 24 | 
            +
                          :method => :post
         | 
| 25 | 
            +
                      },
         | 
| 26 | 
            +
                      :update_non_standard_placement => {
         | 
| 27 | 
            +
                          :url => '/rest-api/placements/update/non-standard.do',
         | 
| 28 | 
            +
                          :body_parameters => [:id, :zoneId, :type, :name, :description, :hash, :timestamp, :username],
         | 
| 29 | 
            +
                          :method => :post
         | 
| 30 | 
            +
                      },
         | 
| 31 | 
            +
                      :create_non_standard_placement => {
         | 
| 32 | 
            +
                          :url => '/rest-api/placements/update/non-standard.do',
         | 
| 33 | 
            +
                          :body_parameters => [:zoneId, :type, :name, :description, :hash, :timestamp, :username],
         | 
| 34 | 
            +
                          :method => :post
         | 
| 35 | 
            +
                      },
         | 
| 36 | 
            +
                      :update_standard_placement => {
         | 
| 37 | 
            +
                          :url => '/rest-api/placements/update/standard.do',
         | 
| 38 | 
            +
                          :body_parameters => [:id, :zoneId, :type, :name, :description, :adUnit, :height, :width, :allowVariableBannerSizes, :defaultCode, :rotateInterval, :hash, :timestamp, :username],
         | 
| 39 | 
            +
                          :method => :post
         | 
| 40 | 
            +
                      },
         | 
| 41 | 
            +
                      :create_standard_placement => {
         | 
| 42 | 
            +
                          :url => '/rest-api/placements/update/standard.do',
         | 
| 43 | 
            +
                          :body_parameters => [:zoneId, :type, :name, :description, :adUnitId, :size, 'size.height', 'size.width', :allowVariableBannerSizes, :defaultCode, :rotateInterval, :hash, :timestamp, :username],
         | 
| 44 | 
            +
                          :method => :post
         | 
| 45 | 
            +
                      }
         | 
| 46 | 
            +
             | 
| 47 | 
            +
             | 
| 48 | 
            +
                  }
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                def self.replace_params_in_url(url, url_params)
         | 
| 52 | 
            +
                  url.gsub!('PLACEMENT_ID', url_params[:placementId]) if url.include?('PLACEMENT_ID')
         | 
| 53 | 
            +
                  url
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
              end
         | 
| 56 | 
            +
            end
         | 
    
        data/lib/epom/site.rb
    ADDED
    
    | @@ -0,0 +1,84 @@ | |
| 1 | 
            +
            require 'epom/epom_element'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Epom
         | 
| 4 | 
            +
              class Site < EpomElement
         | 
| 5 | 
            +
                def self.extended_methods
         | 
| 6 | 
            +
                  {
         | 
| 7 | 
            +
                      :delete_site => {
         | 
| 8 | 
            +
                          :url => '/rest-api/sites/SITE_ID/delete.do',
         | 
| 9 | 
            +
                          :url_parameters => [:siteId],
         | 
| 10 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 11 | 
            +
                          :method => :post
         | 
| 12 | 
            +
                      },
         | 
| 13 | 
            +
                      :delete_site_cpm_threshold => {
         | 
| 14 | 
            +
                          :url => '/rest-api/sites/SITE_ID/cpm-thresholds/delete.do',
         | 
| 15 | 
            +
                          :url_parameters => [:siteId],
         | 
| 16 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 17 | 
            +
                          :method => :post
         | 
| 18 | 
            +
                      },
         | 
| 19 | 
            +
                      :get_site_cpm_threshold_summary => {
         | 
| 20 | 
            +
                          :url => '/rest-api/sites/SITE_ID/cpm-thresholds.do',
         | 
| 21 | 
            +
                          :url_parameters => [:siteId],
         | 
| 22 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 23 | 
            +
                          :method => :get
         | 
| 24 | 
            +
                      },
         | 
| 25 | 
            +
                      :get_site_pricing => {
         | 
| 26 | 
            +
                          :url => '/rest-api/sites/SITE_ID/pricing.do',
         | 
| 27 | 
            +
                          :url_parameters => [:siteId],
         | 
| 28 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 29 | 
            +
                          :method => :get
         | 
| 30 | 
            +
                      },
         | 
| 31 | 
            +
                      :get_sites => {
         | 
| 32 | 
            +
                          :url => '/rest-api/sites.do',
         | 
| 33 | 
            +
                          :body_parameters => [:publishingCategories, :hash, :timestamp, :username],
         | 
| 34 | 
            +
                          :method => :get
         | 
| 35 | 
            +
                      },
         | 
| 36 | 
            +
                      :get_sites_zones => {
         | 
| 37 | 
            +
                          :url => '/rest-api/sites/SITE_ID/zones.do',
         | 
| 38 | 
            +
                          :url_parameters => [:siteId],
         | 
| 39 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 40 | 
            +
                          :method => :get
         | 
| 41 | 
            +
                      },
         | 
| 42 | 
            +
                      :set_site_cpm_thresholds => {
         | 
| 43 | 
            +
                          :url => '/rest-api/sites/SITE_ID/cpm-thresholds.do',
         | 
| 44 | 
            +
                          :url_parameters => [:siteId],
         | 
| 45 | 
            +
                          :body_parameters => [:cpmThreshold, :siteCountryCPMThresholds, :hash, :timestamp, :username],
         | 
| 46 | 
            +
                          :method => :post
         | 
| 47 | 
            +
                      },
         | 
| 48 | 
            +
                      :set_site_pricing => {
         | 
| 49 | 
            +
                          :url => '/rest-api/sites/SITE_ID/pricing.do?username=USERNAME×tamp=TIMESTAMP&hash=HASH',
         | 
| 50 | 
            +
                          :url_parameters => [:siteId, :hash, :timestamp, :username],
         | 
| 51 | 
            +
                          :body_parameters => [],
         | 
| 52 | 
            +
                          :method => :post,
         | 
| 53 | 
            +
                          :headers => {'Content-type' => 'application/json'}
         | 
| 54 | 
            +
                      },
         | 
| 55 | 
            +
                      :set_placement_pricing => {
         | 
| 56 | 
            +
                          :url => '/rest-api/placements/PLACEMENT_ID/pricing.do?username=USERNAME×tamp=TIMESTAMP&hash=HASH',
         | 
| 57 | 
            +
                          :url_parameters => [:placementId, :hash, :timestamp, :username],
         | 
| 58 | 
            +
                          :body_parameters => [],
         | 
| 59 | 
            +
                          :method => :post,
         | 
| 60 | 
            +
                          :headers => {'Content-type' => 'application/json'}
         | 
| 61 | 
            +
                      },
         | 
| 62 | 
            +
                      :update_site => {
         | 
| 63 | 
            +
                          :url => '/rest-api/sites/update.do',
         | 
| 64 | 
            +
                          :body_parameters => [:id, :createDefaultZone, :name, :url, :description, :email, :allowPlacementBannersLinkingChange, :categoryId, :revenueShare, :impressionsByMonth, :visitorsByMonth, :hash, :timestamp, :username ],
         | 
| 65 | 
            +
                          :method => :post
         | 
| 66 | 
            +
                      },
         | 
| 67 | 
            +
                      :create_site => {
         | 
| 68 | 
            +
                          :url => '/rest-api/sites/update.do',
         | 
| 69 | 
            +
                          :body_parameters => [:createDefaultZone, :name, :url, :description, :email, :allowPlacementBannersLinkingChange, :categoryId, :revenueShare, :impressionsByMonth, :visitorsByMonth, :hash, :timestamp, :username ],
         | 
| 70 | 
            +
                          :method => :post
         | 
| 71 | 
            +
                      },
         | 
| 72 | 
            +
                  }
         | 
| 73 | 
            +
                end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                def self.replace_params_in_url(url, url_params)
         | 
| 76 | 
            +
                  url.gsub!('USERNAME', url_params[:username].to_s) if url.include?('USERNAME')
         | 
| 77 | 
            +
                  url.gsub!('TIMESTAMP', url_params[:timestamp].to_s) if url.include?('TIMESTAMP')
         | 
| 78 | 
            +
                  url.gsub!('HASH', url_params[:hash].to_s) if url.include?('HASH')
         | 
| 79 | 
            +
                  url.gsub!('SITE_ID', url_params[:siteId].to_s) if url.include?('SITE_ID')
         | 
| 80 | 
            +
                  url.gsub!('PLACEMENT_ID', url_params[:placementId].to_s) if url.include?('PLACEMENT_ID')
         | 
| 81 | 
            +
                  url
         | 
| 82 | 
            +
                end
         | 
| 83 | 
            +
              end
         | 
| 84 | 
            +
            end
         | 
    
        data/lib/epom/version.rb
    ADDED
    
    
    
        data/lib/epom/zone.rb
    ADDED
    
    | @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            require 'epom/epom_element'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Epom
         | 
| 4 | 
            +
              class Zone < EpomElement
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                def self.extended_methods
         | 
| 7 | 
            +
                  {
         | 
| 8 | 
            +
                      :delete_zone => {
         | 
| 9 | 
            +
                          :url => '/rest-api/zones/ZONE_ID/delete.do',
         | 
| 10 | 
            +
                          :url_parameters => [:zoneId],
         | 
| 11 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 12 | 
            +
                          :method => :post
         | 
| 13 | 
            +
                      },
         | 
| 14 | 
            +
                      :get_zone_placement => {
         | 
| 15 | 
            +
                          :url => '/rest-api/zones/ZONE_ID/placements.do',
         | 
| 16 | 
            +
                          :url_parameters => [:zoneId],
         | 
| 17 | 
            +
                          :body_parameters => [:hash, :timestamp, :username],
         | 
| 18 | 
            +
                          :method => :get
         | 
| 19 | 
            +
                      },
         | 
| 20 | 
            +
                      :update_zone => {
         | 
| 21 | 
            +
                          :url => '/rest-api/zones/update.do',
         | 
| 22 | 
            +
                          :body_parameters => [:zoneId, :siteId, :description, :name, :hash, :timestamp, :username],
         | 
| 23 | 
            +
                          :method => :post
         | 
| 24 | 
            +
                      },
         | 
| 25 | 
            +
                      :create_zone => {
         | 
| 26 | 
            +
                          :url => '/rest-api/zones/update.do',
         | 
| 27 | 
            +
                          :body_parameters => [:siteId, :description, :name, :hash, :timestamp, :username],
         | 
| 28 | 
            +
                          :method => :post
         | 
| 29 | 
            +
                      }
         | 
| 30 | 
            +
                  }
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def self.replace_params_in_url(url, url_params)
         | 
| 34 | 
            +
                   url.gsub!('ZONE_ID', url_params[:zoneId]) if url.include?('ZONE_ID')
         | 
| 35 | 
            +
                   url
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
            end
         | 
| Binary file | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            == README
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            This README would normally document whatever steps are necessary to get the
         | 
| 4 | 
            +
            application up and running.
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Things you may want to cover:
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * Ruby version
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            * System dependencies
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            * Configuration
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * Database creation
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            * Database initialization
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            * How to run the test suite
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            * Services (job queues, cache servers, search engines, etc.)
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            * Deployment instructions
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            * ...
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
            Please feel free to use a different markup language if you do not plan to run
         | 
| 28 | 
            +
            <tt>rake doc:app</tt>.
         | 
    
        data/test/dummy/Rakefile
    ADDED
    
    
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            // This is a manifest file that'll be compiled into application.js, which will include all the files
         | 
| 2 | 
            +
            // listed below.
         | 
| 3 | 
            +
            //
         | 
| 4 | 
            +
            // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
         | 
| 5 | 
            +
            // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
         | 
| 6 | 
            +
            //
         | 
| 7 | 
            +
            // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
         | 
| 8 | 
            +
            // compiled file.
         | 
| 9 | 
            +
            //
         | 
| 10 | 
            +
            // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
         | 
| 11 | 
            +
            // about supported directives.
         | 
| 12 | 
            +
            //
         | 
| 13 | 
            +
            //= require_tree .
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            /*
         | 
| 2 | 
            +
             * This is a manifest file that'll be compiled into application.css, which will include all the files
         | 
| 3 | 
            +
             * listed below.
         | 
| 4 | 
            +
             *
         | 
| 5 | 
            +
             * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
         | 
| 6 | 
            +
             * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
         | 
| 7 | 
            +
             *
         | 
| 8 | 
            +
             * You're free to add application-wide styles to this file and they'll appear at the bottom of the
         | 
| 9 | 
            +
             * compiled file so the styles you add here take precedence over styles defined in any styles
         | 
| 10 | 
            +
             * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
         | 
| 11 | 
            +
             * file per style scope.
         | 
| 12 | 
            +
             *
         | 
| 13 | 
            +
             *= require_tree .
         | 
| 14 | 
            +
             *= require_self
         | 
| 15 | 
            +
             */
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            <!DOCTYPE html>
         | 
| 2 | 
            +
            <html>
         | 
| 3 | 
            +
            <head>
         | 
| 4 | 
            +
              <title>Dummy</title>
         | 
| 5 | 
            +
              <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
         | 
| 6 | 
            +
              <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
         | 
| 7 | 
            +
              <%= csrf_meta_tags %>
         | 
| 8 | 
            +
            </head>
         | 
| 9 | 
            +
            <body>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            <%= yield %>
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            </body>
         | 
| 14 | 
            +
            </html>
         | 
    
        data/test/dummy/bin/rake
    ADDED