discourse_dev 0.0.7 → 0.0.8
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/lib/discourse_dev.rb +18 -0
- data/lib/discourse_dev/config.rb +10 -1
- data/lib/discourse_dev/config.yml +2 -0
- data/lib/discourse_dev/group.rb +2 -1
- data/lib/discourse_dev/post.rb +21 -5
- data/lib/discourse_dev/record.rb +2 -0
- data/lib/discourse_dev/tasks/dev.rake +5 -1
- data/lib/discourse_dev/topic.rb +23 -1
- data/lib/discourse_dev/user.rb +2 -1
- data/lib/discourse_dev/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 78ead97c8c37d30f88d98a6e95a720647d73e564aa39872599488e3bcfc6fb0d
         | 
| 4 | 
            +
              data.tar.gz: eb83d5121929c789d926d69fc54c9d79f25d32f1f1177b524212699e5a0e901d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: dcd86419248de6cfe03d3e09e9d3eb7f7c0e67ba460cd7a23dd49eeb605b8ad66db5055b1dbb6333588aac6a4ee00c08b9cd8d7113571bc904d888238bac8fe5
         | 
| 7 | 
            +
              data.tar.gz: 1e965d65532c23d0c8f5c0afd0e2d56f73b5d954219611416fb34bad0c8425f191caf47085122d7cb13234bdefed7da33ec7bcb6a000580d50ef44eb36353f09
         | 
    
        data/lib/discourse_dev.rb
    CHANGED
    
    | @@ -10,4 +10,22 @@ I18n.reload! if I18n.backend.initialized? | |
| 10 10 | 
             
            module DiscourseDev
         | 
| 11 11 | 
             
              require 'discourse_dev/railtie'
         | 
| 12 12 | 
             
              require 'discourse_dev/engine'
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def self.config
         | 
| 15 | 
            +
                @config ||= Config.new
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            require "active_record/database_configurations"
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ActiveRecord::Tasks::DatabaseTasks.module_eval do
         | 
| 22 | 
            +
              alias_method :rails_each_current_configuration, :each_current_configuration
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              private
         | 
| 25 | 
            +
              def each_current_configuration(environment, name = nil)
         | 
| 26 | 
            +
                rails_each_current_configuration(environment, name) { |db_config|
         | 
| 27 | 
            +
                  next if environment == "development" && ENV["SKIP_TEST_DATABASE"] == "1" && db_config["database"] != "discourse_development"
         | 
| 28 | 
            +
                  yield db_config
         | 
| 29 | 
            +
                }
         | 
| 30 | 
            +
              end
         | 
| 13 31 | 
             
            end
         | 
    
        data/lib/discourse_dev/config.rb
    CHANGED
    
    | @@ -70,8 +70,17 @@ module DiscourseDev | |
| 70 70 | 
             
                end
         | 
| 71 71 |  | 
| 72 72 | 
             
                def set_seed
         | 
| 73 | 
            -
                  seed =  | 
| 73 | 
            +
                  seed = self.seed || 1
         | 
| 74 74 | 
             
                  Faker::Config.random = Random.new(seed)
         | 
| 75 75 | 
             
                end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                def start_date
         | 
| 78 | 
            +
                  DateTime.parse(config["start_date"] || default_config["start_date"])
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                def method_missing(name)
         | 
| 82 | 
            +
                  name = name.to_s
         | 
| 83 | 
            +
                  config[name] || default_config[name]
         | 
| 84 | 
            +
                end
         | 
| 76 85 | 
             
              end
         | 
| 77 86 | 
             
            end
         | 
    
        data/lib/discourse_dev/group.rb
    CHANGED
    
    | @@ -18,7 +18,8 @@ module DiscourseDev | |
| 18 18 | 
             
                    name: Faker::Discourse.unique.group,
         | 
| 19 19 | 
             
                    public_exit: Faker::Boolean.boolean,
         | 
| 20 20 | 
             
                    public_admission: Faker::Boolean.boolean,
         | 
| 21 | 
            -
                    primary_group: Faker::Boolean.boolean
         | 
| 21 | 
            +
                    primary_group: Faker::Boolean.boolean,
         | 
| 22 | 
            +
                    created_at: Faker::Time.between(from: DiscourseDev.config.start_date, to: DateTime.now),
         | 
| 22 23 | 
             
                  }
         | 
| 23 24 | 
             
                end
         | 
| 24 25 |  | 
    
        data/lib/discourse_dev/post.rb
    CHANGED
    
    | @@ -13,10 +13,12 @@ module DiscourseDev | |
| 13 13 | 
             
                  @topic = topic
         | 
| 14 14 |  | 
| 15 15 | 
             
                  category = topic.category
         | 
| 16 | 
            +
                  @max_likes_count = DiscourseDev.config.max_likes_count
         | 
| 16 17 | 
             
                  unless category.groups.blank?
         | 
| 17 18 | 
             
                    group_ids = category.groups.pluck(:id)
         | 
| 18 19 | 
             
                    @user_ids = ::GroupUser.where(group_id: group_ids).pluck(:user_id)
         | 
| 19 20 | 
             
                    @user_count = @user_ids.count
         | 
| 21 | 
            +
                    @max_likes_count = @user_count - 1
         | 
| 20 22 | 
             
                  end
         | 
| 21 23 | 
             
                end
         | 
| 22 24 |  | 
| @@ -24,15 +26,27 @@ module DiscourseDev | |
| 24 26 | 
             
                  {
         | 
| 25 27 | 
             
                    topic_id: topic.id,
         | 
| 26 28 | 
             
                    raw: Faker::Markdown.sandwich(sentences: 5),
         | 
| 27 | 
            -
                     | 
| 29 | 
            +
                    created_at: Faker::Time.between(from: topic.last_posted_at, to: DateTime.now),
         | 
| 30 | 
            +
                    skip_validations: true,
         | 
| 31 | 
            +
                    skip_guardian: true
         | 
| 28 32 | 
             
                  }
         | 
| 29 33 | 
             
                end
         | 
| 30 34 |  | 
| 31 35 | 
             
                def create!
         | 
| 32 | 
            -
                   | 
| 33 | 
            -
             | 
| 34 | 
            -
                   | 
| 35 | 
            -
             | 
| 36 | 
            +
                  post = PostCreator.new(user, data).create!
         | 
| 37 | 
            +
                  topic.reload
         | 
| 38 | 
            +
                  generate_likes(post)
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def generate_likes(post)
         | 
| 42 | 
            +
                  user_ids = [post.user_id]
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  Faker::Number.between(from: 0, to: @max_likes_count).times do
         | 
| 45 | 
            +
                    user = self.user
         | 
| 46 | 
            +
                    next if user_ids.include?(user.id)
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                    PostActionCreator.new(user, post, PostActionType.types[:like], created_at: Faker::Time.between(from: post.created_at, to: DateTime.now)).perform
         | 
| 49 | 
            +
                    user_ids << user.id
         | 
| 36 50 | 
             
                  end
         | 
| 37 51 | 
             
                end
         | 
| 38 52 |  | 
| @@ -45,6 +59,8 @@ module DiscourseDev | |
| 45 59 | 
             
                end
         | 
| 46 60 |  | 
| 47 61 | 
             
                def populate!
         | 
| 62 | 
            +
                  generate_likes(topic.first_post)
         | 
| 63 | 
            +
             | 
| 48 64 | 
             
                  @count.times do |i|
         | 
| 49 65 | 
             
                    @index = i
         | 
| 50 66 | 
             
                    create!
         | 
    
        data/lib/discourse_dev/record.rb
    CHANGED
    
    
| @@ -4,6 +4,9 @@ def check_environment! | |
| 4 4 | 
             
              if !Rails.env.development?
         | 
| 5 5 | 
             
                raise "Database commands are only supported in development environment"
         | 
| 6 6 | 
             
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              ENV['SKIP_TEST_DATABASE'] = "1"
         | 
| 9 | 
            +
              ENV['SKIP_MULTISITE'] = "1"
         | 
| 7 10 | 
             
            end
         | 
| 8 11 |  | 
| 9 12 | 
             
            desc 'Run db:migrate:reset task and populate sample content for development environment'
         | 
| @@ -17,7 +20,7 @@ end | |
| 17 20 |  | 
| 18 21 | 
             
            desc 'Initialize development environment'
         | 
| 19 22 | 
             
            task 'dev:config' => ['db:load_config'] do |_, args|
         | 
| 20 | 
            -
              DiscourseDev | 
| 23 | 
            +
              DiscourseDev.config.update!
         | 
| 21 24 | 
             
            end
         | 
| 22 25 |  | 
| 23 26 | 
             
            desc 'Populate sample content for development environment'
         | 
| @@ -27,6 +30,7 @@ task 'dev:populate' => ['db:load_config'] do |_, args| | |
| 27 30 | 
             
              Rake::Task['categories:populate'].invoke
         | 
| 28 31 | 
             
              Rake::Task['tags:populate'].invoke
         | 
| 29 32 | 
             
              Rake::Task['topics:populate'].invoke
         | 
| 33 | 
            +
              system("redis-cli flushall")
         | 
| 30 34 | 
             
            end
         | 
| 31 35 |  | 
| 32 36 | 
             
            desc 'Repopulate sample datas in development environment'
         | 
    
        data/lib/discourse_dev/topic.rb
    CHANGED
    
    | @@ -11,12 +11,34 @@ module DiscourseDev | |
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 13 | 
             
                def data
         | 
| 14 | 
            +
                  max_views = 0
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  case Faker::Number.between(from: 0, to: 5)
         | 
| 17 | 
            +
                  when 0
         | 
| 18 | 
            +
                    max_views = 10
         | 
| 19 | 
            +
                  when 1
         | 
| 20 | 
            +
                    max_views = 100
         | 
| 21 | 
            +
                  when 2
         | 
| 22 | 
            +
                    max_views = SiteSetting.topic_views_heat_low
         | 
| 23 | 
            +
                  when 3
         | 
| 24 | 
            +
                    max_views = SiteSetting.topic_views_heat_medium
         | 
| 25 | 
            +
                  when 4
         | 
| 26 | 
            +
                    max_views = SiteSetting.topic_views_heat_high
         | 
| 27 | 
            +
                  when 5
         | 
| 28 | 
            +
                    max_views = SiteSetting.topic_views_heat_high + SiteSetting.topic_views_heat_medium
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
             | 
| 14 31 | 
             
                  {
         | 
| 15 32 | 
             
                    title: title[0, SiteSetting.max_topic_title_length],
         | 
| 16 33 | 
             
                    raw: Faker::Markdown.sandwich(sentences: 5),
         | 
| 17 34 | 
             
                    category: @category.id,
         | 
| 35 | 
            +
                    created_at: Faker::Time.between(from: DiscourseDev.config.start_date, to: DateTime.now),
         | 
| 18 36 | 
             
                    tags: tags,
         | 
| 19 | 
            -
                    topic_opts: { | 
| 37 | 
            +
                    topic_opts: {
         | 
| 38 | 
            +
                      import_mode: true,
         | 
| 39 | 
            +
                      views: Faker::Number.between(from: 1, to: max_views),
         | 
| 40 | 
            +
                      custom_fields: { dev_sample: true }
         | 
| 41 | 
            +
                    },
         | 
| 20 42 | 
             
                    skip_validations: true
         | 
| 21 43 | 
             
                  }
         | 
| 22 44 | 
             
                end
         | 
    
        data/lib/discourse_dev/user.rb
    CHANGED
    
    | @@ -23,7 +23,8 @@ module DiscourseDev | |
| 23 23 | 
             
                    username: username,
         | 
| 24 24 | 
             
                    username_lower: username_lower,
         | 
| 25 25 | 
             
                    moderator: Faker::Boolean.boolean(true_ratio: 0.1),
         | 
| 26 | 
            -
                    trust_level: Faker::Number.between(from: 1, to: 4)
         | 
| 26 | 
            +
                    trust_level: Faker::Number.between(from: 1, to: 4),
         | 
| 27 | 
            +
                    created_at: Faker::Time.between(from: DiscourseDev.config.start_date, to: DateTime.now),
         | 
| 27 28 | 
             
                  }
         | 
| 28 29 | 
             
                end
         | 
| 29 30 |  |